植物大战僵尸:手工计算偏移地址 (二)
首先我们思考一个问题,为什么我们需要手工计算偏移地址,CE找不开心吗?当然不是,有些游戏比如像CF,只要查找改写的地址游戏就会崩溃,严重的话则会弹出TP警告框,但查找访问则不会出现这个情况,此时我们就需要进行手工计算偏移地址,来得到基址数据。
1.首先打开CE工具,并通过前期所学的内容快速的找到阳光的动态地址,然后我们在 23AEF5F8
地址上选择查找访问地址
,我们需要记下5578
这个偏移地址。
上图我们通过动态地址23AEF5F8 - 5578
即可得到上一个指针23AEA080
地址,直接在CE中继续搜索这个地址。
2.此时我们选择第四个动态地址,然后再次查找是什么访问了这个地址
,可以看到是偏移是868
,继续用02B0BA60
- 868
得到2B0B1F8
。
3.继续查找这个动态地址2B0B1F8
,此时我们可以看到基址007794F8
,通过手工计算我们已经知道了其公式为:007794F8
+ 868
+ 5578
完成。
总结
- 搜索阳光的动态地址:23AEF5F8
- 0043FC5 - add eax, [edx+00005578]
- 通过动态地址 - 偏移地址 =edx的地址
- 23AEF5F8 - 5578 = 23AEA080
- 继续搜索:23AEA080
- 00475373 - mov edi,[esi+00000868]
- 通过动态地址 - 偏移地址 =edx的地址
- 02B0BA60 - 868 = 2B0B1F8
- PlantsVsZombies.exe+37959C
- 基址:007794F8
- 总结:007794F8 + 868 + 5578 = 阳光