博博blog 博博blog

JAVA开发外挂第二弹-CE查找游戏基址

in 技术分享 read (881) 文章转载请注明来源!

昨天讲了JAVA的JNI,今天讲一下如何用CE(Cheat Engine)查找游戏的基址,
基址就是游戏在内存中的一个静态的内存地址,可以通过偏移找到本次游戏的数据地址。

今天就拿最经典的游戏植物大战僵尸来练手,首先每个版本的植物大战僵尸的基址和偏移都不同,
但是原理都是一样的,最后我会把我用的CE和植物大战僵尸都打包发出来。

1.png

打开游戏之后,在CE打开游戏

2.png

然后进行游戏,在CE中搜索当前的阳光值

3.png

在游戏当中使阳光改变,在CE中输入新的阳光值,并点继续扫描

4.png

现在就剩7个值了,可以重复以上步骤,找到最终的地址,

5.png

现在找到了存放阳光的内存地址,

6.png

加入到下面,修改最后的值,可以看到游戏里面的阳光也跟随改变
但是这个不是我们最终要找的地址,因为重新打开一次游戏,
存放阳光的地址也会跟随改变,那我们就要找到存放阳光的基址。

7.PNG

在阳光的内存地址,右键选择“找出是什么改写了这个地址”

8.png

点击“是”

9.png

看到里面都是空白,那我们就需要在游戏里面改变一下阳光值

10.png

改变游戏阳光值之后,可以看到里面产生了一条记录,

11.png

右键复制粘贴文本里面进行分析,

EAX=0000039D
EBX=00000032
ECX=FFFFFFFF
EDX=0E959068
ESI=0000036B
EDI=0E959068
EBP=0019FB8C
ESP=0019FAE0
EIP=00433F8C

指针基址可能是 =0E959068

00433F82 - jg 00433F90
00433F84 - sub esi,ebx  //esi - ebx
00433F86 - mov [edi+00005578],esi
00433F8C - mov al,01
00433F8E - pop esi

00433F86 - mov [edi+00005578],esi
mov指令是数据传送指令,用于将一个数据从源地址传送到目标地址
esi 赋给 [edi+00005578]
esi的值是十六进制的36B等于十进制的875,就是阳光值
偏移值是0x5578,edi的值是0E959068加上5578 等于 0E95E5E0
那么,写入的地址就是[edi+0x5578]

edi寄存器的值:0E959068 在CE中查找这个值

12.png

在CE中,勾选前面的“16进制”,输入这个值点击新的扫描,

13.png

可以看到搜索出了55条的地址,只能一条一条排查,

14.PNG

选中一条记录,右键“找出是什么访问了这个地址”

15.png

可以看到都是空白,所以肯定不是这条,那就讲一个技巧,
就是看那条不是太一样,就观察那一条

16.png

这一条应该就是我们要找的,双击第一条的mov指令

17.png

右键复制,粘贴到文本分析一下,

EAX=00475350
EBX=00000001
ECX=04A0B4F0
EDX=0072CB80
ESI=04A0B4F0
EDI=0E959068
EBP=00000001
ESP=0019FCA0
EIP=00475379

指针基址可能是 =04A0B4F0

0047536A - cmp byte ptr [esi+0000053F],00
00475371 - je 0047539B
00475373 - mov edi,[esi+00000868]
00475379 - test edi,edi
0047537B - je 0047539B

00475373 - mov edi,[esi+00000868]
[esi+00000868] 赋给 edi
偏移就是0x868,将[esi+0x868]地址的值赋给edi
那么继续搜索esi的值:04A0B4F0

18.png

勾选“16进制”,输入esi的值,点击新的扫描

19.png

搜索之后,出现了1196条记录,那么要排查太费事了,
那这里我们只看绿色的部分,绿色代表的是静态地址,
发现了007794F8,这个就是我们要找的阳光基址
然后我们串一下:
007794F8(值:04A0B4F0) + 868 = 0E959068(值:04a0bd58) + 5578 = 0e95e5e0(阳光)
基址的值 + 一级偏移868 = 04a0bd58再用它的地址0E959068 + 二级偏移5578 = 0e95e5e0
接下来我们就要在CE中手动模拟一下了。

20.png

点击CE的“手动添加地址”,

21.png

勾选指针,并添加两个偏移,依次输入我们的基址和两个偏移值
就可以看到最终的阳光地址和当前的阳光值。

好了,到这里我们就成功的找到了植物大战僵尸的阳光基址,
找基址是编写游戏外挂最重要的一部分,下一篇就正式开始编写外挂。

植物大战僵尸下载地址:
链接: https://pan.baidu.com/s/1Ux3qkwBZBCvez1lYUUFlbw 密码: x9c8
CE6.8下载地址:
链接: https://pan.baidu.com/s/1iYjhJSbycAH5qNopQqk51Q 密码: 2b2n

javajni修改器外挂cheat engine植物大战僵尸基址
PREVIOUS NEXT
雷姆
拉姆
音乐加载中...
0:00