首页
社区
课程
招聘
内存补丁的小应用-某游戏的辅助工具
发表于: 2005-6-25 10:47 7267

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

2005-6-25 10:47
7267

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

近段在玩一个网络游戏,粗略的分析发现这个游戏的某些数据是可以在本地
内存中修改的。但游戏可能有某些检测,所以不能直接修改执行程序,否则
自动掉线。但可以通过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


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 7
支持
分享
最新回复 (5)
雪    币: 328
活跃值: (925)
能力值: ( LV9,RANK:1010 )
在线值:
发帖
回帖
粉丝
2
支持一下!
2005-6-25 10:57
0
雪    币: 206
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
ding
2005-6-25 11:23
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
支持下!!!
2005-6-25 12:38
0
雪    币: 245
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
楼主说的是什么游戏呀?
2005-6-25 12:58
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
6
好。学习一下。
2005-6-25 13:39
0
游客
登录 | 注册 方可回帖
返回
//