18.x86游戏实战-找角色人物名字

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!

本次游戏没法给

内容参考于:微尘网络安全

工具下载:

链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd=6tw3

提取码:6tw3

复制这段内容后打开百度网盘手机App,操作更方便哦

上一个内容:17.x86游戏实战-深剖堆栈

这里说一句OD代码区翻页的快捷键:减号

这里说的翻页的意思是,当打了断点按了ctrl+f9它会来到调用函数的位置,这时如果想回到按ctrl+f9之前的位置就按键盘上的减号键

现在游戏的名字叫染指樱

然后打开CE,点击下图红框位置附加到游戏

然后搜索名字,下图红框位置,如果名字搜不到,那么就取消勾选重新再搜一次试试

搜索名字,搜出了35个

全部选择,然后点击下图红框位置的红色箭头

然后选中一般,鼠标右击选择修改数值

现在改成3333

改完游戏中没反应,继续选择另一半,最终找到了名字,改名字的时候,游戏可能会闪退,重新启动,重新使用CE搜一次就好,下图就是游戏闪退重新搜的

然后现在找到了名字,但是这个地址没法用,游戏重启之后地址就会变,所以打开OD找它的基址,打开OD并附加到游戏之后,先鼠标左键单机一下内存区,然后按ctrl+g键,弹出弹框输入刚刚使用CE找出来的名字的地址,然后点确认

然后就可以看到44444的编码了,4的编码是34

然后鼠标右键单机名字的地址,然后选择硬件访问断点、byte,如下图选中的

单击完byte之后它就会卡主,这说明这段代码访问了名字,下图的代码基址没法找(对于新手不友好,所以不看它,现在只知道这段代码没法找名字基址就好)

然后游戏中访问名字的代码不可能只有一段,按F9或单击下图的运行

多按基础F9就会来到下图位置,这里的代码找名字基址就会很简单,所以就从它开始找基址

然后现在找到追名字基址的位置了,先把刚开始下的硬件访问断点关掉(为了防止莫名其妙断下来)

点击下图红框位置

然后点删除,然后点确定

然后开始追名字基址

首先代码是执行完下图红框的代码断下来的

然后eax的值是名字的地址,所以接下来查看eax的值是从哪来的

然后看到eax的值是从ebp+8位置得到的,ebp+8这样的写法是函数的参数,上一个内容中有例子

所以按ctrl+f9来到调用当前函数的地方,下图红框位置就是调用的上图函数

然后接下来看这个函数的入参,也就是看调用函数之前push的什么东西,然后它push的是eax

所以还是要看eax的值哪来的,下图红框是eax最近一次赋值,为了确认是不是0x1AB7CDC

直接在je后面打断点,也就是下图红框位置打断点,je指令与test指令配合意思是看eax的值是不是0,如果是0就跳转,如果能下下图红框位置断下来0x1AB7CDC就跑不了了,它就是名字基址了,打完断点按f9

然后在这断了下来

然后按F8单步运行,可以看到eax的现在也是名字,所以名字的基址计算是[[0x1AB7CDC]+0x258]

这里可以使用OD带的一个功能确认[[0x1AB7CDC]+0x258]的值,如下图红框,输入db [[0x1AB7CDC]+0x258]然后按回车键(Enter键)就可以看到了,然后 db [[0x1AB7CDC]+0x258]里的db是一个数据类型,db是让内存以1字节数据类型方式展示,上图的内存显示是dd类型4字节类型

然后到这名字的基址就找到了

然后除了db类型Windows有多种数据类型,如下图,下图是从微软官方截的图

网址:https://learn.microsoft.com/zh-cn/windows-hardware/drivers/debuggercmds/d--da--db--dc--dd--dd--df--dp--dq--du--dw--dw--dyb--dyd--display-memor


评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值