13.07.2015 Views

The art of cracking - Tutoriali

The art of cracking - Tutoriali

The art of cracking - Tutoriali

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Kao sto vidimo neke vrednosti se racunaju i porede. Ako bilo koji od ovihuslova nije ispunjen skace se ovde:00401146 |> \6A 30 PUSH 3000401148 |. 68 97304000 PUSH timetria.00403097; |Title = "Too Bad ;)"0040114D |. 68 76304000 PUSH timetria.00403076 ;|Text = "Sorry, this crackme”00401152 |. 6A 00 PUSH 0 ; |hOwner = NULL00401154 |. E8 A1000000 CALL ; \MessageBoxANaravno moguce je promeniti skokove tako da se ovo nikada ne izvrsi aliposto postoje programi koji proveravaju da li su im modifikovani odredjeniskokovi mi cemo naterati ovaj program da snimi .DET fajl tako da programnikada ne istekne. Prvo imamo ovu proveru:004010A8 |> \8B0D AB304000004010AE |. 81F1 69696969004010B4 |. A1 E4304000004010B9 |. 3BC1004010BB |. 0F85 85000000MOV ECX,DWORD PTR DS:[4030AB]XOR ECX,69696969MOV EAX,DWORD PTR DS:[4030E4]CMP EAX,ECXJNZ timetria.00401146Posto se porede EAX i ECX u ECX cemo staviti vrednost iz EAXa jer ce takoova dva broja uvek biti jednaka. Promenicemo gornji kod u ovo:004010A8 |> \8B0D E4304000004010AE |. 90004010AF |. 90004010B0 |. 90004010B1 |. 90004010B2 |. 90004010B3 |. 90004010B4 |. A1 E4304000004010B9 |. 3BC1004010BB |. 0F85 85000000MOV ECX,DWORD PTR DS:[4030E4]NOPNOPNOPNOPNOPNOPMOV EAX,DWORD PTR DS:[4030E4]CMP EAX,ECXJNZ timetria.00401146Primetite da sam program modifikovao tako da ce se u EAX i ECX smestativrednosti sa iste adrese 004030E4. Primeticete i da sam obrisao (NOPovao)onu XOR ECX komandu, jer bi ona poremetila vrednost ECXa. Idemo nasledeci niz provera:004010C1 |. 66:8B0D B1304>004010C8 |. 66:81F1 6969004010CD |. 66:A1 EA30400>004010D3 |. 66:2BC1004010D6 |. 66:83F8 03004010DA |. 77 6AMOV CX,WORD PTR DS:[4030B1]XOR CX,6969MOV AX,WORD PTR DS:[4030EA]SUB AX,CXCMP AX,3JA SHORT timetria.00401146Ovde je ocigledno da se nesto racuna pa se AX poredi sa 3... Hmmm sabrojem dana koji nam je dozvoljen da koristimo program. Ovo cemo izmenitiu ovo:004010C1 |. 66:8B0D EA304>004010C8 |. 90004010C9 |. 90004010CA |. 90004010CB |. 90004010CC |. 90004010CD |. 66:A1 EA30400>004010D3 |. 66:2BC1004010D6 |. 66:83F8 03004010DA |. 77 6AMOV CX,WORD PTR DS:[4030EA]NOPNOPNOPNOPNOPMOV AX,WORD PTR DS:[4030EA]SUB AX,CXCMP AX,3JA SHORT timetria.00401146Primeticete da smo kao i gore CXu i AXu dodelili iste vrednosti, da smoizbrisali XOR. Ovo je zgodno jer ako pogledate skok ispod videcete da ce seon izvrsiti samo ako je AX vece od 3. Posto AX i CX imaju iste vrednosti posleoduzimanja SUB AX,CX vrednost koja ce se nalaziti u AX je 0, pa stoganikada nece biti veca od 3. Idemo dalje i stizemo do poslednje provere:004010DC |. 2805 00304000004010E2 |> A0 B5304000004010E7 |. 34 69SUB BYTE PTR DS:[403000],ALMOV AL,BYTE PTR DS:[4030B5]XOR AL,69<strong>The</strong> Art <strong>of</strong> Cracking by Ap0x Page 95 <strong>of</strong> 165

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!