《Windows黑客技术揭秘与攻防 1 C语言篇》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:裴要强,孟波编著
  • 出 版 社:北京:中国铁道出版社
  • 出版年份:2010
  • ISBN:9787113113940
  • 页数:325 页
图书介绍:本书详细介绍和剖析了目前流行的各种黑客技术,包括文件操作技术、后门编程技术、扫描嗅探技术、木马下载者技术、U盘小偷、密码盗窃、验证码的破解、进程控制技术、NTFS数据流的检测与清除、系统监控技术、API Hook与SPI等。另外,还讲解一些常见的安全防御编程。本书在写作时注意有所侧重,突出实用性,对引入的新知识都进行了详细的原理性介绍。本书适合广大Windows编程爱好者、计算机安全从业人员、刚刚学会C/C++语言并亲自编写过一些小型程序的读者。

第1篇 Windows系统黑客技术基础入门第1章 Windows系统黑客技术基础 2

1.1 认识黑客编程 2

1.1.1 什么是黑客 2

1.1.2 了解黑客编程 3

1.2 选择操作系统和编程语言 3

1.2.1 本书应用的操作系统 3

1.2.2 本书选择的编程语言 4

1.3 本书选择的开发工具 4

1.3.1 Visual C++ 6.0的使用方法 5

1.3.2 Borland C++ Builder 6的使用方法 8

1.4 认识Windows API 11

1.4.1 API与可视化编程环境 11

1.4.2 C语言标准库函数和API函数的区别 12

1.4.3 具有字符串参数的API函数 12

第2章 文件操作技术 14

2.1 使用C语言标准库函数进行文件操作 14

2.1.1 打开文件 14

2.1.2 关闭文件 15

2.1.3 读文件 15

2.1.4 写文件 16

2.1.5 文件定位 16

2.2 使用Windows API函数进行文件操作 17

2.2.1 CreateFile()函数 17

2.2.2 CloseHandle()函数 18

2.2.3 ReadFile()函数 19

2.2.4 WriteFile()函数 19

2.2.5 SetFilePointer()函数 19

2.2.6 DeleteFile()函数 20

2.2.7 CreateDirectory()函数 20

2.2.8 RemoveDirectory()函数 21

2.2.9 CopyFile()函数 21

2.2.10 MoveFile()函数 21

2.2.11 GetFileAttributes()函数和SetFileAttributes()函数 21

2.3 文本加密器 23

2.3.1 文本加密的原理 23

2.3.2 使用VC实现文本加密器 24

2.4 文件粉碎机 25

2.4.1 Windows删除文件的原理 25

2.4.2 使用BCB实现文件粉碎 26

第2篇 黑客技术编程 30

第3章 计算机病毒的基本原理与防御 30

3.1 计算机病毒概述 30

3.1.1 什么是病毒 30

3.1.2 病毒编程技术说明 31

3.2 注册表编程 31

3.2.1 认识注册表 31

3.2.2 注册表编程技术 32

3.3 自删除技术的模拟 36

3.3.1 自删除技术简介 37

3.3.2 自删除技术的3种方式 37

3.3.3 自删除技术应用 38

3.4 剖析映像劫持技术 39

3.4.1 什么是映像劫持 39

3.4.2 映像劫持详细分析 40

3.4.3 防范映像劫持技术攻击 42

3.5 彻底认识Autorun.inf文件 43

3.5.1 Autofun.inf文件简介 43

3.5.2 Autofun.inf文件参数 43

3.6 病毒实现典型代码分析 44

3.6.1 隐藏运行,将自身移动到系统目录 45

3.6.2 修改注册表相关键值 45

3.6.3 遍历所有硬盘生成Autornn.inf文件 46

3.7 病毒的查杀与防御 46

3.7.1 病毒的查杀与防御简介 47

3.7.2 防火墙主动防御设置 47

第4章 后门编程与防御技术 49

4.1 后门概述 49

4.2 Winsock网络编程基础 50

4.2.1 C/S模式 50

4.2.2 Winsock API及其常用函数简介 50

4.3 后门分析之自启动 56

4.3.1 启动文件夹 56

4.3.2 自身复制程序 57

4.3.3 注册表启动键值 58

4.3.4 应用程序关联 58

4.3.5 启动文件 59

4.4 Windows服务编程技术 59

4.4.1 Windows服务 60

4.4.2 编写服务程序 60

4.5 服务控制编程技术 62

4.5.1 打开SCM——OpenSCManager()函数 63

4.5.2 打开一个服务对象——OpenService()函数 63

4.5.3 安装一个服务——CreateService()函数 63

4.5.4 启动一个服务——StartService()函数 64

4.5.5 查询服务的运行状态——QueryServiceStatus()函数 64

4.5.6 控制操作——ControlService()函数 65

4.5.7 删除服务——DeleteService()函数 65

4.6 后门分析之屏幕截取 66

4.6.1 屏幕截取简介 66

4.6.2 MFC类实现屏幕截取 66

