电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

for菜鸟文章 pe文件格式 qduwg翻译 转载

18页
  • 卖家[上传人]:小**
  • 文档编号:89124459
  • 上传时间:2019-05-18
  • 文档格式:DOC
  • 文档大小:45KB
  • / 18 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、For菜鸟文章 PE文件格式 qduwg翻译转载For菜鸟文章:PE文件格式,qduwg翻译(转载)【2】2010年09月24日节目录Section directories - 节包含2个部分:节头IMAGE_SECTION_HEADER,节数据。在数据目录之后,我们看到一个具有NumberOfSections个节头成员的数组,按RVA排序。 节头包括: IMAGE_SECTION_HEADER STRUCT Name1 db IMAGE_SIZEOF_SHORT_NAME dup(?) union Misc PhysicalAddress dd ? VirtualSize dd ? ends VirtualAddress dd ? SizeOfRawData dd ? PointerToRawData dd ? PointerToRelocations dd ? PointerToLinenumbers dd ? NumberOfRelocations dw ? NumberOfLinenumbers dw ? Characteristics dd ? IMAGE_SECTION_H

      2、EADER ENDS IMAGE_SIZEOF_SHORT_NAME(8)个字节的数组,组成节的名字。如果所有8个字节被用掉,没有0做为结尾。典型的名字如.data或者.text或者.bss. 没有必要前导.,可以是是CODE或 IAT .注意名字不全部跟节内容有关。一个.code节可能或没有可能包括可执行代码,可能只包括输入地址表。可能包含代码和地址表和初始化数据。要找到在节内的信息,必须通过可选头内的数据目录查找他们。不要依赖名字,不要假定节的原始数据起始于节的开始。 下面一个成员是PhysicalAddress和VirtualSize的32位联合体. 在目标文件,该地址是内容被重定位的地址,在可执行文件内是内容的尺寸。实际上该域好像没有被使用,有的链接器填入尺寸有的链接器填入地址,有的链接器填入0。 下一个成员是VirtualAddress,32位,保存当节的数据加载入内存时的RVA。 然后是32位SizeOfRawData,是四舍五入到下个FileAlignment倍数的大小。 下一个是PointerToRawData,32位,它是从文件起始到节数据的偏移量。如果是0,节数据不

      3、包含在文件内,在加载时被确定。 然后是PointerToRelocations,32位,和PointerToLinenumbers,32位,NumberOfRelocations,16位,NumberOfLinenumbers,16位.所有这些信息仅仅用于目标文件。可执行文件有一个特殊的基准重定位目录,如果存在行号信息,一般包含在特殊目的的调试段或其他。 最后一个是32位的Characteristics,它是一组标志描述如何处理节的内存。 bit 5 (IMAGE_SCN_CNT_CODE),置1,节内包含可执行代码。 bit 6 (IMAGE_SCN_CNT_INITIALIZED_DATA)置1,节内包含的数据在执行前是确定的。 bit 7 (IMAGE_SCN_CNT_UNINITIALIZED_DATA) 置1,本节包含未初始化的数据,执行前即将被初始化为0。一般是BSS. bit 9 (IMAGE_SCN_LNK_INFO) 置1,节内不包含映象数据除了注释,描述或者其他文档外,是一个目标文件的一部分,可能是针对链接器的信息。比如哪个库被需要。 bit 11 (IMAGE_S

      4、CN_LNK_REMOVE) 置1,在可执行文件链接后,作为文件一部分的数据被清除。 bit 12 (IMAGE_SCN_LNK_COMDAT) 置1,节包含公共块数据,是某个顺序的打包的函数。 bit 15 (IMAGE_SCN_MEM_FARDATA) 置1,不确定。 bit 17 (IMAGE_SCN_MEM_PURGEABLE) 置1,节的数据是可清除的。 bit 18 (IMAGE_SCN_MEM_LOCKED) 置1,节不可以在内存内移动。 bit 19 (IMAGE_SCN_MEM_PRELOAD)置1, 节必须在执行开始前调入。 Bits 20 to 23指定对齐。一般是库文件的对象对齐。 bit 24 (IMAGE_SCN_LNK_NRELOC_OVFL) 置1, 节包含扩展的重定位。 bit 25 (IMAGE_SCN_MEM_DISCARDABLE) 置1,进程开始后节的数据不再需要。 bit 26 (IMAGE_SCN_MEM_NOT_CACHED) 置1,节的 数据不得缓存。 bit 27 (IMAGE_SCN_MEM_NOT_PAGED) 置1,节的 数据不

      5、得交换出去。 bit 28 (IMAGE_SCN_MEM_SHARED) 置1,节的数据在所有映象例程内共享,如DLL的初始化数据。 bit 29 (IMAGE_SCN_MEM_EXECUTE) 置1,进程得到执行访问节内存。 bit 30 (IMAGE_SCN_MEM_READ) 置1,进程得到读出访问节内存。 bit 31 (IMAGE_SCN_MEM_WRITE)置1,进程得到写入访问节内存。 在节头后面我们看到节自身,他们在文件内按照FileAlignment字节数对齐。即在可选头和每个节的后面将添加0。节按照他们的RVAs排序.当加载到RAM,节的对齐按照SectionAlignment。 例如:一个可选头在偏移量981处结束,文件对齐为512,第一个节起始于1024。你可以借助PointerToRawData或者VirtualAddress找到节,不必用对齐找节。(节头哪里去了?此段有问题!) +-+ | DOS-stub | +-+ | file-header | +-+ | optional header | |- - - - - - - - - -| | |-+ |

      6、data directories | | | | | |(RVAs to direc- |-+ | |tories in sections)| | | | |-+ | |目录在节内的相对地址 | | | | | +-+ | | | | |-+ | | | | section headers | | | | | | (RVAs to section |-+ | | | |节边界的相对地址 | borders) | | | | | | +-+-+ | | | | | | | -+ | | | section data 1 | | | |节数据 | | | -+ | +-+-+ | | | | | section data 2 | | | | -+ +-+ 每个节都有一个节头,每个数据目录将指向一个节(几个数据目录可能指向同一个节),有的节可能没有数据目录指向它。 节的原始数据Sections raw data - 概要- 所有的节调入内存后按照SectionAlignment对齐,FileAlignment是节在文件内对齐字节数。 节由节头内的项目来描述,可以通过PointerToRawD

      7、ata在文件内找到节,在内存内通过VirtualAddress找到节,长度是SizeOfRawData. 根据他们包含的内容,有几种节。一般至少有一个数据目录指向的内容保存在一个节内。 代码节code section - 本节至少含有一个标志位IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE and IMAGE_SCN_MEM_READ的集合,并且可选头的成员AddressOfEntryPoint指向这个节内的某个地方。可选头的成员BaseOfCode将指向这个节的开始,如果把非代码放在代码之前,也有可能指向后面某个地方。一般除了可执行代码,没有其他东西,一般只有一个代码节。一般的名字如:.text, .code, AUTO。 数据节data section - 本节包含初始化过的静态变量,例如 static int i = 5;.他含有这些位IMAGE_SCN_CNT_INITIALIZED_DATA,IMAGE_SCN_MEM_RE AD及IMAGE_SCN_MEM_WRITE 等.有的链接器把常量数据放在没有可写标志位的节内。如果部分数据是共享的

      8、,或者有其他特性的话,节将包含更多的特征位集。节一般在BaseOfData到BaseOfData+SizeOfInitializedData的范围内.典型名字如:.data, .idata, DATA。 bss section - 还有未初始化的数据,例如static int k;该节的PointerToRawData为0,表明其内容不在文件内,特征位IMAGE_SCN_CNT_UNINITIALIZED_DATA指明所有内容必须在加载时间置0。这意味着有节头,但没有节在文件内,该节被加载器创建,并且包含全0字节。其长度是SizeOfUninitializedData.典型名字如.bss, BSS。 有的节数据没有被数据目录指向,其内容和结果被编译器支持,不是被链接器支持。堆栈段和堆段不是可执行文件的节,但是被加载器创建。其大小为optional header内的stacksize和heapsize . 版权copyright - 开始于一个简单的目录IMAGE_DIRECTORY_ENTRY_COPYRIGHT.其内容是一个版权或者一个非0结尾的串,象Gonkulator control application, copyright (c) 1848 Hugendubel & Cie. 该串被使用命令行或者描述文件提供给链接器。该串不是必须的,可以被舍弃。他不是可写的,实际上程序不必访问他。链接器将找出是否有一个可以舍弃的不可写的段,创建一个名字为.descr的段。然后把串填入该段,让版权目录指针指向他。该节的特征字IMAGE_SCN_CNT_INITIALIZED_DATA 必须置1。 输出符

      《for菜鸟文章 pe文件格式 qduwg翻译 转载》由会员小**分享,可在线阅读,更多相关《for菜鸟文章 pe文件格式 qduwg翻译 转载》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.