首页
社区
课程
招聘
求助dll地定位
发表于: 2009-12-18 14:29 4528

求助dll地定位

2009-12-18 14:29
4528
我在ollydbg里调试到了dll中的一个函数,想在ida里分析这个函数,但直接copy地址在ida里找到的不是这个函数,请问要如何才能找到,还有为什么会这样?
第一次提问不知填多少金,各位就先收着,谢谢

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

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 120
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
Alt+m,查看一下在OD该dll的首地址是多少
在ida中,dll的起始地址是正常的10000000
把你所找到的地址减去OD中该dll的起始加载地址,再加上10000000就可以了
2009-12-18 15:32
0
雪    币: 38
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
先在OD里看看你要找的这个函数是属于哪个模块的,并且记下这个模块的实际装入基地址ImageBase。然后用IDA打开相应模块的PE文件。OD中看到的函数地址FuncAddr - ImageBase + 建议装入地址(用PEditor可以查到)便是IDA中的地址。这样就能在IDA中找到该函数了。
2009-12-18 15:35
0
雪    币: 91
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
可能是我没把问题说清楚。是这样的
我在OD里打开了A.exe, A.exe加载了AA.DLL,我在调试时跟到了AA.DLL的下面这个函数
003A5478  |.  FF15 BCE73B00 CALL DWORD PTR DS:[<&WS2_32.#16__recv@16>; \recv

这是AA.DLL在OD里的加载信息:
基址=00390000
大小=0005E000 (385024.)
入口=003B40DF AA.<模块入口点>

那么我在IDA里打开A.exe,要如何才能把AA.DLL加载进来,并且加载AA.DLL后函数地址:003A5478也与OD是一致的。
就是说在IDA里也是003A5478  |.  FF15 BCE73B00 CALL DWORD PTR DS:[<&WS2_32.#16__recv@16>; \recv

请问要如何做,或者有什么好的方法。
2009-12-23 17:38
0
雪    币: 444
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
楼主,3楼说的很清楚.3楼的方法是最正确的方法.
因为LOAD加载器就是这样计算 RVA---->VA 的(基准值变化但是针对基准的偏移值是不变的).
2009-12-23 20:38
0
雪    币: 166
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
偷偷学习一下
2009-12-24 10:10
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
不是太懂,学习一下!!!
2009-12-24 10:35
0
雪    币: 75
活跃值: (803)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
[QUOTE=tomtomtom;731984]可能是我没把问题说清楚。是这样的
我在OD里打开了A.exe, A.exe加载了AA.DLL,我在调试时跟到了AA.DLL的下面这个函数
003A5478  |.  FF15 BCE73B00 CALL DWORD PTR DS:[<&WS2_32.#16__recv@16>; ...[/QUOTE]

楼主 ,你用od的时候直接找 003Be7cb 地址存的 四个字节内容 就是 WS2_32.#16__recv@16函数的地址,然后跳那去,把这个函数的代码copy出来,自己分析,如果要用IDA分析,见3楼
2009-12-24 10:46
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
其实挺难哦
!!!!
2010-1-8 10:57
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
10
你要看的是导出函数。在IDA中打开导出函数的标签,直接双击就到函数入口了。
2010-1-8 11:22
0
游客
登录 | 注册 方可回帖
返回
//