首页
社区
课程
招聘
[调试]魔兽世界 高手帮帮我呀。付全部代码及详细说明
发表于: 2006-3-23 05:05 6853

[调试]魔兽世界 高手帮帮我呀。付全部代码及详细说明

2006-3-23 05:05
6853
本人想做一个魔兽世界获得其 血的值 的软件。
可是因为游戏使用了动态内存,每次读地址血就会变。
我按照论坛里动态内存转静态的方法把内存保存到一个固定地址里可是不成功
具体操作步骤如下。请高手帮忙

我先用金山游侠搜索到血的地址然后用Softice的pbm 地址 w命令,在地址上设置了断点。于是当我掉血的时候游戏遍中断了:

005F5150 55             push ebp
005F5151 8BEC           mov  ebp,esp
005F5153 8B4108         mov  eax,dword ptr[ecx+08]
005F5156 8B4D0C         mov  ecx,dword ptr[ebp+0C]
005F5159 8B5508         mov  edx,dword ptr[ebp+08]
005F515C 890C90         mov  dword ptr[eax+4*edx],ecx
005F515F B801000000     mov  eax,00000001;程序在这里中断了,我看到寄存器ecx就是我想要血的值
005F5164 5D             pop  ebp
005F5165 C20800         ret  0008

于是我按照论坛里动态内存转静态的方法把上面代码修改为:

005F5150 55             push ebp
005F5151 8BEC           mov  ebp,esp
005F5153 8B4108         mov  eax,dword ptr[ecx+08]
005F5156 8B4D0C         mov  ecx,dword ptr[ebp+0C]
005F5159 8B5508         mov  edx,dword ptr[ebp+08]
005F515C 890C90         mov  dword ptr[eax+4*edx],ecx
005F515F E94AF01B00     jmp  007B41AE;读到这里跳到007B41AE(魔兽游戏的空白处)
005F5164 5D             pop  ebp
005F5165 C20800         ret  0008
//////////////////////////////////////////////////////
007B41AE 890DF89EFB0C   mov dword ptr[0CFB9EF8],ecx;把ecx保存到地址:0CFB9EF8(这个地址为魔兽.data地址减100得来的)
007B41B4 B801000000     mov eax,00000001
007B41B9 E9A60FE4FF     jmp 005F5164;然后跳回程序

于是我读0CFB9EF8这个地址。。里面的值竟然是0气死我了。。根本不是我想要的。。那位大哥能告诉我怎么办。。。。救救我吧

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 270
活跃值: (176)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
2
007B41AE 890DF89EFB0C   mov dword ptr[0CFB9EF8],ecx
007B41B4 B801000000     mov eax,00000001

-------------------
应该是这个地址有问题吧,不能写或者程序自己有用到,
实在不行,自己加个段进去,保存到自己 的段里.
2006-3-23 09:48
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
3
怎么加段呀帮帮我吧.大哥哥...
2006-3-23 12:16
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
4
帮帮我吧!!!!!!!!!!!!!!求求大哥哥了
2006-3-23 13:37
0
雪    币: 111
活跃值: (55)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
0CFB9EF8 这个地址有点像是某个动态分配的缓冲区地址。
找到它分配内存的地方,比如说某个VirtualAlloc,截掉它的返回值,加上地址偏移就能找到你想要的地方了。
2006-3-23 17:43
0
雪    币: 1241
活跃值: (120)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
利用WOW提供的API即可用LUA实现。
local HP = UnitHealth("player");

比如计算血值百分比
local HPPercent = UnitHealth("player") / UnitHealthMax("player");

具体可查看WOW API的wiki手册: http://www.wowwiki.com
或看WOW的插件SCT。
2006-3-23 19:07
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
7
几位大哥能说详细点吗?帮帮我小弟弟吧
2006-3-23 20:08
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
8
Help me
2006-3-24 14:51
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
9
help me
2006-3-25 00:42
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
顶.............
2006-3-25 01:50
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
11
是没有高手还是。。。。。。。怎么没人帮我
2006-3-25 04:02
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
在线游戏还要考虑和服务器的同步问题,很难的。
2006-3-25 08:48
0
雪    币: 196
活跃值: (96)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
13
“于是我读0CFB9EF8这个地址。。”
请问楼主是怎么读取的?
2006-3-25 21:50
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
14
×××××××

脏话己被屏蔽
2006-3-31 17:31
0
雪    币: 44229
活跃值: (19960)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
15
最初由 gochao 发布


没人回帖就骂人,就你这素质!
这里不欢迎你!永封ID!
2006-3-31 18:34
0
游客
登录 | 注册 方可回帖
返回
//