首页
社区
课程
招聘
[原创]《可执行文件头的变形技术》电子版正式下载(增加了补充说明)
发表于: 2008-6-7 04:13 302329

[原创]《可执行文件头的变形技术》电子版正式下载(增加了补充说明)

2008-6-7 04:13
302329
收藏
免费 7
支持
分享
最新回复 (424)
雪    币: 213
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
51
原创啊,绝对的原创当然要支持了
2008-6-8 00:43
0
雪    币: 7115
活跃值: (639)
能力值: (RANK:1290 )
在线值:
发帖
回帖
粉丝
52
很好,很强大,很...
2008-6-8 03:53
0
雪    币: 100
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
53
2008-6-8 08:05
0
雪    币: 271
活跃值: (18)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
54
太好了.............................
2008-6-8 10:06
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
55
搂主能发一下目录么?或者说一下大体讲的啥?我这里讯雷下不下来,IE下又太慢。
2008-6-8 11:07
0
雪    币: 238
活跃值: (326)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
56
目  录
一、   可执行文件头变形的基本概念                            1
二、   结构重叠和内置数据                                    8
2.1    结构之间的重叠                                        8
2.1.1  MiniPE.exe                                            8
2.1.2  PEHeaders和DOSHeader的重叠                            15
2.1.3  DataDirectory和ImportTable的重叠                      28
2.1.4  SectionTable和ImportTable的重叠。                     29
2.2    在结构中插入数据                                      31
2.2.1  可填入任意值的域                                      31
2.2.2  只能填入一定范围或特殊要求的值                        33
2.2.3  在特定条件下可以使用的域                              34
2.2.4  任意域都可以作为变量使用                              36
2.2.5  实例FillGap.exe                                       37
2.3    越界                                                  55
三、   间隙的制造和利用                                      71
3.1    间隙一和间隙三的利用                                  71
3.1.1  间隙一的使用                                          71
3.1.2  间隙三的使用                                          87
3.2    间隙二的使用                                          104
四、   重叠加载和重复加载                                    121
4.1    重叠加载                                              121
4.2    重复加载                                              126
4.2.1  简单的重复加载                                        126
4.2.2  重复加载形成原理和条件                                153
4.2.3  多重重复加载                                          154
五、   无节表和零充填节表的实现                              180
5.1    输入表的桥结构                                        181
5.1.1  双、双桥结构                                          181
5.1.2  单、单桥结构                                          187
5.2    全零节表                                              189
5.3    无节表—全零节表的终极形态                             208
附录    A                                                    217
A1.     DOS头(DOS HEADER)                                  218
A1.1    e_Magic                                              218
A1.2    e_lfanew                                             218
A2.     PE头(PE HEADERS)                                   219
A2.1    Signature                                            220
A2.2    COFF文件头(COFF File Header)                         220
A2.2.1  Machine                                              220
A2.2.2  NumberOfSections                                     221
A2.2.3  TimeDateStamp                                        221
A2.2.4  SizeOfOptionalHeader                                 226
A2.2.5  Characteristics                                      226
A2.3    可选头(IMAGE_OPTIONAL_HEADER)                      228
A2.3.1  可选头标准域(仅映像)                                 228
A2.3.2  Windows特有可选头的域(仅映像)                        228
A2.3.3  ImageBase                                            229
A2.3.4  MajorSubSystemVersion                                230
A2.3.5  MinorSubSystemVersion                                230
A2.3.6  SizeOfImage                                          230
A2.3.7  SizeOfHeaders                                        231
A2.3.8  CheckSum                                             231
A2.3.9  SubSystem                                            233
A2.3.10 NumberOfRvaAndSize                                   234
A2.4    数据目录(Data Directory)                           235
A2.4.1  CERTIFICATE                                          235
A2.4.2  BOUND IMPORT                                         236
A2.4.3  Delay-Load Import Tables                             240
A3.     节表(SECTION TABLE)                                252
A3.1    节标志(Section Flags)                                253
A4.     特定的节表(SPECIAL SECTION)                        255
A4.1    The .debug Section                                   257
A4.1.1  调试目录(仅映像文件)                                 257
A4.1.2  调试信息的类型(Debug Type)                         257
A4.1.3  常用的调试信息简析                                   258
A4.2    .edata节 (The .edata Section)                        268
A4.2.1  输出目录表 (Export Directory Table)                  268
A4.2.2  输出地址表(Export Address Table)                     269
A4.2.3  输出名字指针表(Export Name Pointer Table)            269
A4.2.4  输出序号表(Export Ordinal Table)                     269
A4.2.5  输出名字表(Export Name Table)                        270
A4.2.6  输出表实例分析                                       270
A4.3    .idata节(The .idata Section)                         277
A4.3.1  输入目录表(Import Directory Table)                   277
A4.3.2  输入查询表(Import Lookup Table)                      278
A4.3.3  提示/名字表(Hint/Name Table)                         278
A4.3.4  输入地址表(Import Address Table)                     279
A4.4    .pdata节(The .pdata Section)                         280
A4.5    .reloc节(仅映像)(The .reloc Section (Image Only))  281
A4.5.1  基址重定位块(Base Relocation Block)                  281
A4.5.2  基址重定位的类型(Base Relocation Types)              281
A4.5.3  基址重定位表实例分析                                 282
A4.6    .TLS 节(The .tls Section)                            288
A4.6.1  TLS目录(The TLS Directory)                           289
A4.6.2  TLS回调函数(TLS Callback Functions)                  289
A4.6.3  TLS补充说明和实例                                    290
A4.7    加载配置结构(仅映像)(Load Configuration)           304
A4.7.1  加载配置目录(Load Configuration Directory)           304
A4.7.2  加载配置的构造(Load Configuration Layout)            304
A4.8    资源节(The .rsrc Section)                            306
A4.8.1  资源目录表(Resource Directory Table)                 306
A4.8.2  资源目录项(Resource Directory Enties)                307
A4.8.3  资源目录字符串(Resource Directory String)            307
A4.8.4  资源数据项(Resource Data Entry)                      307
A4.8.5  资源节补充说明和实例分析                             308
2008-6-8 11:36
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
57
谢谢分享了,破解的经验需要你们这些老前辈的指导 ,我们才能不断的进步,在次感谢一下
2008-6-8 12:24
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
58
还是有好多的下载不下来啊
2008-6-8 12:41
0
雪    币: 440
活跃值: (61)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
59


