上一篇我们利用CE找到了普通僵尸扣血的代码,并且实现了秒杀普通僵尸的功能。但是面对有防具的僵尸我们还是不能做到秒杀功能。这一篇将讲讲如何实现该功能。
首先扫描有防具僵尸的扣血地址(步骤与上一篇步骤一样)得出:路障:0054CDDA。
建议用记事本记录下扫描出的地址:
普通僵尸:0054D0C4
路障僵尸:0054CDDA
可以发现防具扣血代码为:mov [ebp+000000D0],ecx。
这里虽然可以改ecx为0实现一击打破防具,但是面对其他防具的僵尸并不起作用。
这个时候需要用到我们的OD工具,打开PVZ游戏,按ctrl+G搜索普通僵尸的代码:0054D0C4。返回植物大战僵尸,攻击一只普通僵尸,攻击到之后OD应该断在这个函数头,这时我们观察堆栈信息来找到调用者在哪里。
果然发现了调用者在0054D613,接着ctrl+G转到这一行。