4.6.3 BCB实现屏幕截取 68

4.7 后门分析之系统信息搜集与控制 69

4.7.1 关闭/重启计算机 69

4.7.2 指定HTTP地址下载文件 70

4.7.3 清除系统日志 71

4.8 后门分析之结果回显 72

4.8.1 管道后门简介 72

4.8.2 双管道后门代码 72

4.9 透视后门连接机制 73

4.10 后门的查杀与防范 74

4.10.1 怀疑被感染 74

4.10.2 确定被感染 76

4.10.3 手动杀毒 76

第5章 扫描嗅探技术原理剖析 79

5.1 认识多线程 79

5.1.1 理解线程 79

5.1.2 利用标准Windows API创建多线程程序 80

5.1.3 利用BCB提供的线程类 83

5.2 网络编程深入之原始套接字 84

5.2.1 原始套接字简介 84

5.2.2 利用原始套接字嗅探数据流 85

5.3 扫描的实现 87

5.3.1 完整端口扫描 87

5.3.2 TCP SYN扫描 91

5.4 使用WinPcap 96

5.5 Sniffer原理剖析 99

5.5.1 Sniffer的危害 100

5.5.2 Sniffer的工作原理 100

5.5.3 TCP/IP协议的4层结构 101

5.6 Sniffer编程实现 103

5.7 ARP欺骗 106

5.7.1 ARP欺骗简介 106

5.7.2 ARP欺骗演示程序 106

5.8 针对扫描嗅探的防御 108

5.8.1 针对扫描的防御 108

5.8.2 针对嗅探的防御 109

5.8.3 针对ARP欺骗的防御 110

第6章 木马下载者的技术分析与防范 111

6.1 认识木马下载者 111

6.1.1 “挂马”原理 111

6.1.2 木马下载者简介 112

6.2 网络编程深入之WinInet 112

6.2.1 InternetOpen()函数 112

6.2.2 InternetConnect()函数 113

6.2.3 InternetOpenUrl()函数 114

6.2.4 InternetQueryDataAvailable()函数 115

6.2.5 InternetReadFile()函数 115

6.2.6 InternetSetFilePointer()函数 116

6.2.7 InternetWriteFile()函数 116

6.2.8 InternetCloseHandle()函数 117

6.2.9 WinInet下载程序演示 117

6.3 服务端生成技术 121

6.3.1 FindResource()函数 121

6.3.2 LoadResource()函数 122

6.3.3 SizeofResource()函数 122

6.3.4 LockResource()函数 122

6.3.5 服务器端程序演示 123

6.4 UPX加壳技术 126

6.4.1 UPX加壳技术简介 126

6.4.2 UPX加壳技术演示 126

6.5 木马下载者的防御 127

6.5.1 配置防火墙 127

6.5.2 更新系统 128

第7章 U盘小偷的剖析与防御 129

7.1 认识U盘小偷 129

7.1.1 U盘小偷概述 129

7.1.2 U盘查找的简单实现 130

7.2 理解Windows消息机制 130

7.2.1 消息的基本概念 130

7.2.2 Windows消息系统 131

7.2.3 SDK消息机制 132

7.2.4 BCB消息机制 132

7.2.5 非标准消息 136

7.2.6 自己发送消息 137

7.3 U盘小偷的原理 138

7.3.1 关于事件 139

7.3.2 捕获U盘事件 139

7.4 全局热键的实现 144

7.4.1 GlobalAddAtom()函数 144

7.4.2 RegisterHotKey()函数 145

7.4.3 UnregisterHotKey()函数 145

7.5 防御U盘小偷 146

7.5.1 防御U盘小偷的原理 146

7.5.2 加密U盘 146

7.5.3 解密U盘 148

7.6 其他编程技巧分析 149

7.6.1 通过INI文件保存配置信息 149

7.6.2 U盘防火墙 150

7.6.3 只允许运行一个实例 151

7.6.4 遍历搜索指定的文件类型 151

7.6.5 添加作者主页链接 152

7.6.6 显示版权信息对话框 153

第8章 密码盗窃的模拟与防范 154

8.1 密码大盗与键盘记录器简介 154

8.1.1 密码大盗简介 154

8.1.2 键盘记录器简介 156

8.2 密码大盗工作原理与功能模拟 156

8.2.1 密码大盗工作原理 156

8.2.2 密码大盗功能演示 156

8.2.3 密码大盗功能实现 157

8.3 键盘记录器工作原理与功能模拟 161

8.3.1 键盘记录器工作原理 161

8.3.2 钩子简介 162

8.3.3 使用钩子实现键盘记录器 164

8.4 ASP收信的实现 167

8.4.1 ASP收信简介 167

8.4.2 ASP收信程序解析 167

8.5 邮箱收信的实现 169

8.5.1 邮箱收信简介 169

8.5.2 邮箱收信程序解析 169

8.6 密码大盗与键盘记录器的防御与查杀 171

8.6.1 使用反病毒软件 171

8.6.2 使用主动反击法 171

