首页
论坛
课程
招聘
内存补丁的小应用-某游戏的辅助工具
2005-6-25 10:47 6037

内存补丁的小应用-某游戏的辅助工具

2005-6-25 10:47
6037
内存补丁的小应用-某游戏的辅助工具

近段在玩一个网络游戏,粗略的分析发现这个游戏的某些数据是可以在本地
内存中修改的。但游戏可能有某些检测,所以不能直接修改执行程序,否则
自动掉线。但可以通过ollydbg每次手工修改内存,使修改起作用。另外一个
方面,这个游戏版本更新比较频繁,即使对某个特定版本的客户端进行修改,
更新之后内存地址有会改变,比较麻烦,所以想写一个通用版本的自动修改
工具自己使用。

可行性:
观察发现,游戏版本更新与否,某处一小段汇编代码是不变的,大概他们没发现此处的
缺陷,从未修改。
我把这段代码叫做特征码:
00660B39    81EC 44040000  sub esp,444
...
00660B47    8983 4E0A0000  mov dword ptr ds:[ebx+A4E],eax

每次修改时,只要修改
00660B47    8983 4E0A0000  mov dword ptr ds:[ebx+A4E],eax
处ds:[ebx+A4E]所指向的内存中的数据即可.
但每次版本更新之后,这一小段特征代码的位置是变化的,
ds:[ebx+A4E]所指向的内存当然也是不一样的了。

所以,我的想法是:
1,扫描执行文件的.text段,确定特征码在执行程序中的位置。
2,通过pe信息,确定程序执行时特征代码的VA.
3, 利用DRx调试寄存器(如果用int 3设置断点程序会自动终止),在此VA设置断点,确定ds:[ebx+A4E]所指向的内存地址并保存。
4,遍历进程表,找出游戏执行文件的pid,保存到数组中(可能多开).然后分别打上内存补丁。

根据这么个思路,参考书上的代码写了这么一个小工具,见笑了。

by ikki [D.4s]

2005.6.25
附件:code.rar

【看雪培训】《Adroid高级研修班》2022年春季班招生中!

收藏
点赞0
打赏
分享
最新回复 (5)
雪    币: 151
活跃值: 活跃值 (10)
能力值: ( LV9,RANK:1010 )
在线值:
发帖
回帖
粉丝
liyangsj 活跃值 25 2005-6-25 10:57
2
0
支持一下!
雪    币: 200
活跃值: 活跃值 (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
laofy 活跃值 2005-6-25 11:23
3
0
ding
雪    币: 202
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
k99992002 活跃值 2005-6-25 12:38
4
0
支持下!!!
雪    币: 241
活跃值: 活跃值 (24)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
matali 活跃值 2005-6-25 12:58
5
0
楼主说的是什么游戏呀?
雪    币: 106
活跃值: 活跃值 (355)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
nbw 活跃值 24 2005-6-25 13:39
6
0
好。学习一下。
游客
登录 | 注册 方可回帖
返回