3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 3185|回复: 10
打印 上一主题 下一主题

[资料] 关于如何追码

[复制链接]

65

主题

981

帖子

3405

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
431
金元
16506
积分
3405
精华
3
注册时间
2014-11-13

3DM MOD站(黄金)

跳转到指定楼层
主题
发表于 2018-4-1 22:19 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
感觉或许不会有人看
然而既然做了,就发出来好了
首先找到一个无辜的商品(未截图)

注入代码是为了保证我们的商品唯一,方便下一步
当然如果不这么做或许也可以,但可能会付出更多代价,比如找地址的时候会麻烦很多

如果这里有很多地址,下一步你要爆炸……
因为下一步是,ctrl+b查看内存,找到这个地址,并确定是什么访问了这个地址

访问其实有两种,读和写,如果地址众多,可以用这个技能进行区分。

再往后一张图就可以看到,上面那张图的不幸指的是什么。

就是这里,如果程序一次只访问一个地址,你完全可以靠代码注入,把代码访问的地址抠出来自行处理

然而,这样就没有处理方法了吗?显然答案是否定的……
游戏不勤快,我们手工勤快一下好了:



故意拉长一点让大家先反应一下
顺便扯两句我写的小说《慷慨的歌》
如果看到了这里,却找不到哪一个指令更改了edi,或许……还能抢救一下
汇编格式: 指令 目标寄存器,各种附加参数
其中,一般情况都是,目标寄存器会更改,而具体是怎么更改的需要看附加参数和指令是什么样子(当然,mul这样只会把结果送进固定寄存器的奇葩不在我们讨论范围之内)
我们看到的是mov rax,[rdi-28]这样的东西,意思就是,把一个跟rdi有关的数送进rax
于是我们要找rdi,看看是什么更改了rdi,比如如果前文出现add rdi,2c或者xor rdi,#-1之类的东西,我们就可以宣布,自己找到了。



























值得一提的是,左边那个圈圈是用来改变edi的值的,每次将edi增加2C
可以看出这句话的判断标准是,只要物品ID不是-1,就可以接着往下走,只要我们新建一个物品,那么它一定会显示在商店列表中。

暂时写这么多。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2026-4-27 22:55 , Processed in 0.034308 second(s), 18 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表