目 录 1
第1章快速进入Win32汇编世界 1
1.1使用汇编语言的意义 1
1.2汇编语言的使用场合 2
1.3 32位汇编语言的简单介绍 2
1.4安装和设置汇编语言环境 3
第13章汇编语言与Vi suaI C+ 4
1.5 H2INC工具的使用 5
1.6从Visual C++中产生汇编 6
源代码 6
1.7使用Win32汇编创建第一个 9
Win32应用程序 9
1.8 Win32汇编程序与C++应用 11
程序的比较 11
1.9汇编语言的调试 15
1.10使用SoffiCE调试汇编语言程序 16
1.12思考题 17
1.13练习题 17
1.1 1小结 17
第2章汇编语言指令 18
2.1 Intel汇编指令回顾 18
(8086/80186/80286/80386/80486) 18
2.1.1传送指令 19
2.1.2堆栈操作指令 21
2.1.3地址传送指令 22
2.1.4输入输出指令 22
2.1.5串操作指令 23
2.1.6算术运算指令 26
2.1.7控制转移指令 29
2.1.8子程序指令 31
2.1.9位操作指令 32
2.2 MASM32辅助函数库的使用 35
2.2.1算术函数 35
2.2.2命令行处理 36
2.2.3类型转换 37
2.2.4定制控件 39
2.2.5加密算法 39
2.2.6文件处理函数 40
2.2.7控制台模式函数 41
2.2.8图形的绘制 42
2.2.9图像绘制 43
2.2.10内存管理过程 44
2.2.1 1查找和排序 46
2.2.12字符串处理 48
2.2.13标准对话框的实现 50
2.2.14 Shell函数 53
2.3 小结 54
2.4思考题 54
2.5练习题 54
第3章语法基础 55
3.1 结构定义 55
3.2.1条件测试语句 57
3.2分支和循环 57
3.2.2分支语句 59
3.2.3循环语句 60
3.3循环与优化 61
3.4宏的使用和定义 63
3.5 MASM32宏的使用 65
3.5.1 重复汇编 66
3.5.2条件汇编 67
3.6 invoke的使用 68
3.7小结 69
3.8思考题 69
3.9练习题 70
4.1 概述 71
第4章创建窗口应用程序 71
4.2 WinMain函数的创建 72
4.3 窗口过程的实现 74
4.4一个完整的例子 75
4.5 小结 77
4.6思考题 77
4.7练习题 77
第5章窗口资源的使用 80
5.1 图标 80
5.2菜单 81
5.3加速键 82
5.4光标 83
5.6位图 85
5.5字符串 85
5.7二进制文件 86
5.8 对话框 87
5.9小结 91
5.10思考题 91
5.1 1练习题 91
第6章动态链接库 92
6.1动态链接库简介 92
6.2动态链接库入口点 93
6.3动态链接库输出函数 95
6.4调用动态链接库 96
12.3一个拦截Windows 95/ 98
6.4.1 隐式链接 98
6.4.2显式链接 99
6.5 资源动态链接库的创建和使用 99
6.6动态链接库中的数据共享 101
6.7钩子函数 102
6.8控制面板应用程序 104
6.9小结 106
6.10思考题 107
6.11练习题 107
第7章系统编程 108
7.1 内存管理和文件操作 108
7.2 内存映像文件 114
7.3进程 119
7.4管道 123
7.5多线程开发 128
7.6事件同步 132
7.7剪贴板操作 136
7.8小结 138
7.10练习题 138
7.9思考题 138
8.1使用汇编语言存取COM对象 139
第8章C0M的使用 139
8.2 COM的创建 143
8.3小结 154
8.4思考题 154
8.5练习题 154
9.2服务程序的框架 155
9.1 Windows NT服务简述 155
第9章WindoWs NT服务 155
9.3服务安装 161
9.4 小结 163
9.5思考题 164
9.6练习题 164
第10章0DBC数据库编程 165
10.1 概述 165
10.2数据源的连接 166
10.3语句的准备和使用 172
10.4结果集的存取 176
10.5 ODBC使用举例 178
10.8练习题 187
10.7思考题 187
10.6小结 187
驱动程序 188
11.1 Windows NT虚拟设备驱动 188
程序简介 188
11.2 VDD的实现 188
第11章Windows NT虚拟设备 188
1 1.3 16位应用程序的实现 191
11.4小结 194
1 1.5思考题 194
1 1.6练习题 195
第1 2章虚拟设备驱动程序 196
12.1虚拟设备驱动程序简介 196
12.2汇编语言创建VxD应用 197
程序框架 197
文件操作的VxD 205
12.4一个热键激活的VxD 209
12.5小结 217
12.6思考题 217
12.7练习题 217
混合编程 218
13.1使用嵌入汇编的意义 218
13.2嵌入汇编关键字 219
13.4在 asn块中使用C/C++ 221
语言元素 221
13.3在 asm块中使用汇编语言 221
13.5 使用C/C++符号的几点限制 222
13.6合理使用寄存器 223
13.7合理使用跳转语句 224
13.8在 asm中调用C函数 225
13.9使用 asm编写函数 226
13.10使用嵌入汇编实现用户态 228
应用程序运行特权指令 228
13.1 1 在汇编中调用C++函数 230
13.13思考题 233
13.14练习题 233
13.12小结 233
第14章PE格式文件分析 234
14.1 PE格式简介 234
14.2 PE格式的存储结构 234
14.3 PE格式有效性检查 236
14.4 FileHeader结构 241
14.5 OptionalHeader结构 242
14.6节表 243
14.7导入表 249
14.8导出表 259
14.9小结 267
14.10思考题 267
14.11练习题 267
15.1代码优化概述 268
第1 5章代码优化 268
15.2 MMX指令系统简介 269
1 5.3 MMX指令优化举例 274
15.4 SSE指令系统简介 276
1 5.5 SSE指令优化举例 285
15.6 SSE2指令系统简介 289
1 5.7 SSE2指令优化举例 298
15.8小结 300
15.9思考题 300
15.10练习题 300
16.1 概述 301
16.2 SoftICE的使用 301
第16章程序的跟踪和调试 301
16.3 SoffiCE的调试应用举例 305
16.4 IDAPro的使用 323
16.5小结 329
16.6思考题 329
16.7练习题 329
第1 7章结构化异常处理 330
17.1结构化异常处理简介 330
17.2未处理异常的回调函数 330
1 7.3异常处理和API Hook 333
1 7.4通过异常处理获得Kerne132 API函数地址 336
17.5小结 341
17.6思考题 341
17.7练习题 341