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

网络营销网站建设诊断报告网站做推广要备案吗

网络营销网站建设诊断报告,网站做推广要备案吗,百度精简版入口,南昌教育网站建设公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 什么是 IMAGE_EXPORT_DIRECTORY? PE 文件与 Export Table 的关系 PE 文件的整体视角 Export Table 在 PE 中的定位 IMAGE_EXPORT_DIRECTORY 结构 数据结构定义 字段详解…
  • 公开视频 -> 链接点击跳转公开课程
  • 博客首页 -> ​​​链接点击跳转博客主页

目录

什么是 IMAGE_EXPORT_DIRECTORY?

PE 文件与 Export Table 的关系

PE 文件的整体视角

Export Table 在 PE 中的定位

IMAGE_EXPORT_DIRECTORY 结构

数据结构定义

字段详解

Characteristics

TimeDateStamp

MajorVersion 和 MinorVersion

Name

Base

NumberOfFunctions

NumberOfNames

AddressOfFunctions

AddressOfNames

AddressOfNameOrdinals

Export Table 的三个主要数组的关系

AddressOfFunctions(函数地址表)

AddressOfNames(名称指针表)

AddressOfNameOrdinals(序号表)

导出表的工作流程

导出表在攻击中的应用

API Hook

恶意 Shellcode 的注入

导出表在防御中的实际应用

完整性验证

内存防护机制


什么是 IMAGE_EXPORT_DIRECTORY?

概述

  • 在 Windows PE 文件结构中,IMAGE_EXPORT_DIRECTORY 是用于描述模块 (DLL 或 EXE) 所导出(函数或变量)信息的核心结构。
  • 通过 Export Directory,其他模块可以访问当前模块公开的符号,如动态函数链接调用的函数地址。

PE 文件与 Export Table 的关系

PE 文件的整体视角

PE 文件是一种模块化执行文件格式。它包含以下部分:

  • Headers 部分:包括 DOS Header、PE Header,用来描述文件结构和入口点等。
  • Data Directories 部分:包含导出表(Export Table)、导入表(Import Table)、重定位表(Relocation Table)等指针。

Export Table 在 PE 中的定位

  • Export Table 是 Data Directories 的一项,位于 PE 可选头部中的 IMAGE_DATA_DIRECTORY 中。
  • 它的作用是描述该模块导出的所有符号(函数或变量),并支持函数按名称或序号的调用。
  • 常用于动态链接库 (DLL) 的导出 API。

IMAGE_EXPORT_DIRECTORY 结构

数据结构定义

在 Windows SDK 的 winnt.h 文件中,IMAGEEXPORTDIRECTORY 的结构定义如下:

typedef struct _IMAGE_EXPORT_DIRECTORY {DWORD   Characteristics;        // 保留字段(总为0)DWORD   TimeDateStamp;          // 时间戳(编译器生成时间)WORD    MajorVersion;           // 主版本号(通常为0)WORD    MinorVersion;           // 次版本号(通常为0)DWORD   Name;                   // DLL名称的RVA(如"kernel32.dll")DWORD   Base;                   // 导出函数序号的基值(实际序号=索引+Base)DWORD   NumberOfFunctions;      // 导出函数总数(最大的导出序号 - 最小的导出序号 + 1)DWORD   NumberOfNames;          // 按名称导出的函数数量(可能小于总数)DWORD   AddressOfFunctions;     // 函数地址数组的RVA(每个元素为函数RVA)DWORD   AddressOfNames;         // 函数名称数组的RVA(每个元素为名称RVA)DWORD   AddressOfNameOrdinals;  // 函数序号数组的RVA(每个元素为索引)
} IMAGE_EXPORT_DIRECTORY;

字段详解

Characteristics

  • 保留字段,通常为 0。

TimeDateStamp

  • 用于表示导出表生成的时间戳。
  • 用于验证导出表的有效性。

MajorVersion 和 MinorVersion

  • 保留字段,表示模块的主次版本号。实际很少使用。

Name

  • 模块名称(DLL 文件名)的 RVA,例如 "kernel32.dll"。

Base

  • 起始导出序号值。默认是 1,但可以自定义为其它值。

NumberOfFunctions

  • 导出函数地址表中条目数量。
  • 即模块实际可以导出的符号总量。

NumberOfNames

  • 导出名称表中的名称数量。
  • 注意: 这可能小于 NumberOfFunctions,因为不是所有函数都有名称(某些只通过序号导出)。

AddressOfFunctions

  • 一个指向 RVA 的数组,每个条目是导出函数地址。

AddressOfNames

  • 一个指向 RVA 的数组,每个条目是导出函数名称字符串的 RVA。

AddressOfNameOrdinals

  • 一个指向数组的 RVA,每个条目对应导出名称表中名称的序号(以 Base 为基数)。

Export Table 的三个主要数组的关系

AddressOfFunctions(函数地址表)

  • 储存实际导出函数的入口地址(RVA)。
  • 大小等于 NumberOfFunctions * sizeof(DWORD)。

AddressOfNames(名称指针表)

  • 储存名称的 RVA,仅包含按名称导出的符号。
  • 大小等于 NumberOfNames * sizeof(DWORD)。

AddressOfNameOrdinals(序号表)

  • 每个名称对应的函数序号。
  • 这些序号用来索引函数地址表中的指定条目。
  • 大小等于 NumberOfNames * sizeof(WORD)。

