首页
社区
课程
招聘
[求助]dll重定位的问题
发表于: 2012-1-14 02:47 4920

[求助]dll重定位的问题

2012-1-14 02:47
4920
我用工具为a.dll添加了一个b.dll的函数名为link的引用,然后修改a.dll中一个call为jmp b.link,这样会不会有什么问题?用调试器加载调试时正常,但是程序直接调用却不成功,是什么原因呢
如图:

[课程]Linux pwn 探索篇!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 342
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
太模糊了,call会压入返回地址,执行完call后会返回到call下一个地址,我估计是堆栈被破坏了.
2012-1-14 03:01
0
雪    币: 188
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
Jmp 不是按相对地址跳转的么?  两个dll加载的相对地址应该不是固定的吧
所以是不是需要call register 比较安全一些

胡乱猜测, 不对言论负责 ;)
2012-1-14 14:31
0
雪    币: 435
活跃值: (1207)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
4
用什么工具 添加的什么引用
直接导入表价格导入函数好了啊
call的时候 call导入表
2012-1-14 14:43
0
雪    币: 346
活跃值: (1953)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
我是用LordPE,PE修改-目录-输入表添加修改的
2012-1-15 02:01
0
雪    币: 223
活跃值: (262)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
DLL加载地址会变,直接JMP应该不行,最好动态取导入表地址然后jmp [导入表地址]
[ESP]与导入表地址之间的差是固定的.
2012-1-19 09:41
0
游客
登录 | 注册 方可回帖
返回
//