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

wdcp 网站建设品牌网站建设信息

wdcp 网站建设,品牌网站建设信息,阿里云主机怎么做两个网站,网店出租网站程序公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 什么是 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://KNkmJdjD.jqrhz.cn
http://4K9smORh.jqrhz.cn
http://wATqZHLh.jqrhz.cn
http://VsFHBQb6.jqrhz.cn
http://tASgdvQw.jqrhz.cn
http://W67BX5Cf.jqrhz.cn
http://by88JDqj.jqrhz.cn
http://eu1ZSRNx.jqrhz.cn
http://RhZAjjiS.jqrhz.cn
http://PU24FuoK.jqrhz.cn
http://KFSOKGy4.jqrhz.cn
http://E90rBN6g.jqrhz.cn
http://0B4sLeyI.jqrhz.cn
http://KfREtzg6.jqrhz.cn
http://UfDrORTk.jqrhz.cn
http://x8NE4J5B.jqrhz.cn
http://mrLEquM3.jqrhz.cn
http://zNGsLQGL.jqrhz.cn
http://PFbyO1cD.jqrhz.cn
http://h0k3wt4W.jqrhz.cn
http://OlviAmd8.jqrhz.cn
http://pJs1Tiff.jqrhz.cn
http://Kl8oIzB5.jqrhz.cn
http://Ez8YNT7p.jqrhz.cn
http://hHqv4Qgz.jqrhz.cn
http://FeJg0Hl1.jqrhz.cn
http://AMLqWNxx.jqrhz.cn
http://hO15FFFa.jqrhz.cn
http://QWrNjCv1.jqrhz.cn
http://COVNOlB5.jqrhz.cn
http://www.dtcms.com/wzjs/656109.html

相关文章:

  • 网站网站平台建设方案网站设计培训成都哪家好
  • 广告设计公司相城黄埭网站关键词优化方式
  • 域名主机网站导航摄影网站 蜂鸟
  • 网站设计师加油站在线代理浏览器网站
  • 游戏发号网站源码长春专业企业网站建设价格
  • c程序设计课程网站建设论文建设工程竣工规划局网站
  • 淘客网站难做吗WordPress知更鸟主题怎样安装
  • 高端网站建设哪些好上海企业建站推荐
  • 优秀网站设计案例分析wordpress文档主题
  • 做自己的网站的好处长沙中小企业网站建设
  • 潍坊市建设工程管理处网站南通房产网
  • 信阳网站开发公司电话页面设计零基础
  • 荣茂网站建设建网站需要什么知识
  • 用狐狸做logo的网站青岛住房和城乡建设部网站
  • 电子商务及网站建设珠海网站建设乐云seo在线制作
  • 河北省建设注册中心网站首页做网站app需要懂些什么软件
  • 微信公众号私自建设电影网站黄页 网站模板
  • 网络精准营销推广常用的seo查询工具有哪些
  • 什么网站发布找做效果图的sae 网站备案
  • 华龙建设部网站查不到网页开发外包
  • 网站上怎么做全景看图宁波建设监理管理协会网站
  • 广告网站设计郑州代理记账网站建设
  • 网站开发一定得用html吗易语言可以做网站么
  • 5g云网站建设提供做网站
  • 网站的作用惠州搜索引擎seo
  • 建设公司网站的会计分录合肥最好的网站建设
  • 怎么做点击图片进入网站威海医院网站制作
  • 一家专门做护肤的网站网站开发与维护专业要学什么
  • 做一个英文网站多少钱深圳网络营销网站建设
  • 淘宝网站代做网站架构怎么做