详细的OD破解 下载本文

在我们找到的字串上右击,再在出来的菜单上点击“反汇编窗口中跟随”,我们来到这里:

见上图,为了看看是否还有其他的参考,可以通过选择右键菜单查找参考->立即数,会出来一个对话框:

分别双击上面标出的两个地址,我们会来到对应的位置:

我们在反汇编窗口中向上滚动一下再看看:

00440F2C |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]

00440F2F |. BA 14104400 MOV EDX,CrackMe3.00441014 ; ASCII \00440F34 |. E8 F32BFCFF CALL CrackMe3.00403B2C ; 关键,要用F7跟进去 00440F39 |. 75 51 JNZ SHORT CrackMe3.00440F8C ; 这里跳走就完蛋

00440F3B |. 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]

00440F3E |. 8B83 C8020000 MOV EAX,DWORD PTR DS:[EBX+2C8] 00440F44 |. E8 D7FEFDFF CALL CrackMe3.00420E20 00440F49 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]

00440F4C |. BA 2C104400 MOV EDX,CrackMe3.0044102C ; ASCII \00440F51 |. E8 D62BFCFF CALL CrackMe3.00403B2C ; 关键,要用F7跟进去 00440F56 |. 75 1A JNZ SHORT CrackMe3.00440F72 ; 这里跳走就完蛋 00440F58 |. 6A 00 PUSH 0

00440F5A |. B9 3C104400 MOV ECX,CrackMe3.0044103C ; ASCII \ly\

00440F5F |. BA 5C104400 MOV EDX,CrackMe3.0044105C ; ASCII \CrackMe!\

00440F64 |. A1 442C4400 MOV EAX,DWORD PTR DS:[442C44] 00440F69 |. 8B00 MOV EAX,DWORD PTR DS:[EAX] 00440F6B |. E8 F8C0FFFF CALL CrackMe3.0043D068 00440F70 |. EB 32 JMP SHORT CrackMe3.00440FA4 00440F72 |> 6A 00 PUSH 0

00440F74 |. B9 80104400 MOV ECX,CrackMe3.00441080 ; ASCII \

00440F79 |. BA 8C104400 MOV EDX,CrackMe3.0044108C ; ASCII \\

00440F7E |. A1 442C4400 MOV EAX,DWORD PTR DS:[442C44] 00440F83 |. 8B00 MOV EAX,DWORD PTR DS:[EAX] 00440F85 |. E8 DEC0FFFF CALL CrackMe3.0043D068 00440F8A |. EB 18 JMP SHORT CrackMe3.00440FA4 00440F8C |> 6A 00 PUSH 0

00440F8E |. B9 80104400 MOV ECX,CrackMe3.00441080 ; ASCII \

00440F93 |. BA 8C104400 MOV EDX,CrackMe3.0044108C ; ASCII \\

00440F98 |. A1 442C4400 MOV EAX,DWORD PTR DS:[442C44] 00440F9D |. 8B00 MOV EAX,DWORD PTR DS:[EAX] 00440F9F |. E8 C4C0FFFF CALL CrackMe3.0043D068

大家注意看一下上面的注释,我在上面标了两个关键点。有人可能要问,你怎么知道那两个地方是关键点?其实很简单,我是根据查看是哪条指令跳到“wrong serial,try again”这条字串对应的指令来决定的。如果你在 调试选项->CPU 标签中把“显示跳转路径”及其下面的两个“如跳转未实现则显示灰色路径”、“显示跳转到选定命令的路径”都选上的话,就会看到是从什么地方跳到出错字串处的:如下图

关键代码图示如下:

我们在上图中地址 00440F2C 处按 F2 键设个断点,现在我们按 F9 键,程序已运行起来了。