原文出处:
http://www.delphibox.com/article.asp?articleid=2026
《Delphi下深入Windows核心编程》内容简介
本书是一本介绍Windows核心技术及高级技巧的专著。从系统内核编程出发,使用大量的例子帮助读者理解这些编程技术,讲述了线程同步及隐藏、系统钩子深入分析、读写物理磁盘的关键技术、读写物理内存和其他进程内存的核心技术、Windows 9x下调用16位实模式和保护模式代码的核心技术、直接读写端口技术、可执行文件加壳的技巧、PE结构分析、Ring0的实现、Windows API截取技术、屏幕取词技术等方面的内容。全书对热点源代码进行了深入剖析和讲解,同时本书汇聚了作者利用Soft-ICE跟踪调试经验,作者多年的编程心得和技巧一览无遗。随书附送的光盘提供了书中涉及的程序源代码。
本书可对Windows核心编程感兴趣者提供帮助,亦可供广大编程人员及各大专院校师生参考。
目录
第1章 DLL与数据共享 1
1.1 关于DLL 1
1.1.1 DLL的结构 1
1.1.2 DLL数据作用范围 4
1.2 内存映像 4
1.2.1 创建映像文件 5
1.2.2 打开映像文件 5
1.2.3 映射到本进程中 6
1.2.4 关闭内存映射 6
1.2.5 两个EXE文件共享内存数据块 8
1.2.6 两个DLL文件共享内存数据块 13
1.3 16位和32位进程间传送消息 17
1.3.1 全局原子实现数据共享 17
1.3.2 WM_COPYDATA消息实现进程间数据共享 20
第2章 钩子原理 23
2.1 钩子原理 23
2.1.1 挂钩函数 23
2.1.2 钩子链 24
2.1.3 脱钩 25
2.2 消息及DLL的注入 25
2.2.1 自定义消息截取 25
2.2.2 文件或串并口读写监视钩子 27
2.3 Shell钩子 38
2.3.1 实现钩子 39
2.3.2 注册钩子 40
2.3.3 实现步骤 41
2.3.4 完整代码 42
2.4 鼠标键盘钩子 45
2.4.1 效果不错的鼠标钩子 45
2.4.2 鼠标键盘的动作记录与回放 52
2.4.3 黑客常用工具――键盘钩子 56
2.4.4 非DLL键盘监视的两种方法 60
第3章 系统内核 71
3.1 内核对象 71
3.2 进程 72
3.2.1 进程在内存中的结构 73
3.2.2 进程列举 74
3.2.3 Windows NT/2000下列举进程的方法 79
3.2.4 进程模块的列举 87
3.2.5 终止进程 91
3.2.6 创建进程并监视进程运行 93
3.3 进程隐藏深入剖析 99
3.3.1 进程隐藏原理 99
3.3.2 Windows 9x下进程的伪隐藏 99
3.3.3 用三级跳实现真隐藏 101
3.3.4 Windows NT/2000进程远程写入实现深度隐藏 111
3.4 线程 117
3.4.1 线程的优先级 118
3.4.2 线程的挂起和继续 119
3.4.3 执行线程 119
3.4.4 线程同步 120
3.4.5 列举本进程的所有线程 130
3.5 Windows NT/2000的性能数据库 134
3.5.1 性能数据库的对象、计数器及实例 134
3.5.2 浏览性能数据库 143
第4章 低层操作 149
4.1 中断 149
4.2 内嵌汇编 150
4.2.1 汇编入口与退出 150
4.2.2 使用汇编 150
4.2.3 嵌入汇编程序 155
4.3 Ring0特权及端口直接IO 156
4.3.1 Ring0特权的获取 156
4.3.2 关于VxD 157
4.3.3 Windows 9x下的时间变速(变速齿轮) 158
4.4 端口读写驱动PortTalk 162
4.4.1 PortTalk与Delphi的接口 162
4.4.2 Windows NT/2000下的时间变速(变速齿轮) 167
4.5 Thunk机制 169
4.5.1 Flat Thunk(直接替换) 169
4.5.2 Generic Thunk(通用替换) 182
第5章 磁盘读写 191
5.1 磁盘读写技术荟萃 191
5.1.1 Windows 9x下读写逻辑磁盘扇区的方法 193
5.1.2 Windows 9x下用INT13实现读写软盘物理磁盘扇区 199
5.1.3 利用VxD和CIH病毒中的Ring0技术 203
5.1.4 调用16位实模式的核心技术 217
5.1.5 Windows NT/2000下读写物理、逻辑磁盘扇区 229
5.2 枚举磁盘中已打开的文件列表 232
第6章 回收站和IE 237
6.1 回收站 237
6.1.1 删除文件到回收站 237
6.1.2 清空回收站 240
6.1.3 回收站实时监控 242
6.2 IE编程 255
6.2.1 IE历史记录的管理 255
6.2.2 IE工具栏 259
6.2.3 获取已打开的IE地址的两种方法 268
6.2.4 将网页保存为图片 275
6.2.5 清除IE历史记录、下拉列表和Cookie 277
第7章 高级应用 281
7.1 DDE 281
7.1.1 DDE原理 281
7.1.2 利用DDE创建程序组 282
7.1.3 执行DDE宏 285
7.2 密码相关程序 286
7.2.1 查看“*”的编辑框 287
7.2.2 防止“*”的密码泄露 289
7.2.3 读取缓冲区密码 293
7.3 目录监视 296
7.4 剪贴板监视 300
7.5 消息机制 302
7.6 模拟按键及鼠标双击 306
7.7 热键 311
7.8 程序运行后自动删除 314
7.9 只运行一个实例的两种方法 315
7.9.1 写全局元素的惟一字符串 316
7.9.2 创建互斥对象 316
7.10 移动正在使用的文件 317
7.11 类型转换与存储转换 322
7.11.1 类型转换 323
7.11.2 存储转换 324
7.12 加壳原理 325
7.12.1 附加代码分析 326
7.12.2 合并外壳的源代码分析 331
第8章 PE结构分析 341
8.1 PE文件结构 341
8.1.1 文件头(File Header) 342
8.1.2 节表(Section Table) 347
8.1.3 引入函数表(Import Table) 349
8.1.4 导出表(Export Table) 351
8.1.5 重定位表 353
8.1.6 检验PE文件的有效性 354
8.2 PEDump实例 355
8.2.1 显示资源的单元源代码 355
8.2.2 以十六进制格式化显示PE文件 380
8.2.3 显示PE信息的单元源代码 380
8.2.4 PE引入与导出函数表 396
8.2.5 主程序及公共单元 404
第9章 内存管理 411
9.1 内存结构 411
9.2 内存堆列举 411
9.3 修改虚拟内存保护属性 416
9.4 读写其他进程内存的技巧 423
9.5 Windows 9x下读写物理内存的核心技术 429
9.5.1 编写VxD读写内存 429
9.5.2 利用16位DLL代码读写物理内存 436
9.6 Windows NT/2000下读写物理内存的核心技术 447
第10章 API Hook及屏幕取词 457
10.1 API Hook必读 457
10.1.1 API Hook入门 457
10.1.2 陷阱式API Hook 458
10.1.3 改引入表式API Hook 461
10.1.4 API Hook源代码分析 462
10.2 屏幕取词 468
10.2.1 Windows NT/2000下32位取词及关键技术 468
10.2.2 Windows 9x下16位、32位取词及核心技术 490
附录A Delphi编译指令说明 511
A.1 使用编译设置对话框 511
A.2 使用编译指令 512
A.3 使用条件编译指令 513
附录B Delphi编译错误信息对照表 515
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课