前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >JAVA开发外挂第二弹-CE查找游戏基址

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

作者头像
博博1998
发布2022-04-25 15:40:25
发布2022-04-25 15:40:25
4.2K00
代码可运行
举报
文章被收录于专栏:博博blog博博blog
运行总次数:0
代码可运行

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

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

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

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

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

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

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

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

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

点击“是”

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

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

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

代码语言:javascript
代码运行次数:0
运行
复制
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中查找这个值

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

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

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

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

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

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

代码语言:javascript
代码运行次数:0
运行
复制
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

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

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

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

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-07-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档