第1章 黑客编程入门1
1.1 初识Windows消息1
1.1.1 对消息的演示测试1
1.1.2 对MsgTest代码的解释3
1.1.3 如何获取窗口的类名称4
1.2 Windows消息机制的处理5
1.2.1 DOS程序与Windows程序执行流程
对比5
1.2.2 一个简单的Windows应用程序7
1.3 模拟鼠标键盘按键的操作13
1.3.1 基于发送消息的模拟13
1.3.2 通过API函数模拟鼠标键盘按键的
操作16
1.4 通过消息实现进程间的通信19
1.4.1 通过自定义消息进行进程通信19
1.4.2 通过WM_COPYDATA消息进行进程
通信21
1.5 VC相关开发辅助工具24
1.5.1 Error Lookup工具的使用24
1.5.2 Windows Error Lookup Tool工具的使用25
1.5.3 VC6调试工具介绍26
1.6 总结33
第2章 黑客网络编程34
2.1 Winsock编程基础知识34
2.1.1 网络基础知识34
2.1.2 面向连接协议与非面向连接协议所
使用的函数36
2.1.3 Winsock网络编程知识36
2.1.4 字节顺序41
2.2 Winsock编程实例43
2.2.1 基于TCP的通信43
2.2.2 基于UDP的通信45
2.2.3 口令暴力猜解47
2.3 非阻塞模式开发54
2.3.1 设置Winsock的工作模式54
2.3.2 非阻塞模式下的简单远程控制的开发55
2.4 原始套接字的开发64
2.4.1 Ping命令的使用64
2.4.2 Ping命令的构造65
2.4.3 Ping命令的实现67
2.5 总结68
第3章 黑客Windows API编程69
3.1 文件相关API函数69
3.1.1 文件相关操作API函数69
3.1.2 模拟U盘病毒73
3.1.3 免疫AutoRun病毒工具的编写75
3.2 注册表编程77
3.2.1 注册表结构简介78
3.2.2注册表操作常用API函数介绍79
3.2.3 注册表下启动项的管理82
3.3 服务相关的编程86
3.3.1 如何查看系统服务86
3.3.2 服务控制管理器的实现87
3.4 进程与线程93
3.4.1 进程的创建94
3.4.2 进程的结束99
3.4.3 进程的枚举100
3.4.4 进程的暂停与恢复104
3.4.5 多线程编程基础108
3.5 DLL编程114
3.5.1 编写一个简单的DLL程序114
3.5.2 远程线程的编程120
3.6 总结129
第4章 黑客内核驱动开发基础130
4.1 驱动版的“Hello World”130
4.1.1 驱动版“Hello World”代码编写130
4.1.2 驱动程序的编译133
4.1.3 驱动文件的装载与输出133
4.1.4 驱动程序装载工具实现134
4.2 内核下的文件操作136
4.2.1 内核文件的读写程序136
4.2.2 内核下文件读写函数介绍139
4.3 内核下的注册表操作145
4.3.1 内核下注册表的读写程序145
4.3.2 内核下注册表读写函数的介绍148
4.4 总结150
第5章 黑客逆向基础151
5.1 x86汇编语言介绍151
5.1.1 寄存器151
5.1.2 常用汇编指令集154
5.1.3 寻址方式159
5.2 逆向调试分析工具160
5.2.1 OllyDbg使用介绍160
5.2.2 OD破解实例164
5.3 逆向反汇编分析工具168
5.4 C语言代码逆向基础177
5.4.1 函数的识别177
5.4.2 if…else…结构分析186
5.4.3 switch结构分析188
5.4.4 循环结构分析191
5.5 逆向分析实例195
5.5.1 wcslen函数的逆向195
5.5.2 扫雷游戏辅助工具198
5.6 总结201
第6章 加密与解密202
6.1 PE文件结构202
6.1.1 PE文件结构全貌202
6.1.2 PE结构各部分简介203
6.2 详解PE文件结构204
6.2.1 DOS头部详解IMAGE_DOS_HEA-
DER204
6.2.2 PE头部详解IMAGE_NT_HEAD-
ERS206
6.2.3 文件头部详解IMAGE_FILE_HEAD-
ER207
6.2.4 可选头详解IMAGE_OPTIONAL_
HEADER209
6.2.5 节表详解IMAGE_SECTION_HEAD-
ER212
6.3 PE结构的3种地址214
6.3.1 与PE结构相关的3种地址214
6.3.2 3种地址的转换215
6.4 PE相关编程实例218
6.4.1 PE查看器218
6.4.2 简单的查壳工具221
6.4.3 地址转换器224
6.4.4 添加节区227
6.5 破解基础知识及调试API函数的
应用233
6.5.1 CrackMe程序的编写233
6.5.2 用OD破解CrackMe235
6.5.3 文件补丁及内存补丁239
6.6 调试API函数的使用243
6.6.1 常见的3种断点方法243
6.6.2 调试API函数及相关结构体介绍246
6.7 打造一个密码显示器256
6.8 KeyMake工具的使用260
6.9 总结262
第7章 黑客高手的HOOK技术263
7.1 HOOK技术知识前奏263
7.2 内联钩子—Inline Hook264
7.2.1 Inline Hook的原理264
7.2.2 Inline Hook的实现265
7.2.3 Inline Hook实例269
7.2.4 7字节的Inline Hook273
7.2.5 Inline Hook的注意事项274
7.3 导入地址表钩子——IAT HOOK277
7.3.1 导入表简介278
7.3.2 导入表的数据结构定义278
7.3.3 手动分析导入表280
7.3.4 编程枚举导入地址表283
7.3.5 IAT HOOK介绍284
7.3.6 IAT HOOK实例284
7.4 Windows钩子函数287
7.4.1钩子原理288
7.4.2 钩子函数288
7.4.3 钩子实例290
7.5 总结294
第8章 黑客编程实例剖析295
8.1 恶意程序编程技术295
8.1.1 恶意程序的自启动技术295
8.1.2 木马的配置生成与反弹端口技术303
8.1.3 病毒的感染技术309
8.1.4 病毒的自删除技术313
8.1.5 隐藏DLL文件316
8.1.6 端口复用技术323
8.1.7 远程cmd通信技术326
8.2 黑客工具编程技术331
8.2.1 端口扫描技术331
8.2.2 嗅探技术的实现341
8.3 反病毒编程技术344
8.3.1 病毒专杀工具的开发344
8.3.2 行为监控HIPS366
8.3.3 U盘防御软件371
8.3.4 目录监控工具376
8.4 实现引导区解析工具379
8.4.1 通过WinHex手动解析引导区379
8.4.2 通过程序解析MBR383
8.4.3 自定义MBR的各种结构体383
8.4.4 硬盘设备的符号链接384
8.4.5 解析MBR的程序实现385
8.5 加壳与脱壳387
8.5.1 手动加壳387
8.5.2 编写简单的加壳工具389
8.6 驱动下的进程遍历390
8.6.1 配置VMware和WinDbg进行驱动
调试390
8.6.2 EPROCESS和手动遍历进程392
8.6.3 编程实现进程遍历395
8.7 HOOK SSDT396
8.7.1 SSDT396
8.7.2 HOOK SSDT398
8.7.3 Inline HOOK SSDT400
8.8 总结403
附录 反病毒公司部分面试题404
参考文献406
以下为对购买帮助不大的评价