非常不错....

下来好好研究一下..

严重感谢+膜拜.........
2008-6-8 12:50
0
雪    币: 238
活跃值: (326)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
60
老兄,给加点声望值,怎么也要和你混的差不多吗。

另:
希望跟帖的朋友,多谈点对本书的看法和意见。不要简单的来个“顶”,我写那么多字,你回我一个字,是否有点对不起人,还有的老兄直接连一个字都不愿写,叫我不知该怎么感谢他?

另:
对于不能下载这样的问题,请不要在这里回帖,这个问题直接找看雪老大即可,和我没有什么关系。
2008-6-8 12:54
0
雪    币: 2134
活跃值: (14)
能力值: (RANK:170 )
在线值:
发帖
回帖
粉丝
61
学到不少东西,感谢
2008-6-8 14:52
0
雪    币: 190
活跃值: (20)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
62
第一章的 IDA载入psapi.dll  运行你的IDA脚本CreatePeHd.idc,提示 失败

错误信息为:
Please select the segment addressing y=32 n=16
点Yes后
687E3C4C: can't rename byte as '_stricmp' because the name is already used in the program.
...
...
...
这是怎么回事啊,请求解决
2008-6-8 15:04
0
雪    币: 238
活跃值: (326)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
63
1、我们所说的PE文件头中的DOS Header是建立在16位环境下的,其中,
687E0040 ShowInfo   proc near
687E0040            push cs
687E0041            pop  ds
687E0042            mov  dx, 0Eh
687E0045            mov  ah, 9
687E0047            int  21h               ; DOS - PRINT STRING
687E0047                                   ; DS:DX -> string terminated by "$"
687E0049            mov  ax, 4C01h
687E004C            int  21h               ; DOS - 2+ - QUIT WITH EXIT CODE (EXIT)
687E004C                                   ; AL = exit code
687E004C
687E004C ShowInfo   endp

这段显示提示信息的代码是16位的汇编,IDA没有在当前段中同时分析16位汇编代码和32位汇编代码功能,所以我在建立这段IDA的描述语言时加了这个选择,对于那些没有插入过32位汇编代码的正常可执行文件头,可以选择n-16模式,这时文件头的段将被设立成16位段地址的模式。如果可执行文件头中插入了32位汇编代码,这时你只能选择y=32的方式,原因如前面所述。

2、IDA本身为每个分析过程都建立一个数据库,当命名时,会检测是否有相同命名出现,如果有就会出现上面的提示,不用理会这些提示,一路往前走,IDA回自动处理这些同名现象。

另:
请阅读本书的,最好能够仔细研究书中给出的代码,包括这些IDA的脚本,【Please select the segment addressing y=32 n=16】这个是提示信息,让你选择脚本运行的方式,不是错误信息。如果你读过这个脚本,就不会提出这么幼稚的问题。
2008-6-8 15:44
0
雪    币: 190
活跃值: (20)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
64
非常感谢楼主的热切回答!
2008-6-8 17:44
0
雪    币: 184
活跃值: (108)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
65
我靠,上来就看见这,直接给雷晕了
2008-6-8 18:16
0
雪    币: 196
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
66
敬仰。你是我第一个崇拜的榜样
2008-6-8 19:22
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
67
这个不错啊!我就是顶强人!
2008-6-8 19:51
0
雪    币: 359
活跃值: (435)
能力值: ( LV9,RANK:150 )
在线值:
发帖
回帖
粉丝
68
嗯,非常感谢楼主的开放,学习收藏
2008-6-8 19:55
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
69
谢谢楼主,收藏了。
2008-6-8 20:12
0
雪    币: 415
活跃值: (34)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
70
刚看到这个好东西,老大怎么不让出版社出版个啊。可惜了。
2008-6-8 22:54
0
雪    币: 1309
活跃值: (232)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
71
看雪文字中 炉火纯清 最后一个字是个错别字, 可以用输入法的词组输入功能输入便可得正解.
  gzgzlxg 的文章看了下目录,大概了解意思了,精神挺执着的.
2008-6-8 23:01
0
雪    币: 238
活跃值: (326)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
72
看我写的书的目录,就能明白大概意思,实在是佩服,水真是深啊!哈哈。
说实话,第四第五章的这些名称,都是我自己随意起的,其含义也是我自己定义的,不知你如何能明白,真是水深啊!佩服,佩服。
2008-6-8 23:27
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
73
没有查看的权限。。55.
给个完整的下载链接嘛。。。。
2008-6-9 00:58
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
74
楼主 多谢,学习ing
2008-6-9 02:40
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
75
很好,极其强悍,楼主对PE的认识已到达炉火纯青的地步了
2008-6-9 03:35
0
游客
登录 | 注册 方可回帖
返回
//