跳转到主内容

植物大战僵尸:手工计算偏移地址 (二)

植物大战僵尸:手工计算偏移地址 (二)

首先我们思考一个问题,为什么我们需要手工计算偏移地址,CE找不开心吗?当然不是,有些游戏比如像CF,只要查找改写的地址游戏就会崩溃,严重的话则会弹出TP警告框,但查找访问则不会出现这个情况,此时我们就需要进行手工计算偏移地址,来得到基址数据。

1.首先打开CE工具,并通过前期所学的内容快速的找到阳光的动态地址,然后我们在 23AEF5F8地址上选择查找访问地址,我们需要记下5578这个偏移地址。

上图我们通过动态地址23AEF5F8 - 5578 即可得到上一个指针23AEA080地址,直接在CE中继续搜索这个地址。Snipaste_2023-05-30_03-09-38

2.此时我们选择第四个动态地址,然后再次查找是什么访问了这个地址,可以看到是偏移是868,继续用02B0BA60 - 868得到2B0B1F8

Snipaste_2023-05-30_03-15-33

3.继续查找这个动态地址2B0B1F8,此时我们可以看到基址007794F8,通过手工计算我们已经知道了其公式为:007794F8 + 868 + 5578完成。

Snipaste_2023-05-30_03-21-42

总结

  • 搜索阳光的动态地址: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 = 阳光
modified: 2023-05-30 03:41
    1. 绛的头像
      IP: 中国北京联通 #1
      零基础友好教程很给力
    2. 柳淡的头像
      柳淡 IP: 中国广东省电信 #2
      确实,好用图很清晰
支持 Markdown 语法