hi, schaut euch mal folgenden code aus einem crackme an
ich koennte jetzt einfach den JE SHORT EasyCrac.0040113D aushebeln, aber das möchte ich nicht.
meine frage ist, was wird da verglichen bei JE SHORT EasyCrac.0040113D
also wann springt er?
ESI ist in beiden fällen 0x00. also egal ob serial richtig/flasch ist
wenn ich eax manuell auf 0 oder 1 setze springt er auch immer.
wenn die serial oben in
richtig ist, führt er den jump nicht aus.
aber wie prüft er das?
Code:
00401124 |. 50 PUSH EAX
00401125 |. E8 D6FEFFFF CALL EasyCrac.00401000 //serial wird geprüft
0040112A |. 85C0 TEST EAX,EAX
0040112C |. 59 POP ECX
0040112D |. 59 POP ECX
0040112E |. 56 PUSH ESI
0040112F |. 74 0C JE SHORT EasyCrac.0040113D //<------????
00401131 |. 68 38234000 PUSH EasyCrac.00402338 ; ASCII "RIGHT"
00401136 |. 68 2C234000 PUSH EasyCrac.0040232C ; ASCII "You got it!"
0040113B |.^ EB DA JMP SHORT EasyCrac.00401117
0040113D |> A1 B4234000 MOV EAX,DWORD PTR DS:[4023B4] ; |
00401142 |. 68 24234000 PUSH EasyCrac.00402324 ; |Title = "WRONG"
00401147 |. 6A 0B PUSH 0B ; |
00401149 |. 59 POP ECX ; |
meine frage ist, was wird da verglichen bei JE SHORT EasyCrac.0040113D
also wann springt er?
ESI ist in beiden fällen 0x00. also egal ob serial richtig/flasch ist
wenn ich eax manuell auf 0 oder 1 setze springt er auch immer.
wenn die serial oben in
Code:
00401125 |. E8 D6FEFFFF CALL EasyCrac.00401000
aber wie prüft er das?
Zuletzt bearbeitet: