首页
社区
课程
招聘
[求助]ida 中的地址和ollyDbg中的地址不一致问题。
发表于: 2008-12-8 22:32 7850

[求助]ida 中的地址和ollyDbg中的地址不一致问题。

2008-12-8 22:32
7850
分析ms06-055这个漏洞时在ida中定位到_IE5_SHADETYPE_TEXT::Text(unsigned short const*,int )的地址为0049a121,可是用ollyDbg attach上已经加载过vgx.dll的IE进程后点ctrl+g后发现说是未知地址。 怎 么办?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 590
活跃值: (177)
能力值: ( LV9,RANK:680 )
在线值:
发帖
回帖
粉丝
2
应该是对应的
2008-12-9 07:30
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
那为什么在olly中找不到那个地址呢?
2008-12-9 09:38
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
晚上睡前顶一顶,
2008-12-9 22:51
0
雪    币: 431
活跃值: (442)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
5
重定位...
2008-12-9 23:53
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
6
对于exe,一般加载器都能将其加载到默认的地址上,所以IDA反汇编出来的地址和程序运行时的地址是一致的。

但对于DLL,多数情况下无法加载到其默认地址上,所以有的DLL在连接时干脆指定默认地址为-1,从而所有外部引用的重定位都交给连接器了。

所以,只能通过相对地址,即所谓RVA来定位。目前为止我还不知道怎么从IDA中取得RVA,只能取得它的文件偏移,所以还得再通过文件偏移来换算到RVA,然后在OD中看一下DLL加载的基址,再换算到实际的地址就行了。
2008-12-9 23:58
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
那怎么在ida中查看dll的文件地址呢?
2008-12-10 10:09
0
雪    币: 229
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
Segments

Shift+F7
2008-12-10 11:00
0
雪    币: 1098
活跃值: (193)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
9
出现这种情况,还可能是因为该dll文件还未装入进程的地址空间。我曾试过,DLL文件未装入进程的地址空间,也可能出现OD说是未知地址的。因为有些DLL是进程运行过程中调用LoadLibrary动态装进进程地址空间的。不是一开始就装入的。你用ctrl+g时可能还没装入。
2008-12-10 12:16
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
我这是按照failwest的那本书上第314页上的那个步骤来的,按书上的说明应该是装入的了呀,现在还是不知怎么在那个函数上下断,我在olly中查找所有的函数参考后找到了那个函数_IE5_SHADETYPE_TEXT(unsigned short const* int)可还是不行,根本就断不下来。
2008-12-10 12:28
0
游客
登录 | 注册 方可回帖
返回
//