卓航论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 170|回复: 2
打印 上一主题 下一主题

xp下用户程序空间分配(5):加载系统DLL

[复制链接]
[至尊红钻5级]发帖数量≥8000篇 [未点亮至尊黄钻]威望不足10点 [未点亮至尊蓝钻]在线时间不足10小时 [未点亮至尊绿钻]贡献度不足10点 [至尊紫钻4级]金币≥20000个 [未点亮至尊粉钻]精华贴数不足10贴 [未点亮至尊黑钻]活跃不足8个
 等级: 
 级别: 论坛元老
 UID:  7   [未点亮普号显示]钻石不足3个
 阁 分: 36567
 阁 望: 0
 阁 献: 0
 活 跃: 0
 发 贴: 12405 (0)
 阁 币: 24162  
性 别: I'm 火星人!
阅读权限: 90
在线时长: 0 小时
注册时间: 2016-10-16
最后登录: 2016-10-18
go
楼主
发表于 2016-10-17 16:27:44 |只看该作者 |倒序浏览
本帖发表于 2016-10-17 16:27:44...阅读 171 人...加油,亲爱的楼主:[db:作者]
ntdll.dll是加载的第一个系统DLL,它的模块信息:
名称基址大小入口点
E:\WINDOWS\system32\ntdll.dll7c920000000930007c932c28

对应的内存块:

和exe略微有所区别,还是用dumpbin把它的文件内容导出来进行比较。
1.1 文件头
DLL和EXE文 件一样都是PE格式,因此它们的文件头的结构是一样的,看看从ntdll.dll中dump出来的信息:
14C machine (x86)
4 number of sections
4802BDC5 time date stamp Mon Apr 14 10:13:25 2008
0 file pointer to symbol table
0 number of symbols
E0 size of optional header
210E characteristics
Executable
Line numbers stripped
Symbols stripped
32 bit word machine
DLL
Windows为其分配了一块空间:

               
1.2 代码段
先看看文件中要求分配的地址:
SECTION HEADER #1
.text name
79FB6 virtual size
1000 virtual address (7C921000 to 7C99AFB5)
7A000 size of raw data
400 file pointer to raw data (00000400 to 0007A3FF)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
60000020 flags
Code
Execute Read
再看看 windows在内存中分配的空间:

这个和EXE文件是一样的。
1.3 数据段
这个DLL里面居然没有只读的数据段,直接就是一个数据段。
SECTION HEADER #2
.data name
4A00 virtual size
7B000 virtual address (7C99B000 to 7C99F9FF)
3200 size of raw data
7A400 file pointer to raw data (0007A400 to 0007D5FF)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
C0000040 flags
Initialized Data
Read Write
看看windows分配的内存块:

和exe文件相比,这个数据段分为了三块,不像exe那样只分为两块。
1.4 .rsrc
文件中dump出来的头信息:
SECTION HEADER #3
.rsrc name
F7D4 virtual size
80000 virtual address (7C9A0000 to 7C9AF7D3)
F800 size of raw data
7D600 file pointer to raw data (0007D600 to 0008CDFF)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
40000040 flags
Initialized Data
Read Only
               
再看windows分配的内存:

这个也和EXE文件一样,没什么说的。
1.5 .reloc
看看文件头:
SECTION HEADER #4
.reloc name
2E84 virtual size
90000 virtual address (7C9B0000 to 7C9B2E83)
3000 size of raw data
8CE00 file pointer to raw data (0008CE00 to 0008FDFF)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
42000040 flags
Initialized Data
Discardable
Read Only
再看分配的 内存:

和EXE文件一样,这个段也没有单独分配的内存,直接和.rsrc段合并在一起。
其它的系统DLL与此 类似,不再说明。
分享到: QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏0 支持支持0 反对反对0

使用道具 举报

[至尊红钻2级]发帖数量≥100篇 [未点亮至尊黄钻]威望不足10点 [未点亮至尊蓝钻]在线时间不足10小时 [未点亮至尊绿钻]贡献度不足10点 [未点亮至尊紫钻]金币不足100个 [未点亮至尊粉钻]精华贴数不足10贴 [未点亮至尊黑钻]活跃不足8个
 等级: 
 级别: 注册会员
 UID:  52   [未点亮普号显示]钻石不足3个
 阁 分: 179
 阁 望: 3
 阁 献: 3
 活 跃: 0
 发 贴: 160 (0)
 阁 币: 10  
性 别: I'm 火星人!
阅读权限: 20
在线时长: 5 小时
注册时间: 2011-1-6
最后登录: 2016-10-21
沙发
发表于 2016-10-18 19:37:43 |只看该作者
本回复帖发表于 2016-10-18 19:37:43,感谢vidrxua对本帖的认真回复,你的回复是对楼主莫大的鼓舞
我抢、我抢、我抢沙发~

使用道具 举报

[至尊红钻2级]发帖数量≥100篇 [未点亮至尊黄钻]威望不足10点 [未点亮至尊蓝钻]在线时间不足10小时 [未点亮至尊绿钻]贡献度不足10点 [未点亮至尊紫钻]金币不足100个 [未点亮至尊粉钻]精华贴数不足10贴 [未点亮至尊黑钻]活跃不足8个
 等级: 
 级别: 注册会员
 UID:  59   [未点亮普号显示]钻石不足3个
 阁 分: 172
 阁 望: 8
 阁 献: 7
 活 跃: 0
 发 贴: 140 (0)
 阁 币: 9  
性 别: I'm 火星人!
阅读权限: 20
在线时长: 5 小时
注册时间: 2011-1-6
最后登录: 2016-10-21
板凳
发表于 2016-10-20 10:00:18 |只看该作者
本回复帖发表于 2016-10-20 10:00:18,感谢108426382对本帖的认真回复,你的回复是对楼主莫大的鼓舞
不知该说些什么。。。。。。就是谢谢

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、每个贴内连续回复请勿多余3贴,每个版面回复请勿多余10贴!
4、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!

手机版| 百度搜索:vkee.pw

2012-2015 卓航旗下 GMT+8, 2024-6-2 07:00 , Processed in 0.557321 second(s), 30 queries . Powered by Discuz! X3.2  

禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.如遇版权问题,请及时联系站长(QQ:5213513)

今天是: | 本站已经安全运行: //这个地方可以改颜色

快速回复 返回顶部 返回列表