当前位置: 首页 > news >正文

上弦 网站建设网络seo公司

上弦 网站建设,网络seo公司,网站编程技术,淘宝官网首页入口0x00 前言 上一篇讲到了PE文件头的中IMAGE_FILE_HEADER结构的第二个结构#xff0c;今天从IMAGE_FILE_HEADER中第三个结构sizeOfOptionalHeader讲起。这个字段的结构名也叫做IMAGE_OPTIONAL_HEDAER讲起。 0x01 IMAGE_OPTIONAL_HEADER概述 其实这个结构是IMAGE_FILE_HEADER结构…0x00 前言    上一篇讲到了PE文件头的中IMAGE_FILE_HEADER结构的第二个结构今天从IMAGE_FILE_HEADER中第三个结构sizeOfOptionalHeader讲起。这个字段的结构名也叫做IMAGE_OPTIONAL_HEDAER讲起。 0x01  IMAGE_OPTIONAL_HEADER概述   其实这个结构是IMAGE_FILE_HEADER结构的补充。这两个结构合起来才能对整个PE文件头进行描述。这个结构异常复杂但真正我们用得到的其实不多下面来看看它的各个字段情况如下图左边的16位字符表示相对于文件头的偏移量 ypedef struct _IMAGE_OPTIONAL_HEADER {    //    // Standard fields.      //18h    WORD    Magic;         // 标志字, ROM 映像0107h,普通可执行文件010Bh1Ah    BYTE      MajorLinkerVersion;     // 链接程序的主版本号1Bh    BYTE      MinorLinkerVersion;     // 链接程序的次版本号1Ch    DWORD   SizeOfCode;     // 所有含代码的节的总大小20h    DWORD   SizeOfInitializedData;    // 所有含已初始化数据的节的总大小24h    DWORD   SizeOfUninitializedData; // 所有含未初始化数据的节的大小28h    DWORD   AddressOfEntryPoint;    // 程序执行入口RVA2Ch    DWORD   BaseOfCode;      // 代码的区块的起始RVA30h    DWORD   BaseOfData;      // 数据的区块的起始RVA    //    // NT additional fields.    以下是属于NT结构增加的领域。    //34h    DWORD   ImageBase;      // 程序的首选装载地址38h    DWORD   SectionAlignment;      // 内存中的区块的对齐大小3Ch    DWORD   FileAlignment;      // 文件中的区块的对齐大小40h    WORD    MajorOperatingSystemVersion;  // 要求操作系统最低版本号的主版本号42h    WORD    MinorOperatingSystemVersion;  // 要求操作系统最低版本号的副版本号44h    WORD    MajorImageVersion;       // 可运行于操作系统的主版本号46h    WORD    MinorImageVersion;       // 可运行于操作系统的次版本号48h    WORD    MajorSubsystemVersion;  // 要求最低子系统版本的主版本号4Ah    WORD    MinorSubsystemVersion;  // 要求最低子系统版本的次版本号4Ch    DWORD   Win32VersionValue;       // 莫须有字段不被病毒利用的话一般为050h    DWORD   SizeOfImage;       // 映像装入内存后的总尺寸54h    DWORD   SizeOfHeaders;       // 所有头 区块表的尺寸大小58h    DWORD   CheckSum;       // 映像的校检和5Ch    WORD    Subsystem;       // 可执行文件期望的子系统5Eh    WORD    DllCharacteristics;       // DllMain()函数何时被调用默认为 060h    DWORD   SizeOfStackReserve;       // 初始化时的栈大小64h    DWORD   SizeOfStackCommit;       // 初始化时实际提交的栈大小68h    DWORD   SizeOfHeapReserve;        // 初始化时保留的堆大小6Ch    DWORD   SizeOfHeapCommit;        // 初始化时实际提交的堆大小70h    DWORD   LoaderFlags;        // 与调试有关默认为 0 74h    DWORD   NumberOfRvaAndSizes;  // 下边数据目录的项数这个字段自Windows NT 发布以来        // 一直是1678h    DWORD   DataDirctory[16];       // 数据目录表} IMAGE_OPTIONAL_HEADER32, *PIMAGE_OPTIONAL_HEADER32; 这里总共31个字段但是常用的其实就是我用红色字体标明的。 前面我们已经知道了PE文件头在40h的位置则上面的偏移量推断IMAGE_OPTIONAL_HEADER字段的首个字段在40h18h58h的地方我们还是用hexwrokshop打开那个PE文件。CtrlG打开转移窗口输入58则找到了第一个字段位置如下图   对于这31个字段我们今天最为关心的是最后一个字段DataDirctory[16]我们一眼就能看出这是一个数组其中的每个元素都是由一个叫做IMAGE_DATA_DIRECTORY的结构组成。这个叫做IMAGE_DATA_DIRACTORY的结构如下                                                IMAGE_DATA_DIRACTORY    STRUC                                                VritualAddress    DWORD    //数据块的起始RVA                                               Size             DWORD   //数据块的长度                                                IMAGE_DATA_DIRACTORY    RENS 下面是DataDirctory[16]即数据目录表的各个成员   索   引 索引值在Windows.inc中的预定义值 对应的数据块 偏移量 0 IMAGE_DIRECTORY_ENTRY_EXPORT 导出表 78h 1 IMAGE_DIRECTORY_ENTRY_IMPORT 导入表 80h 2 IMAGE_DIRECTORY_ENTRY_RESOURCE 资源 88h 3 IMAGE_DIRECTORY_ENTRY_EXCEPTION 异常具体资料不详 90h 4 IMAGE_DIRECTORY_ENTRY_SECURITY 安全具体资料不详 98h 5 IMAGE_DIRECTORY_ENTRY_BASERELOC 重定位表 A0h 6 IMAGE_DIRECTORY_ENTRY_DEBUG 调试信息 A8h 7 IMAGE_DIRECTORY_ENTRY_ARCHITECTURE 版权信息 B0h 8 IMAGE_DIRECTORY_ENTRY_GLOBALPTR 具体资料不详 B8h 9 IMAGE_DIRECTORY_ENTRY_TLS Thread Local Storage C0h 10 IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 具体资料不详 C8h 11 IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 具体资料不详 D0h 12 IMAGE_DIRECTORY_ENTRY_IAT 导入函数地址表 D8h 13 IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT 具体资料不详 E0h 14 IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR 具体资料不详       E8h 15 未使用   保留     这张表的16个成员中第一个成员IMAGE_DIRECTORY_ENTRY_EXPORT导出表和第二个成员IMAGE_DIRECTORY_ENTRY_EXPORT导入表非常重要。下面我们用另一个PE文件来查看信息。由于前面的PE.exe没有输出表所以换一个Dumped.DLL这个有输出表的来查看结构。步骤如下 1.用Hexwrokshop打开文件首先找到PE文件头位置一般都是在载入起始位3ch处如下图所示。  图中被选中的黑色处100h故可知PE文件头在100h处用快捷键跳ctrlG跳转到该处 上图标黑部分即PE文件头位置。 2.找到了PE文件头的位置接下来我们来找DataDirctory[16]各个成员位置。第一个成员输出表位于PE文件头78h位置即100h78h178h处如下图 由于每个结构都占8个字节所以可以知道输出表的其实位置在4000h处大小为45h 输入表的位置位100h80h180h处如下图   由上图可知输入表的起始位置在3000h处大小为52h。 3.其实除了这么查找还有一种更为简单的方式。 我们要用到另一个工具LordPE。 步骤如下 1打开lordPE点击PE编辑器即可查看PE文件头的许多信息如下图   2再点击目录按钮即可查看数据目录表的相关信息。如下图   由上图我们直接就能看到输出表RVA为4000h大小为45h输入表的RVA为3000h大小为52h。这和我们计算的查找的结果一致。  转载于:https://www.cnblogs.com/2f28/p/9816419.html
http://wiki.neutronadmin.com/news/12016/

