首页
课程
问答
CTF
社区
招聘
看雪峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
看雪峰会
看雪商城
证书查询
看雪社区
软件逆向
发新帖
1
1
为何从DLL的IMPORT TABLE中得不到正确的函数位置
2004-10-3 15:47
4600
为何从DLL的IMPORT TABLE中得不到正确的函数位置
drgnmvpn
2004-10-3 15:47
4600
要得到自己程序装载的DLL中的一个函数的位置,一般是使用GetProcAdress函数,但现在我不想使用这个函数.因为每个DLL都有自己的导出函数表,使用它可以查得到的,所以我打算用它在程序中查kernel32.dll一些函数的位置.在这里就发现一些奇怪的事了:大部分函数查到的值与用GetProcAdress得到的值一样.但在EnterCriticalSection这个函数就不一样了.使用GetProcAdress得到的值为0x77f755de.而使用import table查到的值为0x77eb38f1.而且这个0x77eb38f1并根本不是一个正确的函数起始地址,调用它是会出错的.这里就搞不懂了,为什么import table中会有一个错误的值呢?应用程序在装载DLL的时候不也是使用它们的IMPORT TALBE来建造自己的IAT吗?是不是有好几种装载方式呢?
[培训]《安卓高级研修班(网课)》月薪三万计划,掌 握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法
收藏
・
1
点赞
・
1
打赏
分享
分享到微信
分享到QQ
分享到微博
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
最新回复
(
3
)
verybigbug
雪 币:
153
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
2
回帖
115
粉丝
0
关注
私信
verybigbug
2004-10-4 07:14
2
楼
0
听过FW吗?kernel32.dll中并没有实现这个函数, 而是在ntdll.dll中实现的,kernel32中只起一个转发功能。
drgnmvpn
雪 币:
217
活跃值:
(70)
能力值:
( LV2,RANK:10 )
在线值:
发帖
7
回帖
25
粉丝
1
关注
私信
drgnmvpn
2004-10-4 10:13
3
楼
0
但关键是IMPORT TABLE中给出的那个地址根本就不是一个正确代码的地址.它是在一个指令的中间.
lordor
雪 币:
279
活跃值:
(375)
能力值:
( LV9,RANK:250 )
在线值:
发帖
12
回帖
239
粉丝
1
关注
私信
lordor
6
2004-10-4 12:15
4
楼
0
IMPORT TABLE可能取得的这个不对?用GetProcAdress可以取得其地址,我在xp下用其它工具找也可以找到EnterCriticalSection的地址为0x77f755de,再反过来用0x77f755de找其函数名为RtlEnterCriticalSection,正如verybigbug说的在ntdll.dll中
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
drgnmvpn
7
发帖
25
回帖
10
RANK
关注
私信
他的文章
DisShellDbg第二次发布更新,可在Win2000下调试,更快,更稳定
6955
犯了一个底级错误,请大家重新下载
7195
发布新开发成功的调试器-DisShellDbg,现支持Win2000,XP下的调试.
15672
为何从DLL的IMPORT TABLE中得不到正确的函数位置
4601
下SEH中断一定要用堆栈吗?
4258
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
返回
顶部