导入表结构

学PE结构很长时间了,开始是从加密与解密的书上学到的,后来又看了一些其他的书,对PE的结构已经基本的了解了。但是因为很少用,所以也经常忘,尤其是导入表与导出表,里面的具体结构经常混淆。

PE格式:

1。DOS Header

2.NT Header

3.Section Table

4.Section

DOS Header的最后一个标志e_lfanew指示了NT Header的位置

NT Header结构

1.Signature

2.File Header

3.Optional Header

在Optional Header中又有三十几项

其中最后一项是Data Directry,即数据目录表,该项有十六项,每一项是一个IMAGE_DATA_DIRECTORY结构

IMAGE_DATA_DIRECTORY STRUCT
  VirtualAddress dd ?
  isize dd ?
IMAGE_DATA_DIRECTORY ENDS

数据目录表的第一项指示了导出表,第二项指示了导入表

在第二项的VirtualAddress指向了IMAGE_IMPORT_DIRECPTOR数组的RVA

IMAGE_IMPORT_DESCRIPTOR STRUCT
  union
    Characteristics dd ?
    OriginalFirstThunk dd ?
  ends
  TimeDateStamp dd ?
  ForwarderChain dd ?
  Name1 dd ?
  FirstThunk dd ?
IMAGE_IMPORT_DESCRIPTOR ENDS

 其中OriginalFirstThunk中存储的是一个IMAGE_THUNK_DATA数组的RVA,每个IMAGE_THUNK_DATA又指向IMAGE_IMPORT_BY_NAME

IMAGE_IMPORT_BY_NAME STRUCT
  Hint dw ?
  Name1 db ?
IMAGE_IMPORT_BY_NAME ENDS

Hint指示本函数在其所驻留DLL的引出表中的索引号。该域被PE装载器用来在DLL的引出表里快速查询函数。该值不是必须的,一些连接器将此值设为0
Name1含有引入函数的函数名。函数名是一个ASCIIZ字符串。注意这里虽然将Name1的大小定义成字节,其实它是可变尺寸域,只不过我们没有更好方法来表示结构中的可变尺寸域。

在IMAGE_IMPORT_DIRECPTOR结构中的FirstThunk项,与OrignalFirstThunk类似,它也是一组IMAGE_THUNK_DATA的RVA,不过该项所指的内容可以改变,并且该项指示的是函数的地址(开始的时候并不指向函数地址,而是OrignalFirstThunk所指的IMAGE_THUNK_DATA中的值与FirstThunk所指的IMAGE_THUNK_DATA相同,在PE装载时,改变的,每个IMAGE_THUNK_DATA是一个函数的地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DB2 是一款数据库管理系统,通常用于处理大规模的数据。在 DB2 中,我们可以使用导入命令来将结构和数据导入到数据库中。具体步骤如下: 1. 创建一个结构文件 我们可以使用 DB2 提供的 EXPORT 工具将现有的结构导出到文件中,命令如下: db2 export to 结构文件.del of del select * from 名 where 1=2 这个命令将会导出名为“名”的结构到“结构文件.del”文件中,其中“where 1=2”示只导出结构不导出任何数据。 2. 创建一个数据文件 我们可以使用 DB2 提供的 EXPORT 工具将现有的数据导出到文件中,命令如下: db2 export to 数据文件.ixf of ixf select * from 名 这个命令将会导出名为“名”的数据到“数据文件.ixf”文件中。 3. 导入结构和数据 我们可以使用 DB2 提供的 IMPORT 工具将结构和数据导入到数据库中,命令如下: db2 -tvf 结构文件.sql db2 "connect to 数据库名 user 用户名 using 密码" db2 load from 数据文件.ixf of ixf replace into 名 这个命令将会先执行“结构文件.sql”中所有的 SQL 语句,以创建结构。然后使用 IMPORT 工具将“数据文件.ixf”中的数据导入到数据库中。其中“replace”参数示如果有重复数据则替换,而不是添加。 以上就是使用 DB2 导入结构和数据的基本步骤。需要注意的是,导入操作可能会覆盖现有数据,应谨慎操作。建议先备份现有数据再进行导入

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值