一个奇怪的PE文件
来源:互联网 发布:淘宝网免费开店流程 编辑:程序博客网 时间:2024/05/19 00:55
TestSwitch.rar里的PE文件很奇怪(这个文件是我自己代码编译出来的)
看图1
IMAGE_SECTION_HEADER (Count: 3) (Size: 0x0028H<40B>)(ROF: 0x000001C0)
Name VSize VAddress SOfRawData PToRawData
00 .text 0x00004E3C 0x00001000 0x00005000 0x00001000
01 .rdata 0x000008A8 0x00006000 0x00001000 0x00006000
02 .data 0x00003E24 0x00007000 0x00003000 0x00007000
看02 .data段
IMAGE_SECTION_HEADER.Misc.PhysicalAddress 是 0x00003E24
文件对齐是0x1000, 那么
IMAGE_SECTION_HEADER.SizeOfRawData 不应该是0x00004000吗?
为什么会是0x00003000
看
IMAGE_SECTION_HEADER..PointerToRawData 是 0x00007000
MAGE_SECTION_HEADER.SizeOfRawData 是0x00003000
文件大小是0x00007000 + 0x00003000 = 0x0000A000 = 40K 这个是正确的.
看
IMAGE_OPTIONAL_HEADER32.SizeOfImage是 0x0000B000;
使用OD加载该PE文件, .data段在内存中的大小是 0x00004000 (0x00007000--0x0000B000)
当然, 0x0000A000---0x0000B000这一段全是00的.
结论:
IMAGE_SECTION_HEADER.Misc.PhysicalAddress 应该是在内存中的没对齐时的大小(而不是文件中没对齐时的大小).
MAGE_SECTION_HEADER.SizeOfRawData 是在文件中对齐后的大小.
IMAGE_OPTIONAL_HEADER32.SizeOfImage 是PE文件加载到内存需要的内存大小.
这样理解, 这个PE文件不奇怪.
TestSwitch.rar:
http://download.csdn.net/detail/cay22/4381945
- 一个奇怪的PE文件
- 一个奇怪的隐藏文件
- 一个奇怪的问题--关于文件输出
- 感染PE文件的一个简单实例
- 感染PE文件的一个简单实例
- 一个PE文件的学习程序[原创]
- 自己写的一个PE文件FileVersionInfo类,可以轻松获取PE文件版本信息
- PE文件详解-----PE文件的简介
- 一个奇怪的问题
- 一个奇怪的程式
- 一个奇怪的故障
- 一个奇怪的表达式
- 一个奇怪的bug
- 一个奇怪的问题
- 一个奇怪的问题
- 一个奇怪的问题
- 一个奇怪的listview
- 一个奇怪的bug
- Hibernate入门BLOG [五、hibernate的组件]
- ADROID 2.2 语言定制
- VC编译的exe程序, Debug版会有重定位表, Release版就没有重定位表
- oracle 的flashback version query和logminer
- JavaScript学习—原型和继承
- 一个奇怪的PE文件
- TabWidget去除底部下划线
- EXCEL常用公式(一)
- Hibernate入门BLOG [六、Hibernate的关键字总结]
- Selenium2 Firefox缓存太大导致找不到element问题
- Activity的生命周期
- 浅谈C#托管程序中的资源释放问题
- (转)DirectShow系统综述
- Android自定义Gallery,实现CoverFlow效果