Witaj! Rejestracja

Praktyka Crackingu


Uff.... To jest ciezki temat. Bardzo roznie moznaby do niego podejsc. Ale sprobuje.

No wiec z praktyka jest tak. Zadko kto pishe zabezpieczenia w asmie. Dlatego dzisiaj
nie bedziemy lamac crackme. Zajmiemy sie programami komercyjnymi. Po prostu
trzeba "czuc" program shareware. Trzeba sie wbic w kod asm'owy. Czesto w komercyjnych
programach jest od cholery niepotrzebnych funkcji, ktore utrudniaja zycie. Np. delphi dodaje
swoje wlasne api do execka i na starcie exe ma 250kb. syfu :-) i trzeba umiec sobie z nim radzic.
Uzyje tuta EmKey'a i kilku swoich. Do komercyjnych programow trzeba czasami podejsc niekonwencjonalnie. W 1 tutorze EmKey pokaze wam jak zrobic loader.
W tutorialu 2 zlamiemy crackme specjalnie dla was ;-) (skill veeeeeeeeearrry easy).


!!!Sprawdz sie!!! Sciagnij zabezpieczenie trial z programu CoffeCup html editor !!!Sprawdz sie!!!

all rights reserved for holus and UnderPL2oo1
-----------++=================UCS lesson 7=================++---------------
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 : [ Link do strony zewnętrznej. Zarejestruj się lub zaloguj aby zobaczyć link ] 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 Sad 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 <<<Tu wlasnie jestes
0167:00425CF4 JNZ 00425D05
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 <<<to masz wpisac
0167:00425CC4 teraz nacisnij Escape

!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
------------------
|[email protected]|
------------------
-------------------------------------------------------------------------------
POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_P OZDRO_POZDRO_POZDRO_POZDRO

Tepe, Born, holus, Lemmy, PaulOS, RAD, ManSun i wszyscy z #crackpl

POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_POZDRO_P OZDRO_POZDRO_POZDRO_POZDRO
-------------------------------------------------------------------------------
UCS lesson 7 tut 3
++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++
Bardzo proste zabezpieczenie. Program nie jest spakowany, crackmes to messagebox.
Coraz czesciej takie "zabezpieczenie" maja komercyjne programy. No wiec odpalamy.
pojawia sie nagscreen z napisem "Spathuj tak, zeby tego nie widziec". No wiec do dziela.
Odpalamy wdasm'a i diasemblerujemy program {Diasembler/Open file for Disassemlbe..}
Sprobujmy poszukac tekstu z naga{Search/Search Text}. Nic. Trzeba inaczej. W Soft-Ice
zakladamy pulapke na funkcje MessageBoxA {"bpx MessageBoxA"}. Odpalamy crackme. SI zaskoczyl.
Wciskamy F12. Znowu program. Wcisnij OK, i jestesmy w SI.Sprawdz adres wywolania funkcji
MessageBoxA(Jak ??? Powinienes wiedziec. No dobra.Musisz zapisac sobie 8 cyfr z pierwszej
kolumny okna danych [zaczynajac od miejsca 5]). Wroc do Wdasm'a. W funkcji Goto/Code Location
wpisz nasz adres (00401079). Jestesmy przy interesujacej nas instrukcji.

* Referenced by a (U)nconditional or ©onditional Jump at Address:
|:0040102F© {1}
|
:0040106B 6A00 push 00000000

* Possible StringData Ref from Data Obj ->"About"

:0040106D 6832304000 push 00403032
:00401072 686E304000 push 0040306E
:00401077 6A00 push 00000000

* Reference To: USER32.MessageBoxA, Ord:01BBh

:00401079 E80E000000 Call 0040108C

Widzimy adres z ktore program skakal do tej instrukcji {1}
Sprawdzmy to.
:0040102B 663D1001 cmp ax, 0110
:0040102F 743A je 0040106B {bad/good boy}
:00401031 6683F802 cmp ax, 0002
:00401035 7412 je 00401049
:00401037 6683F810 cmp ax, 0010
:0040103B 740C je 00401049
:0040103D 663D1101 cmp ax, 0111
:00401041 741D je 00401060
:00401043 2BC0 sub eax, eax

No wiec teraz easy. W hex edytorze zmieniamy offset 0000042F z 74(je) na 90(nop), a takze
offset wyzej na NOP(90).Oki gotowe. Crackme dziala.


.rar   zrzut.rar (Rozmiar: 6.15 KB / Pobrań: 51)
Odpowiedz

[-]
Szybka odpowiedź

Disable AutoMedia embedding for this link.   MP3 Playlist

Weryfikacja przeciw botom
Zaznacz pole wyboru znajdujące się poniżej. Ten proces pozwala chronić forum przed botami spamującymi.

Użytkownicy przeglądający ten wątek:

1 gości