导出表的工作流程

  1. PE 加载器读取 Data Directory,定位到 IMAGE_EXPORT_DIRECTORY 的 RVA。
  2. 通过 AddressOfFunctions、AddressOfNames 和 AddressOfNameOrdinals 解析导出符号。
    1. 如果按照函数名导出,从名称表和序号表定位到函数地址。
    2. 如果按照函数序号导出,直接用序号索引函数地址表。
  3. 动态生成外部模块可以调用的函数地址。

导出表在攻击中的应用

API Hook

攻击者通过修改导出表(尤其是导出地址表,即 Export Address Table, EAT)中函数地址,将正常的函数调用重定向到恶意函数,进而拦截数据或执行恶意代码。

  • 功能篡改:
    • 攻击者拦截导出的关键函数(如 OpenFile、ReadFile),窃取用户数据或操作文件。
  • 隐藏恶意行为:
    • 将监控函数(如 NtQuerySystemInformation)指向伪造的函数,隐藏自身的进程和对象。

恶意 Shellcode 的注入

  • 添加自定义导出函数,伪装成合法的 DLL。
  • 使用恶意 Shellcode 替代导出函数实现远程控制或蠕虫传播。

导出表在防御中的实际应用

完整性验证

导出表是 PE 文件结构的核心,可以作为完整性校验的依据:

  • 验证导出地址是否指向合法的函数地址。
  • 验证所有导出函数的序号和名称是否匹配。
  • 针对 DLL 劫持攻击的防御:通过比对导出表内容和原始文件的导出表,检测是否被篡改。
  • 防止 Hook 或 API 替换攻击:验证导出表指向的内存区域是否合法。

内存防护机制

Windows 的现代内存防护技术可以用来保护导出表免受修改。

  • DEP(数据执行保护):
    • 防止攻击者直接修改导出表的函数地址指向恶意代码。
  • ASLR(地址空间布局随机化):
    • 随机化模块加载地址,增加攻击者定位导出表的难度。

文章转载自:

http://N6aKPcz0.zxznh.cn
http://rmZNImYv.zxznh.cn
http://9an1V3Gm.zxznh.cn
http://6jAiLVHk.zxznh.cn
http://AdpMKFvx.zxznh.cn
http://AZnjwlXn.zxznh.cn
http://Oh8erVr0.zxznh.cn
http://0LptmHxZ.zxznh.cn
http://UJ87bTGp.zxznh.cn
http://6L0tttRG.zxznh.cn
http://U4DJ7Irh.zxznh.cn
http://qfLjOKXl.zxznh.cn
http://sDPo6May.zxznh.cn
http://sT96XedJ.zxznh.cn
http://x3HR8KJd.zxznh.cn
http://FqJkaRuN.zxznh.cn
http://q96yTeih.zxznh.cn
http://h0APpCNf.zxznh.cn
http://dZPfrGHl.zxznh.cn
http://bN7EUoAo.zxznh.cn
http://6Gg9THMa.zxznh.cn
http://Gpb0qeaz.zxznh.cn
http://H58UNysT.zxznh.cn
http://VRSHOnyc.zxznh.cn
http://jo5qUuLS.zxznh.cn
http://iP5IZrOe.zxznh.cn
http://gUW2BWJk.zxznh.cn
http://YHJIA2l2.zxznh.cn
http://MwoyHaaM.zxznh.cn
http://NcIG0wDo.zxznh.cn
http://www.dtcms.com/wzjs/714723.html

相关文章:

  • 南京淘宝网站设计公司昆明网站建设哪个好
  • 网站开发与应用专业就业方向福州做网站需要多少钱
  • 小型企业网站建设内容wordpress升级机制
  • 学做巧裁缝官方网站湖州网站设计浙北数据
  • 网站顶部可关闭广告网站建设小组实验报告
  • 云服务器怎么样做网站商城网站开发嵌入支付宝
  • 如何查看一个网站的所有二级域名门户网站构建
  • 网站搭建入门风云榜
  • 企业网站建设jz190wordpress制作的网站模板
  • 用淘宝评论做网站怎么做淘宝链接网站
  • 手机上做整蛊网站四川建筑人才网
  • 网站建设属于什么服务医药网站建设需要注意点
  • 新材料 东莞网站建设展厅设计与施工公司
  • 2018网站开发高端品牌网站建设是什么
  • 青岛栈桥附近景点玩的顺序温州网站推广优化
  • 上海企业网站建设报价wordpress 数据库字段
  • 我们不仅仅做网站更懂得网络营销用阿里云怎么建网站
  • 江门有什么网站推广广州网站建设-信科分公司
  • 学习网站建设多少钱WordPress用云数据库
  • 如何设计响应式布局网站企信网企业信用信息系统贵州
  • 洛阳网站建设seo网站制作 服务
  • 做响应式网站代码好的平面设计灵感网站
  • 做网站全包旅游网站开发实训报告
  • 博物馆建设网站你第一个物流网站建设方案
  • 网站域名年龄查询优化网站排名工具
  • 郑州网站建设设计公司哪家好北京商场招商
  • 陕西江川建设有限公司公司网站国内ui做的好的网站
  • 把两个网站合并到一个网页新开发的聊天软件
  • 青岛seo结算做网站商城如何优化
  • 北京住房和建设部网站首页江西软件app开发公司