书籍详情
C++ 黑客编程揭秘与防范(第2版)
作者:冀云
出版社:暂缺
出版时间:2015-02-01
ISBN:9787115380579
定价:¥55.00
购买这本书可以去
内容简介
市面上关于黑客入门的书籍较为繁多,比如黑客图解入门、黑客工具详解、黑客木马攻防等。但是,对于很多读者来说,可能并不是单单掌握简单的工具使用就能满足的。很多读者学习黑客知识是为了真正掌握与安全相关的知识。与安全相关的知识涉及面比较广,包括数据安全、存储安全、系统安全、Web安全、网络安全等,本书围绕Windows系统下应用层的开发来介绍一些关于安全方面的知识。本书是《C++黑客编程揭秘与防范》的升级版,在前书的基础上新添加了一些内容,同时也删除了一些过时的内容。本书以Win32应用层下安全开发为中心,介绍Windows系统下的安全开发。本书介绍了操作系统的相关操作,比如进程、线程、注册表等知识。当读者掌握了关于进程、线程、注册表等相关的开发知识后,就可以把一些常规的操作进程、注册表、文件等用代码进行实现,这样,一些日常的操作可与学习的编程知识相结合。除了操作的知识外,本书还介绍了关于网络应用程序的开发,了解Winsock的开发后,读者就会明白在应用层客户端与服务器端通信的原理。当然,本书除了介绍Win32开发外,还介绍了PE结构、调试接口、逆向等相关的知识。本书的最后部分介绍了关于恶意程序、专杀工具、扫描器等工具的开发。读者只要将前面章节的知识掌握后,后面的实例部分就水到渠成了。
作者简介
冀云,技术“屌丝”一名,在商业和地产行业从事对商业组合体的信息技术支持工作,酷爱编程及逆向技术,偶尔也做一下Web方面的开发。技术答疑微博http://weibo.com/zcloudit。
目录
目录
第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-
DER 204
6.2.2 PE头部详解IMAGE_NT_HEAD-
ERS 206
6.2.3 文件头部详解IMAGE_FILE_HEAD-
ER 207
6.2.4 可选头详解IMAGE_OPTIONAL_
HEADER 209
6.2.5 节表详解IMAGE_SECTION_HEAD-
ER 212
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破解CrackMe 235
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 Hook 264
7.2.1 Inline Hook的原理 264
7.2.2 Inline Hook的实现 265
7.2.3 Inline Hook实例 269
7.2.4 7字节的Inline Hook 273
7.2.5 Inline Hook的注意事项 274
7.3 导入地址表钩子——IAT HOOK 277
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 行为监控HIPS 366
8.3.3 U盘防御软件 371
8.3.4 目录监控工具 376
8.4 实现引导区解析工具 379
8.4.1 通过WinHex手动解析引导区 379
8.4.2 通过程序解析MBR 383
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 SSDT 396
8.7.1 SSDT 396
8.7.2 HOOK SSDT 398
8.7.3 Inline HOOK SSDT 400
8.8 总结 403
附录 反病毒公司部分面试题 404
参考文献 406
第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-
DER 204
6.2.2 PE头部详解IMAGE_NT_HEAD-
ERS 206
6.2.3 文件头部详解IMAGE_FILE_HEAD-
ER 207
6.2.4 可选头详解IMAGE_OPTIONAL_
HEADER 209
6.2.5 节表详解IMAGE_SECTION_HEAD-
ER 212
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破解CrackMe 235
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 Hook 264
7.2.1 Inline Hook的原理 264
7.2.2 Inline Hook的实现 265
7.2.3 Inline Hook实例 269
7.2.4 7字节的Inline Hook 273
7.2.5 Inline Hook的注意事项 274
7.3 导入地址表钩子——IAT HOOK 277
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 行为监控HIPS 366
8.3.3 U盘防御软件 371
8.3.4 目录监控工具 376
8.4 实现引导区解析工具 379
8.4.1 通过WinHex手动解析引导区 379
8.4.2 通过程序解析MBR 383
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 SSDT 396
8.7.1 SSDT 396
8.7.2 HOOK SSDT 398
8.7.3 Inline HOOK SSDT 400
8.8 总结 403
附录 反病毒公司部分面试题 404
参考文献 406
猜您喜欢