Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 июня!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

АРХИВ ФОРУМА eXeL@B
https://exelab.ru/f/

   

.::D.e.M.o.N.i.X::. Лоадер для аспра. Черкните кто-нить код стоящий лоадера...


.::D.e.M.o.N.i.X::. Лоадер для аспра. Черкните кто-нить код стоящий лоадера для аспра. Причем нужен не тот который выжидает определенное время, а тот который умеет грохаться в прогу после OEP.
P.S. А может его в природе нет?
XoraX :: на аспры хорошо действует AsLoad, но он на последнем вроде не катит...

MozgC [TSRh] :: Я вот такой вот делал:

.386
.model flat, stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib

.data
processInfo PROCESS_INFORMATION ‹›
programname db «programname.exe», 0
BadProcess db «The Process could not be created!»,0
buff db 33h, 0C0h, 40h
skokoraz dd 0

.data?
buff1 db ?
startInfo db ?

.code
start:

.if processInfo.hProcess!=0
invoke CloseHandle,processInfo.hProcess
mov processInfo.hProcess,0
.endif

invoke GetStartupInfo, ADDR startInfo
invoke CreateProcess,NULL,ADDR programname,NULL,NULL,FALSE,\
CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,\
NULL,NULL,ADDR startInfo,ADDR processInfo

test eax, eax
jnz again
invoke MessageBox, NULL, addr BadProcess, addr BadProcess, MB_OK
call ExitProcess

invoke GetCurrentThread
invoke SetThreadPriority, eax, THREAD_PRIORITY_HIGHEST

again:
invoke Sleep, 10
; mov buff1, 0AAh
invoke ReadProcessMemory,processInfo.hProcess,0057966Ch,A DDR buff1,1,NULL
inc skokoraz
cmp skokoraz, 1000
jz patch
cmp buff1,0FFh
jnz again
patch:
invoke WriteProcessMemory,processInfo.hProcess,00555c68h, ADDR buff,3,NULL

call ExitProcess

end start

Все работало, и проверял на многих компах с разной скоростью и разными ОС.
Основывается на таблице инита в дельфи прогах. В самом начале таблицы инита есть адрес процедуры, которая уменьшает на 1 значение в ячейке памяти. Сначала это значение равно 0, после уменьшения оно равно FF. Этого момента и ждет лоадер. После этого момента проходит относительно еще долгое время инициализации, поэтому лоадер без проблем успевает пропатчить что нужно на компьютерах любой скорости.

-= ALEX =- :: MozgC [TSRh] пишет:
цитата:
invoke Sleep, 10


:) .::D.e.M.o.N.i.X::. пишет:
цитата:
Причем нужен не тот который выжидает определенное время


MozgC [TSRh] :: -= ALEX =-
Блин, дело не в этом, в данном случае sleep сделан чисто для того чтобы не сильно загружать проц циклом, а лоадер не ждет определенное время и патчит а ждет изменения ячейки памяти, причем это уже после CRC но всегда успевается пропатчиться до исполнения кода.

-= ALEX =- :: MozgC [TSRh] да понял я всё :)

.::D.e.M.o.N.i.X::. :: MozgC [TSRh]
В принципе для Delphi проги и нуно. Спасибо.






   
Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS