标题：小小黑客之路
图书信息
书名：小小黑客之路：黑客工具、攻防及防火墙编程入门  作者：葛垚 主编 聂森 苗甦 陈沁茜 陈树林 著
ISBN：978-7-121-11884-5
出版日期：2011年1月 
定价：59.00元
宣传语
层层剖析由浅入深
形象生动的案例
帮助读者快速掌握使用C/C++和Windows API
进行黑客攻防的技巧和方法
内 容 简 介
信息安全是一面双扇的门，左边写着“黑客”，右边写着“安全”。你推开“黑客”，看见一条路，笑了；他推开“安全”，看见你，也笑了。这就是你的小小黑客之路。
本书正如一幅黑客攻防世界的探险地图，由入门、进阶、高级和综合四个层次组成，以C/C++语言和Windows API为平台，并配合由浅入深、由易到难的各种案例绘制而成。地图中的每一部分都配有生动有趣的情景故事，帮助你理解各种实际发生的现象和应对的方法，帮助你深入探寻各种热门的黑客防守工具的原理及编写技巧，帮助你在轻松幽默的氛围中顺利成长。
本书适合于编程爱好者和信息安全相关专业学生阅读，让我们在学习的道路上结伴同行。
前 言
在网络安全备受重视的今天，黑客及黑客行为也越来越受到人们的关注。很多计算机爱好者都幻想着成为凯文·米特尼克式的世界级黑客人物，但学习资料的匮乏使他们始终怀抱梦想却无法迈入黑客编程的神秘世界。
因此，为了让更多的人领略黑客及黑客编程的魅力，笔者根据自身的学习及经验完成了本书的编写。通过层层剖析书中多个由浅入深、形象生动的案例，读者们可以快速掌握使用C/C++和Windows API进行黑客编程的技巧与方法。
本书共分为入门篇、进阶篇、高级篇和综合篇四部分。在入门篇中，我们首先简要地介绍了黑客、黑客工具及黑客编程中常用的辅助工具，并对一些黑客编程的基础知识，如Windows API的使用、Windows网络编程、用户界面设计等，进行了详细的介绍。进阶篇和高级篇共有七章，分别介绍了七种网络上热门的黑
客工具的编写技巧，如端口扫描器、ARP欺骗工具、漏洞利用技术等，案例由浅入深，方便读者学习。在综合篇中，我们又对以上所学的知识进行了综合运用，实现了两个较为复杂的软件：远程控制木马和防火墙。值得一提的是，附录A与附录B中介绍的网络协议和PE格式的基础知识，是黑客编程的基础。
本书使用Visual C++ 2008作为编程平台进行编写和讲解。众所周知，作为微软开发工具，Visual Studio 2008，尤其是其中的Visual C++ 2008的易用性受到程序员们的一致肯定。
考虑到黑客编程中受到计算机操作系统版本、配置等测试环境的影响较多，我们特意在可下载的素材的每个案例代码中放置了一个用于说明当前案例所用到的详细测试环境的文档，方便读者们学习和测试。
本书特色：
（1）本书定位于对信息安全或黑客编程有兴趣的初学者，是一本良好的入门读物。
（2）整本书知识点较为全面，基本包含了黑客编程的各个方面。
（3）书中对相关黑客工具编写的讲解皆通过案例，案例组织由浅入深，形象生动又不乏易用性。
（4）本书使用Visual C++ 2008作为开发平台，方便读者测试和重用代码。
（5）在本书提供下载的素材中，有每个案例的详细代码和测试环境说明，便于读者自学。
我们坚信，持之以恒方能成事。希望在这本书的陪伴下，读者朋友们能坚定地走完黑客编程学习的道路，并能有所感悟，有所收获。
最后，感谢从书的策划到出版一路陪伴着我们的师长、家人和朋友们，你们的默默支持是我们一路走来最大的动力！
由于时间仓促、作者水平有限，疏漏之处在所难免，欢迎读者朋友批评指正。
作 者
2010年5月
目录
入 门 篇
第 1 回我是黑客，我不是骇客
了解黑客及黑客技术的发展可以拓宽你的视野，使你对黑客有一个更为全面的认识。
1.1什么是黑客 2
1.1.1黑客的兴起及发展 2
1.1.2黑客文化 4
1.2黑客工具简介 6
1.3黑客编程工具简介 18
1.4茅庐对话 21
第 2 回黑客的编程利器
为你介绍微软强大的开发环境—Visual C++ 2008，它是黑客编程道路上的铺路石，可以使你的编程过程更加灵活、得心应手。
2.1Visual C++ 2008简介 24
2.1.1回顾Visual C++ 历史 24
2.1.2配置Visual C++ 2008 25
2.2在Visual C++ 2008中写出第一个程序 29
2.2.1建立程序的“工程” 29
2.2.2编写代码 31
2.2.3运行第一个程序 33
2.3Debug调试程序 33
2.4茅庐对话 36
第 3 回黑客眼中的Windows程序设计
为你介绍Windows API、动态链接库、进程、线程以及网络编程等有关黑客编程的基础知识。
3.1Windows API简介 38
3.1.1Windows API概述 38
3.1.2Windows API分类 39
3.1.3使用Windows API 41
3.2动态链接库简介 42
3.2.1动态链接库概述 42
3.2.2编写动态链接库 43
3.2.3使用动态链接库 46
3.3进程与线程简介 49
3.3.1进程与线程的概述 50
3.3.2进程与线程的异同 50
3.4Windows网络编程基础 51
3.4.1TCP/IP协议概述 52
3.4.2Winsock入门 52
3.5茅庐对话 60
第 4 回潜伏在优雅的界面之下
为你介绍界面的绘制和Windows消息机制的基础知识，这是开发高级黑客软件的必备知识。
4.1用户界面导引 62
4.2消息循环和事件响应 64
4.2.1消息循环 64
4.2.2事件响应 69
4.3用户界面绘制 70
4.3.1控件简介 70
4.3.2绘制星号密码查看器 81
4.4完整实例 83
4.5茅庐对话 87
进 阶 篇
第 5 回警报！遭到扫描
一个开放的端口对计算机来说就是一扇打开的门。端口扫描器对目标计算机的各个端口进行扫描，寻找其中对外开放的端口，从而找到网络入侵的突破口。
5.1原理及相关技术 89
5.1.1 端口扫描基本原理 90
5.1.2多线程控制 93
5.2UI设计 97
5.3代码的实现与测试 99
5.3.1代码实现 99
5.3.2测试 107
5.4茅庐对话 108
第 6 回信注册表，没有不可能
病毒、木马往往会借助修改系统注册表的手段来达到突破系统防御的目的。了解注册表编辑器，可以为你编写病毒、木马等黑客工具打下基础。
6.1原理及相关技术 111
6.1.1注册表基础知识 111
6.1.2注册表编程 115
6.2UI设计 122
6.3代码实现与测试 123
6.3.1代码实现 123
6.3.2测试 136
6.4茅庐对话 138
第 7 回数据窃听风云
数据窃听看上去很酷，动动手，WinPcap嗅探工具就可以为你拦截和分析网络数据。
7.1原理及相关技术 140
7.1.1WinPcap导入 140
7.1.2Sniffer嗅探原理 143
7.1.3数据包分析 150
7.2UI设计 153
7.3代码实现与测试 155
7.3.1代码实现 155
7.3.2测试 169
7.4茅庐对话 170
高 级 篇
第 8 回以你的名义欺骗你
冒充他人的骗子不光存在于街头，也存在于计算机之中。编写一个ARP欺骗工具，可以使你实现用别人的“名字”做自己想做的事。
8.1原理及相关技术 172
8.1.1ARP协议工作原理 173
8.1.2ARP欺骗原理 174
8.2UI设计 177
8.3代码的实现与测试 177
8.3.1代码实现 178
8.3.2测试 184
8.4茅庐对话 186
第 9 回病毒，又见病毒
病毒，一个令人深恶痛绝的名字。了解病毒技术及一些简单病毒的编写技巧，可以做到知己知彼、更好地防御它。
9.1原理及相关技术 189
9.1.1U盘传播技术 189
9.1.2文件感染技术 199
9.1.3自删除技术 210
9.2UI设计 216
9.3代码的实现与测试 217
9.3.1代码实现 217
9.3.2测试 220
9.4茅庐对话 225
第 10 回漏洞是个什么洞
不论是软件上还是硬件上一个小小的缺陷——漏洞，就可以让你的已经防备到牙齿的计算机“溃于蚁穴”。学习如何利用漏洞编写黑客程序是黑客的必修课程。
10.1漏洞利用原理 229
10.1.1堆栈工作原理 229
10.1.2栈溢出原理及利用 235
10.2编写ShellCode 245
10.2.1通用MessageBox ShellCode 245
10.2.2通用URLDownloadToFile&ShellExecute ShellCode 256
10.3漏洞情景分析 266
10.3.1MS06-040漏洞分析 266
10.4　茅庐对话 270
第 11 回后门是个什么门
作为远程控制木马的基础，后门程序虽然没有强大的控制能力，但其隐蔽性更高。利用Winsock技术就可以轻松实现一个简单的后门程序。
11.1相关原理及技术 272
11.1.1后门架构总览 272
11.1.2服务端编写 274
11.1.3Loader编写 285
11.1.4DLL编写 295
11.1.5客户端编写 303
11.1.6身份验证 304
11.2UI设计 312
11.3代码实现与测试 312
11.3.1代码实现 312
11.3.2测试 319
11.4茅庐对话 321
综 合 篇
第 12 回特洛伊那匹不吃草的马
木马这个名字跟病毒一样臭名远扬，它可以悄悄地窃取你的账号，监视你在计算机上的一举一动，甚至控制你的摄像头窥探隐私。由于其具有强大的远程控制功能，木马也是黑客最喜爱的工具之一。
12.1原理及相关技术 324
12.1.1功能概述 324
12.1.2通信模块 326
12.1.3远程信息 338
12.1.4进程管理 345
12.1.5远程CMD 349
12.1.6键盘监控 349
12.1.7文件管理 353
12.1.8远程桌面 365
12.1.9其他功能 370
12.2UI设计 376
12.3代码实现与测试 379
12.3.1代码实现 379
12.3.2测试 395
12.4茅庐对话 397
第 13 回防火墙说，你不受欢迎
网络防御与网络攻击是永远的盾和矛，了解SPI防火墙如何使用SPI技术对进出本机的数据进行过滤，可以让你在一定程度上了解如何防止黑客的攻击。
13.1相关原理及技术 399
13.1.1SPI介绍 399
13.1.2分层服务提供者的安装和卸载 403
13.1.3LSP的编写 410
13.1.4过滤 416
13.2UI设计 430
13.3代码实现及测试 432
13.3.1整体结构 433
13.3.2FireWall项目 434
13.3.3FireWallDll项目 447
13.3.4测试 449
13.4茅庐对话 451
附录A网络协议概览 453
附录BPE文件格式 462