相关文章:

  • 58同城成都网站建设广东哪有做网赌网站
  • 以家为主题做网站手机怎么制作微信公众号
  • 北京哪家网站建设好天元建设集团有限公司刘士龙
  • 文件传输协议登陆网站上海电商网站建设
  • 网站开发课程设计实验报告音乐如何到wordpress
  • 网络设计网站建设类网站模板中国最新消息新闻报道
  • 珠海网站建设哪个好薇视觉比较好看的网站
  • 网站建设制作设计珠海网络运营是什么工作
  • 遂宁网站seo北京土人景观设计公司
  • 栖霞建设官方网站专业设计vi
  • 上海网站开发哪家好薇浏览器入口
  • 深圳住房和建设局网站业务主题wordpress分库
  • 通付盾 建设公司网站网站建设需要交文化建设税吗
  • 营销做网站公司男和男做的视频网站
  • wordpress 标签 中文乱码企业网站如何做seo
  • 微信 网站设计模板赣州网站seo
  • 中国十二冶金建设有限公司网站wordpress如何打赏
  • 装饰公司怎么做网站怎么做网址
  • 沈阳专业网站制作团队招聘高级网站建设
  • 网站目录结构说明oneinstack wordpress
  • 网站后台注入如何建立免费的个人企业网站
  • 东莞seo建站哪家好有没有做美食的小视频网站
  • 自己有网站怎么做竞价简约中国风免费ppt模板
  • 五金 东莞网站建设今天重庆新闻头条
  • 网站订单模板嘉兴网站制作计划
  • 可以做企业宣传的网站做防伪查询网站
  • 版式设计模板福州搜索引擎优化
  • 张家港网站建设早晨设计公司网站建设会计上怎么处理
  • 绛帐做网站html5网页设计论文
  • 邢台地区网站建设口碑好青海中小企业网站建设