Blog literacki, portal erotyczny - seks i humor nie z tej ziemi
UCS lesson 7 tut 2 by EmKey^Un
Witam wszystkich w moim kolejnym (juz IV TutOrIAl). Dzisiaj zajmiemy sie oczywiscie crackiem. W ty tutku chce wam opisac jak dziala i jak zrobic (wygenerowac) Loadera.
Na poczatek troche teorii Loadery sa to programy pomocne przy Crackowaniu programow spakowanymi exe-pakerami (np UPX, AsPack). Powinienes wiedziec ze w programie spakowanym exe-pakerem po otwarciu go w jakims Hex edytorze nie znajdziesz mnemonikow odpowiadajacm tym ktore widziales w Soft Ice'u. Bo sa one spakowane to oznacza ze zadne patchowanie nie wchodzi w gre. I tu wlasnie przychodza nam z pomoca Loadery. Wiec co one robia... Patchuja Progs ale... w pamieci. Poniewaz program spakowany po uruchomieniu musi sie rozpakowac.
OK mozecie powiedziec ze do kazdego exe packera istnieje depacker, dlaczego wiec go nim nie rozpakowac zpatchowac i na nowo spakowac. Po pierwsze mozna tak zrobic. Lecz jesli jest to jakas kolosalna aplikacja to wyslanie na jakis serwer np 5MB zajmie troszke czasu a przez nasza "kochana" TPSa czas gra duza role. Wiec poco wysylac 5MB jak mozna wyslac 7kb. wiec Zaczynamy
Teraz praktyka:
Ofiara: NeoTracePro v3.01
Gdzie : http://www.neaworx.com/ lub Chip 4/01
AntySI: brak
Spakowany: Tak
Poziom : latwo-sredni
Narzedzia: SoftIce 4.x
Universal Loader v1.0 by hinte
Masma
Kartke papieru i olowek
Jak zwykle zalaczamy programik i mamy 30 dni na korzystanie z programu. Przestawiamy zegar o 2-3 miesiace do przodu i uruchamiamy NeoTracea ponownie !WoW! Piekny komunikat ze nasza Trial Version EXPIRED :( I co teraz. Wiemy ze program jest spakowany to znaczy ze nie mozemy go dissasemblowac. Naciskamy Cancel i pomyslmy..............moze by tak zalozys bpxa ale na co, na to co sie nam pojawia czyli MessageBoxA:
bpx MessageBoxA
Zalaczamy NeoTracea i bum jestesmy w Sice OK teraz F11 znow w Windozie Kliknijmy na OK !WoW! znow w Sicu I widzisz cos takiego:
0167:00425CEB CALL [USER32!MessageBoxA]
0167:00425CF1 CMP EAX,01 <<
0167:00425CF6 PUSH 00
0167:00425CF8 PUSH 0045E238
Przesunmy sie troche w gore Ctrl+Strzalka w Gore
0167:00425CB3 PUSH EAX
0167:00425CB4 CALL 00432630
0167:00425CB9 ADD ESP,08
0167:00425CBC CMP EAX,-64
0167:00425CBF JNZ 00425CDA <<<---
0167:00425CC1 PUSH 30 |
0167:00425CC3 PUSH 0045E3D0 |
0167:00425CC8 PUSH 0045E380 |
0167:00425CCD PUSH 00 | Ten skok nie moze sie wykonac
0167:00425CCF CALL [USER32!MessageBoxA] |
0167:00425CD5 JMP 00425D68 |
0167:00425CDA TEST EAX,EAX <<<---
0167:00425CDC JNZ 00425D13
0167:00425CDE PUSH 31
0167:00425CE0 PUSH 0045E34C
0167:00425CE5 PUSH 0045E254
0167:00425CEA PUSH EAX
Bardzo interesujaca jest linijka pod adresem 00425cbf powyzej mamy porownanie i skok jesli nie zero. Zrobny maly trick zakladamy pulapke na adres 00425cbf:
bpx 00425cbf
I ponownie zalaczamy NeoTracea i jestesmy w sicu w addresie 00425cbf Widzimy napis Jump. Ale co zrobic aby skok nie nastapil. Flaga adpowiedzialna za skoki JZ i JNZ jest flaga Z wiec komenda r fl z mozna zmylic program i skok nie nastapi.
r fl z
Dalej naciskamy F10 i pokazuje nam sie komunikat ze mamy 30 dni na wykorzystanie progsa. Klikamy OK i i jestesmy w Si pod adresem 00425cd5 teraz F10 i teraz F5 !WoW! Programik Dziala!!!!
OK Wyciagnijmy wnioski:
0167:00425CBF JNZ 00425CDA ten skok nie moze sie wykonac. Jesli skok sie nie wykona to programik bedzie dzialal
ale bedzie nam sie wyswietlal nieznosny komunikat. Przypomnijmy sobie co sie dzieje po nacisnieciu OK na tym nieznosnym komunikacie wykonuje sie skok do 00425d68 (patrz adress 00425cd5). Ten skok (0167:00425CBF JNZ 00425CDA) musimy zmienic ten skok na skok bez warunkowy (JMP) ale nie bedzie skakal do 00425CDA tylko 00425cd5 czyli do praidlowego dzialania programu
Zalanczamy Neo tracea i jestesmy w sicu przy adresie 00425cbf wpisujemy polecenie Code on
Code on
0167:00425CBF 7519 JNZ 00425CDA (JUMP )
0167:00425CC1 6A30 PUSH 30
0167:00425CC3 68D0E34500 PUSH 0045E3D0
0167:00425CC8 6880E34500 PUSH 0045E380
0167:00425CCD 6A00 PUSH 00
Zpisz sobie kody tak 3 linijki teraz bedac w linijce 00425cbf Wpis komende a
0167:00425CBF jmp 00425d68 <<
!WoW! Kod programu si troche zjexxx ale nic nie szkodzi bo i tak zaraz prog skoczy do 00425d68 Powinienes widzies cos takiego:
0167:00425CBF E9A4000000 JMP 00425D68 (JUMP )
0167:00425CC4 D0E3 SHL BL,1
0167:00425CC6 45 INC EBP
0167:00425CC7 006880 ADD [EAX-80],CH
0167:00425CCA E345 JECXZ 00425D11
0167:00425CCC 006A00 ADD [EDX+00],CH
Spisz sobie kod linijki 00425cbf
Teraz zalaczamy Universal Loader v1.0 by hinte
W exe file otwieramy Neo Tracea, w dziale offset wpisujemy nasz offset skoku czyli 00425CBF w old byte wartosc 75 a w new byte wartosc E9 i klikamy na przycisk Add itd Pamietajac zeby zmieniac offset (offset+1) Czyli jak jest 00425cbf to kolejny offset bedzie 00425cc0 Mam nadzieje ze kapujesz to tak jak z liczeniem (18..19.20..21...) . Popatrz na tabelke:
--------------
Old Byte |75|19|6a|30|68|
New Byte |E9|A4|00|00|00|
--------------
Zaznaczamy opcje exe i Wciskamy generate. OK nasz pierwszy Loader zapisal sie w Katalogu gdzie jest Neo Trace. Dla bardziej zaawansowanych jest opcja asm32src w tedy Loader bedzie generowal zrodlo w assemblerze do pozniejszej kompilacji.
Mam nadzieje ze cos z tego txtu zrozumiales i ze poznales zalety Loaderow. Jesli jeczcze czegos nie kapujesz to mailme
------------------
|emkey86@poland.com|
------------------
-------------------------------------------------------------------------------
POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO
Tepe, Born, holus, Lemmy, PaulOS, RAD, ManSun i wszyscy z #crackpl
POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO
-------------------------------------------------------------------------------