目 录 1
译者序 1
序言 1
第1章始料未及 1
1.1后台编程 3
1.2动态连接帮助窥探 4
1.3 NDW的内部 5
1.4开放的工具:不再是未公开的Windows 9
1.5最后是未公开的Windows 11
1.5.1 自由系统资源详述 12
1.5.2保护模式问题 17
1.6继续深入Norton Desktop 21
1.7 Microsoft对未公开Windows的应用 22
1.8未公开的调试 27
1.9 Microsoft的商业化应用程序和语言产品 28
1.9.1 “长城”以及FTC对Microsoft的调查 32
1.9.2 Geary事件 33
1.10在Windows内部 36
1.11 为何不公开它们? 38
1.12恐惧、厌恶与可移植性 40
1.12.1 NT又怎样? 43
1.13未公开函数的安全使用 44
第2章考查Windows可执行程序 46
2.1 使用MAPWIN 50
2.2 使用EXEDUMP 57
2.3 用EXEDUMP-EXPORTS生成.DAT文件 63
2.4 用EXEDUMP的-MAGIC和-DESC选项进行快速剖析 64
2.6 用EXEUTIL-FINDUNDOC搜索未公开的函数 65
2.5 使用EXEUTIL 65
2.7 用EXEUTIL-UNDOC搜索未公开的函数调用 68
2.8用EXEUTIL-IMPORTS搜索对API函数的调用 71
2.9 用EXEUTIL-DIFF发现DLL变异 72
2.10 用EXEUTIL-DUPES探索等价函数 74
第3章反汇编Windows 77
3.1 反汇编TASKMAN 83
3.2 TASKMAN技术 99
3.3考查API函数和数据结构 103
第4章剖析的工具 110
4.1 Windows Spies,Walkers和Debuggers 110
4.1.1 HEAPWALK 110
4.1.2 SPY 111
4.1.5 Windows调试版 112
4.1.3 Windows版的CodeView 112
4.1.4 WDEB386 112
4.1.6 其他剖析工具 113
4.2 Soft-ICE/Windows 115
4.2.1 使用 WINICE反汇编 116
4.2.2 WINICE断点 117
4.2.3 WINICE程序的系统信息命令 120
4.3 WINIO库 122
4.3.1 一个交互式命令Shell 124
4.3.2 程序常驻内存 126
4.3.3安装事件处理程序 127
4.3.4 WINIO菜单 129
4.3.5 WINIO的行操作功能 131
4.4 CALLFUNC:方便地动态连接 134
4.4.1 CALLFUNC的GP错误处理 138
4.5 使用SNOOP查看未公开的WM消息 140
4.5.1 利用WndProc跟踪消息 143
4.5.2 SNOOP的一个独特功能 145
4.6 利用WISPY观察中断 145
4.6.1 启动DOS窗 149
4.6.2 调整WINIO 149
4.7 Windows浏览程序 152
第5章 KERNEL:Windows系统服务 153
5.1 KERNEL版本 153
5.2 KERNEL数据结构 154
5.3句柄,无处不在的句柄 156
5.4 KERNEL引入和引出 163
5.6 未公开的KERNEL函数 164
5.5 KERNEL初始化 164
5.7使用未公开函数 167
第6章 USER:Microsoft Windows用户接口 313
6.1 USER数据结构 313
6.2 USER堆 314
6.3 USER对象 315
6.3.1全局对象 315
6.3.2用户局部堆对象 316
6.4 USERWALK 319
6.5 USER的引出和引入 323
6.6 USER中的未公开函数 324
6.7 USER组成 325
6.8使用未公开的USER函数 325
第7章未公开的Windows消息 405
7.1固有的WndProc 416
7.2未公开的控制消息 416
第8章GDI 418
8.1 GDI数据结构 418
8.2 GDIWALK 420
8.3 GDI堆 425
8.4 GDI中的引出和引入 425
8.5未公开的GDI函数 426
8.6使用未公开的GDI函数 427
第9章SYSTEM 469
第10章Tool Help:未公开Windows的部分替换 477
10.1oolHelp能替代哪些未公开功能? 477
10.2利用ToolHelp编程时的各种考虑 479
10.3在自己的软件产品中使用ToolHelp 481
10.4 ToolHelp的函数 482
10.5堆函数 482
10.6 Windows数据结构访问函数 486
10.7调试及其他函数 489
10.8示例程序:WinWalk 498
10.8.1全局堆,十六进制显示,以及局部堆遍历 498
10.8.2任务列表 499
10.8.3模块列表 499
10.8.4类列表 500
10.9示例程序:Coroner 509
10.9.1运行Coroner 509
10.9.2 Coroner代码 511
10.9.3对增强模式的建议 523
附录:WINIO库的说明 525