首页 > 其他分享 >P49导出表

P49导出表

时间:2023-05-08 18:35:12浏览次数:32  
标签:RVA 函数 导出 地址 P49 序号 该表中

1、如何定位导出表:
数据目录项的第一个结构,就是导出表.

typedef struct _IMAGE_DATA_DIRECTORY {
DWORD VirtualAddress;
DWORD Size;
} IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;

VirtualAddress 导出表的RVA
Size 导出表大小

2、导出表结构

上面的结构,只是说明导出表在哪里,有多大,并不是真正的导出表.
如何在FileBuffer中找到这个结构呢?在VirtualAddress中存储的是RVA,如果想在FileBuffer中定位
必须要先将该RVA转换成FOA.

导出函数:
1、名字导出
2、序号导出

3、AddressOfFunctions说明:
该表中元素宽度为4个字节
该表中存储所有导出函数的地址
该表中个数由NumberOfFunctions决定
该表项中的值是RVA, 加上ImageBase才是函数真正的地址定位:

IMAGE_EXPORT_DIRECTORY->AddressOfFunctions 中存储的是该表的RVA 需要先转换成FOA
4、AddressOfNames说明:

该表中元素宽度为4个字节
该表中存储所有以名字导出函数的名字的RVA
该表项中的值是RVA, 指向函数真正的名称

特别说明:

1)函数的真正的名字在文件中位置是不确定的
2)但函数名称表中是按名字排序的,也就是说,A开头的函数在AddressOfNames排在最前面.但AXXXXXX这个真正的名字,可能排在BXXXXX后面
3)如果想打印名字,要先将AddressOfNames转换为FOA

5、AddressOfNameOrdinals
该表中元素宽度为2个字节
该表中存储的内容 + Base = 函数的导出序号
总结:
为什么要分成3张表?
1)函数导出的个数与函数名的个数未必一样.所以要将函数地址表和函数名称表分开.
2)函数地址表是不是一定大于函数名称表?
未必,一个相同的函数地址,可能有多个不同的名字.
3)如何根据函数的名字获取一个函数的地址?
1.遍历函数名称表 得出索引
2.当前索引.去序号表中查找.如果有.则取出当前序号表的序号.当做函数地址表的下标
3.得出下标. 返回函数地址 (RVA +IMAGEbase)
4)如何根据函数的导出序号获取一个函数的地址?
导出序号-Base

 

标签:RVA,函数,导出,地址,P49,序号,该表中
From: https://www.cnblogs.com/cspecialr/p/17382783.html

相关文章

  • jsp 导出excel
    1.情景展示如上图所示,该页面上的表格统计内容,需要增加一个导出功能,即:将表格内容导出Excel当中。如何实现?2.具体分析2.1传统解决方案针对excel导出,有两种解决方式。思路一:前端导出如果仅仅是导出当前页数据的话,我们完全可以不与后台进行交互。因为现有数据已经拿到了,只......
  • phpstorm导出导入设置
    导出设置到JAR文档要导出IDE设置到一个JAR文档在主菜单,选择File|ExportSettings在打开的ExportSettings对话框,指定要导出的设置项通过选择它们旁边的复选框。默认的,所有设置项都已选中。在Exportsettingsto文本框,为目标存档指定完全合适的名称。手动的输入路径或点击Browse......
  • POI导出EXCEL经典实现
    1.ApachePOI简介ApachePOI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对MicrosoftOffice格式档案读和写的功能。.NET的开发人员则可以利用NPOI(POIfor.NET)来存取POI的功能。2.POI结构HSSF-提供读写MicrosoftExcelXLS格式档案的功能。XSSF-提供读写Micr......
  • 百万级数据excel导出功能如何实现
    百万级数据excel导出功能如何实现? 前言最近我做过一个MySQL百万级别数据的excel导出功能,已经正常上线使用了。这个功能挺有意思的,里面需要注意的细节还真不少,现在拿出来跟大家分享一下,希望对你会有所帮助。原始需求:用户在UI界面上点击全部导出按钮,就能导出所有商品数据。......
  • abaqus导出节点应力
    1主菜单Tools-->Query2点击Probevalues3选择要导出的数据4点击writetofile5选择导出位数和形式我这里保留六位,没用科学计数法......
  • mysql导入导出
    1.mysql全量导出命令 dbname是数据库名称,dbname.sql是导出后的名称,需要在mysql安装目录下的bin目录执行mysqldump-uroot-ppassworddbname>./dbname.sql2.导入登录mysql,执行如下命令1.mysqldump-uroot-ppassword2.usedbname;3.source /www/server/mysql/bin/d......
  • 河北稳控科技多通道振弦传感器无线采集仪存储数据如此导出
    河北稳控科技多通道振弦传感器无线采集仪存储数据如此导出 1内部存储器设备工作过程中,定时采集到的数据保存于设备内部文本文件内,可使用专用工具“DSTForVSxxx”通过RS232接口进行文件下载,操作十分简单,如下图示。 2外部存储器-U盘每次开机时,设备会自动检测是否......
  • xcode打包导出ipa
    xcode打包导出ipa众所周知,在开发苹果应用时需要使用签名(证书)才能进行打包安装苹果IPA,作为刚接触ios开发的同学,只是学习iosapp开发内测,并没有上架appstore需求,对于苹果开发者账号认证需要支付688,真的是极大的浪费,使用appuploader,只需要注册苹果普通的账号,不需要688认证,就可以打包......
  • 基于.Net开发的数据库导入导出的开源项目
    在项目开发过程中,我们经常碰到从数据库导入导出的需求,虽然这样的功能不是很复杂,但是往往我们都会碰到一些问题。比如导入的Excel格式问题、Excetl中图片导入问题,导出的需求为了方便客户查看,会面临更多个性化的需求,为了满足这些需求,开发还是比较繁琐的。今天给大家推荐一个开源库......
  • u-boot导出nand-flash数据
    内核挂载根文件挂载失败,在u-boot中把nand-flash中的数据读取出来配置tftp服务器(主机pc上)配置uboot,默认没有tftpput(include中添加相关宏定义)配置客户端网络printenv //查看网络信息setenvipaddr192.168.1.222 //配置IP地址setenvserverip 192.168.1.212 //配置服......