|
继续运行run trace。现在数值显示很迅速,20秒内OllyDbg报告错误:

检查这个错误,打开Run trace(在标题栏前端有'...'的)并把滚动条拉到底部:

现在我们看到跳转到00620061的命令是CALL EAX在004011AF,并且无效的地址由call前的指令计算得到。双击这行在Disassembler里可以看到寄存器和信息都变灰色以强调他们不是实际上的值而是跟踪后的值(编者:也就是说它记录下了当时寄存器的情况):

地址常量0040A128指向3个固定容量的函数地址f1, f2 and f3。当这条命令最后一次执行EAX的值是3,超过数组边界。前面两条指令应该是执行边界检查的,但EAX大于3时条件是无效的,跳转依然执行。正确的条件应该是“大于等于“,双击无效的指令修正它。

当你汇编了一条指令后,这条指令变红,意味着它是被更改的。再次选择它在右键菜单里选择强大的工具"Copy to executable file"。这样你的更改就会直接应用到程序里(编者:天!以前我居然不知道,汗!):

现在你唯一要做的就是存盘(用不同的名字,of course(为什么?我喜欢覆盖不行呀?!))然后检查。现在程序运行的乱爽,是不是很简单!
| 手把手教你破解灰鸽子成为会员!! | 10-05 |
| 手把手教你手脱灰鸽子2007 Beta | 08-14 |
| 零基础制作《武林外传》外挂 (VB | 07-11 |
| 壳,加壳,脱壳,介绍壳的一些基本 | 07-07 |
| 给新手引路-浓缩汇编基础 | 06-29 |
| 妙解破解的原理 | 05-10 |
| 教菜鸟写注册机 | 04-16 |
| 软件破解新手进化篇 | 04-16 |
| [软件破解]破解原理 | 04-14 |
| [软件破解]常见保护的攻击:序列号 | 04-14 |
| 用OllyDbg手脱RLPack V1.17加壳的 | 04-04 |
| PELock v1.0x 脱壳之完美风暴 | 03-28 |