首页
社区
课程
招聘
[旧帖] [求助]哪位大哥帮忙看下这个数据的基址和偏移? 0.00雪花
2008-8-13 14:35 4142

[旧帖] [求助]哪位大哥帮忙看下这个数据的基址和偏移? 0.00雪花

2008-8-13 14:35
4142
首先在CE里面找到了数据,找到了0014CD5C这个地址,并监视写入操作,如图:

然后对这一数据进行了写操作,CE截取了写操作,显示如下(图中00188998那个地址的出现是因为中间关了一次程序,
对数据进行了重新搜索,可以肯定0014CD5C就是数据地址无疑):

双击后显示如下:

再搜索寄存器eax的值0014CD48,只找到一个结果(CE里面显示为绿色),地址为0048A260:


哪位好心的大哥能帮帮我,这个数据的基址和偏移是什么,我还需要做什么操作?

[培训]《安卓高级研修班(网课)》月薪三万计划,掌 握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞0
打赏
分享
最新回复 (13)
雪    币: 427
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
rxzcums 2 2008-8-13 14:59
2
0
不是很懂这个工具,我大概觉得实际偏移是:8A260
你可以用hexworkshop打开crtl+g:8A260 去看看那里的值是不是48CD1400

如果不行就直接搜16进制串:48CD1400,找到一处最好,找到多出再判断,找不到就没辙了。。
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tldicklee 2008-8-13 15:13
3
0
试了一下,8A260这个地方都是00 00 00 00,
48CD1400直接找不到,
大哥再给想想办法吧!
雪    币: 427
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
rxzcums 2 2008-8-13 15:26
4
0
我没辙了,大侠跟上。
雪    币: 427
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
rxzcums 2 2008-8-13 15:29
5
0
再搜索寄存器eax的值0014CD48

这句我没看懂,能否解释下?
在图上0014CD48是 ECX 的值。
雪    币: 102
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
东方介 2008-8-13 15:54
6
0
mov ecx,[0048a260]       ====>ecx取得处。
lea edx,[ebp+edx*2+00]
mov [ecx+edx*4],eax  =====>停在这里,说明目标内存地址=ecx+edx*4
这里ecx的值可以从第1行看出在地址048a260处取得(注意,是地址。)
现在就剩edx的值无法确定了,用OD跟一下看看吧。
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tldicklee 2008-8-13 16:12
7
0
那么048a260是不是就可以直接当基址使用了呢?
雪    币: 427
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
rxzcums 2 2008-8-13 16:39
8
0
完全不对
怎么把那个当基址?
你用工具看下基址就知道了
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tldicklee 2008-8-13 20:12
9
0
图中我的操作步骤是这样的:
1、先运行程序和CE,进行数据搜索;
2、找到要修改的数据地址(0014CD5C)后,对这个地址进行监听写入操作;
3、CE捕捉到写入操作:mov [ecx+edx*4],eax,  ecx=0014CD48(这个数值在不同电脑上会有所不同),edx=00000005(这个值没有变过);
4、然后在CE中新建了一个搜索,对0014CD48这个数据进行了搜索,只找到了一个地址0048A260,并且在CE中显示为绿色,CE中显示为绿色的地址一般都不会改变,确实程序在别的电脑上这一步也是找到的这个地址;
我想知道下一步我该怎么做才能得到基址呢?或者是实现一段汇编语言把ecx+edx*4这个地址用一个静态地址储存也行啊!

期待强人的出现!
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tldicklee 2008-8-14 14:58
10
0
现在可以确定的是这个数据存储地址是随机的,但是这个随机位置的地址是存在0048A260里-这个是固定的,rxzcums老师教我的用hexworkshop查看的方法读不到48CD1400,是因为这个地址在运行时才会有这个随机的数据地址,在编程过程中能不能用0048A260中存储的地址+偏移得到数据正确的地址呢?
雪    币: 427
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
rxzcums 2 2008-8-14 16:08
11
0
你是不是想改游戏里的某个数据啊?
其实配合OD应该能很方便的解决。
雪    币: 102
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
东方介 2008-8-14 17:16
12
0
0048A260不是基址,也不是偏移,是指针。
如果真如你说edx没有变过,一直是5,那么那个内存地址就是[0048a260]+5*4
即先读0048A260这个地址里的DWord数据再加上20就可以找到你要改的内存地址了,
以上全是我个人见解,你可以试试。
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tldicklee 2008-8-14 19:12
13
0
谢谢大家
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tldicklee 2008-8-15 06:41
14
0
这个数据的基址是动态的,但是这个动态的地址是固定存在0048A260 里面,这究竟怎么回事,有高人出来解释一下吗?
游客
登录 | 注册 方可回帖
返回