首页
社区
课程
招聘
[旧帖] [讨论]关于dll 重定位的一些疑问 0.00雪花
发表于: 2009-11-28 16:58 1609

[旧帖] [讨论]关于dll 重定位的一些疑问 0.00雪花

2009-11-28 16:58
1609
问题1:
dll 的首选基地址是 0x10000000.我手里一个程序加载了这个dll 到0x10000000.
我用IDA 打开这dll 也加载到了0x10000000.
于是我可以动静结合 来看代码.
后来dll 被重定位了. 重定位到 0x20000000.但是用IDA 打开dll 仍然加载到0x10000000.
两份代码我就不能 结合着看了 怎么办?
小弟刚学逆向才1星期.......不大会用IDA. 能不能让IDA 也把dll 加载到0x20000000.
这样又可以对照着看了.

问题2:
一般来说 dll的基地址+函数偏移地址就是该函数的绝对地址.
当dll 被加载到0x10000000 这里时,我发现某1函数的偏移是668EB0
当dll 被加载到0x20000000 时,我用 0x20000000+0x668EB0 却不能访问这个函数.
我用IDA 看,函数地址仍是 0x10668EB0,也就是说偏移还是668EB0 可是 怎么就访问不到呢...
难道经过了特殊处理?
希望大大们能帮忙解答下

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 253
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
IDA是“静态”反汇编
当然也可以调试
没搞懂你这状况
2009-11-28 18:58
0
雪    币: 1450
活跃值: (35)
能力值: (RANK:680 )
在线值:
发帖
回帖
粉丝
3
IDA, 勾选 manual load
2009-11-28 19:57
0
雪    币: 16
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
哦呵呵 谢谢。那么第2个问题大家有遇见过吗?
windows 核心编程里说 只要用 函数基地址+函数的偏移地址 就是其绝对地址.
若基地址为 0x10000000 ,偏移为 668EB0,则函数的绝对地址就是 0x10668EB0
若基地址改为 0x20000000,则函数绝对地址就是0x20669EB0....但是这里已经不是原来的地方了.......
大家可以试一下,用IDA 把dll 加载到不同地方.然后跳转到基地址+偏移,不是原来的位置........
感觉好像函数的偏移也变了......   这问题困扰我很久了.....麻烦了 谢谢
2009-11-28 21:52
0
雪    币: 16
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
抱歉...刚才仔细看了下...IDA 默认 加载地址是10001000....而且好像还自己处理点东西.......所以从这里得到的函数偏移是错误的.......... 应当手动加载(任意位置都行),这样得到的函数偏移才是真的......
2009-11-28 22:09
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
晚上过来看下自己多少在线时间了。
。。帮顶。
2009-11-28 22:15
0
游客
登录 | 注册 方可回帖
返回
//