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