第9章 验证码的破解与防范 173

9.1 认识验证码 173

9.1.1 验证码的起源 173

9.1.2 验证码的工作原理 173

9.1.3 验证码的分类 174

9.1.4 破解验证码的原理分析 174

9.2 BMP文件结构分析 177

9.2.1 BMP文件结构概述 177

9.2.2 BMP文件头信息 178

9.2.3 BMP图像信息 180

9.3 分析Z-Blog验证码 183

9.3.1 什么是OCR 183

9.3.2 分析Z-Blog验证码 184

9.4 Z-Blog验证码的破解原理分析 185

9.4.1 将验证码图片下载到本地 185

9.4.2 将验证码加载到程序的相应位置 186

9.4.3 分析验证码图片 186

9.5 验证码破解攻击的防范方法 189

第3篇 安全防御 191

第10章 进程控制技术 191

10.1 进程概述 191

10.2 进程的创建 192

10.2.1 WinExec()函数 192

10.2.2 ShellExecute()函数 192

10.2.3 CreateProcess()函数 194

10.3 进程的管理与控制 195

10.3.1 打开进程 195

10.3.2 操作进程权限 195

10.3.3 终止进程 196

10.4 动态链接库编程 197

10.4.1 动态链接库的创建 197

10.4.2 动态链接库的调用 199

10.5 进程的枚举 200

10.5.1 系统快照 200

10.5.2 利用PSAPI 201

10.5.3 利用WTSAPI 202

10.5.4 利用NTDLL 203

10.6 进程的隐藏 204

10.6.1 进程隐藏简介 204

10.6.2 进程隐藏方法 205

10.7 进程保护技术 209

第11章 病毒专杀工具的编写 210

11.1 “熊猫烧香”病毒及专杀工具分析 210

11.1.1 “熊猫烧香”病毒与其感染特征 210

11.1.2 “熊猫烧香”病毒专杀工具工作流程 211

11.2 PE文件格式分析 211

11.2.1 PE文件格式整体概要 211

11.2.2 DOS MZ header分析 212

11.2.3 PE header分析 212

11.2.4 IMAGE_OPTIONAL_HEADER分析 212

11.2.5 IMAGE_SECTION_HEADER分析 214

11.2.6 PE文件格式分析程序示例 214

11.2.7 PE文件感染分析 217

11.3 “熊猫烧香”病毒专杀工具的主要代码 217

11.3.1 启动专杀工具 217

11.3.2 扫描进程 219

11.3.3 扫描aurorun.inf 220

11.3.4 查找并恢复感染文件 221

11.3.5 主函数 222

11.4 清除感染痕迹 223

11.4.1 修改图标 223

11.4.2 清除注册表项和值 223

11.5 免疫功能实现 226

第12章 NTFS数据流的检测与清除 231

12.1 认识NTFS数据流 231

12.1.1 数据流的概念演示 231

12.1.2 数据流特性演示 232

12.1.3 NTFS数据流的读/写 233

12.2 NTFS数据流的深入分析 233

12.2.1 利用WinRar实现隐藏文件 234

12.2.2 利用ScanNTFS查找和清除NTFS数据流 235

12.3 NTFS数据流扫描器的实现 236

12.3.1 数据流扫描器原理 236

12.3.2 main()函数 237

12.3.3 FindAllFilesInDirectory()函数 238

12.3.4 GetFileDataStream()函数 240

12.3.5 ReadStream()函数 240

第13章 系统监控技术 243

13.1 系统监控概述 243

13.2 文件监控技术 243

13.2.1 使用FindChangeNotification系列函数 243

13.2.2 使用ReadDirectoryChangesW()函数 246

13.3 注册表监控技术 249

13.3.1 RegNotifyChangeKeyValue()函数简介 249

13.3.2 RegNotifyChangeKeyValue()函数使用演示 249

13.4 进程监控技术 251

13.4.1 shell钩子简介 251

13.4.2 创建shell钩子 252

第14章 API Hook与SPI 257

14.1 API Hook综述 257

14.1.1 代理DLL 257

14.1.2 磁盘文件补丁 258

14.1.3 内存补丁 258

14.2 API Hook实例 258

14.2.1 API Hook的编写 258

14.2.2 API Hook的测试 263

14.3 使用Detours实现API Hook 265

14.4 SPI综述 266

14.4.1 SPI简介 266

14.4.2 LSP的安装 267

14.5 SPI实例 272

14.5.1 SPI的编写 272

14.5.2 SPI的测试 288

第15章 WinLogon编程和SSDT的挂钩与恢复 290

15.1 WinLogon概述 290

15.2 WinLogon编程实例 291

15.3 认识SSDT 293

15.4 挂钩SSDT 294

15.5 恢复SSDT 298

15.5.1 获取系统服务函数原始地址 299

15.5.2 恢复SSDT的实现代码 301

15.5.3 应用层实现代码 311

附录A Visual C++ 6.0的安装 315

附录B Borland C++ Builder 6.0的安装 320