首页
社区
课程
招聘
[原创]软件保护壳专题 - 处理引出表
发表于: 2009-1-13 13:57 10895

[原创]软件保护壳专题 - 处理引出表

2009-1-13 13:57
10895

这节与后面的给感染驱动都是新添加的章节,并且把第2部分的关于变形方面的章节合成为一节 "变形引擎的构建"。变形引擎可能要慢些。争取打造一份实用的东西出来。过了年在写,呵呵。这节主要讲解输出表的结构,输出表的HOOK,并实现了一个HOOK输出的小程序。
<目录>
1.什么是输出表
2.输出表的结构
3.输出表的HOOK
4.分析ExportHandler代码分析
<正文>
1.什么是输出表
用于定制一些函数,并提供给其他程序使用,建立一个函数与调用地址的映射。这种表一般存在与DLL文件当中。EXE文件中少有,不过不是不可以存在与EXE文件中。
2.输出表的结构
首先说明一下输出表的定位,输出表的目录存在于PE->可选头->数据目录的第一项中。可以通过此
目录获取输出表的RVA以及输出表的长度。通过RVA获取到它在文件中的偏移。读取偏移的第一个
结构为输出目录表,如下:

IMAGE_EXPORT_DIRECTORY STRUCT
  ;; 总是为0
  Characteristics           DWORD      ?
  ;; 文件创建的时间
  TimeDateStamp             DWORD      ?
  ;; 主版本号,一般为0
  MajorVersion              WORD       ?
  ;; 次版本号,一般为0
  MinorVersion              WORD       ?
  ;; DLL名称的RVA
  nName                     DWORD      ?
  ;; 序号基值, 一般为0
  nBase                     DWORD      ?
  ;; 输出函数的数量
  NumberOfFunctions         DWORD      ?
  ;; 以名字输出的数量
  NumberOfNames             DWORD      ?
  ;; 地址表的RVA
  AddressOfFunctions        DWORD      ?
  ;; 名字表的RVA
  AddressOfNames            DWORD      ?
  ;; 名字序号表的RVA
  AddressOfNameOrdinals     DWORD      ?
IMAGE_EXPORT_DIRECTORY ENDS
// export handlder script
// 一个简单的配置脚本

// 新节属性
$section_size = 1024;
$section_name = logic;
$section_characteristics = W|R|X;

// 新函数
$hostname = 53 55 56 57 8B F9;

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (5)
雪    币: 219
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
沙发啊 哈哈哈哈哈
2009-1-13 13:59
0
雪    币: 347
活跃值: (25)
能力值: ( LV9,RANK:420 )
在线值:
发帖
回帖
粉丝
3
板凳,收藏了
2009-1-13 14:14
0
雪    币: 1098
活跃值: (193)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
4
前面的还有两个没消化完,呵呵。看来得赶紧学了。
2009-1-13 14:33
0
雪    币: 124
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
关注中........
2009-2-8 17:18
0
雪    币: 14
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
一直在关注楼主的壳专题
2009-2-8 17:45
0
游客
登录 | 注册 方可回帖
返回
//