D.F możesz wyjaśnić w jaki sposób wykonać przeskok?
Uruchamiajac crackme w OllyDebugger mamy:
Kod:
CPU Disasm
Address Hex dump Command Comments
00401003 /. B9 7E83EB19 MOV ECX,19EB837E
00401008 |. 83FB 4A CMP EBX,4A
0040100B |. 74 02 JE SHORT 0040100F
0040100D |. 75 15 JNE SHORT 00401024
0040100F |> 6A 00 PUSH 0
00401011 |. 68 00304000 PUSH OFFSET 00403000 ; ASCII "CrackMe"
00401016 |. 68 08304000 PUSH OFFSET 00403008 ; ASCII "Congratulations! I'm cracked!"
0040101B |. 6A 00 PUSH 0
0040101D |. FF15 3C204000 CALL DWORD PTR DS:[<&USER32.MessageBoxA>
00401023 |. C3 RETN
00401024 |> 6A 00 PUSH 0
00401026 |. 68 00304000 PUSH OFFSET 00403000 ; ASCII "CrackMe"
0040102B |. 68 26304000 PUSH OFFSET 00403026 ; ASCII "I'm not cracked!"
00401030 |. 6A 00 PUSH 0
00401032 |. FF15 3C204000 CALL DWORD PTR DS:[<&USER32.MessageBoxA>
00401038 \. C3 RETN
To jest interesujaca nas linijka:
Kod:
0040100B |. 74 02 JE SHORT 0040100F
jezeli rowne (JE - Jump if Equal) skocz do pierwszej wiadomosci, zamieniamy na JMP, czyli zawsze skocz
Prawym na linijke i Assemble i wpisujemy JMP zamiast JE. Klikamy raz Assemble i Close.
Zaznaczamy linijke ze zmiana i prawym Edit > Copy to executable.
Wyskoczy nowe okienko w ktorym dajemy prawym i Save File...
Zapisujemy zmodyfikowany plik i uruchamiamy. CRACKED.