018_《Delphi下深入Windows核心编程》

《Delphi下深入Windows核心编程》

Delphi 教程 系列书籍 (018) Delphi下深入Windows核心编程》 网友(邦)整理 EMail: shuaihj@163.com

下载地址:

Part1

Part2

Part3

 

 

  • 书名: Delphi下深入Windows核心编程
  • 作者: 飞思科技产品研发中心
  • 出版社: 电子工业出版社
  • 书号: 7505384023
  • 出版日期:2003年1月
  • 开本: 787*1092 1/16
  • 页码: 525
  • 版次: 2003年1月第一版第一次印刷

内容简介

本书是一本介绍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

时间: 2024-09-21 21:58:04

018_《Delphi下深入Windows核心编程》的相关文章

Delphi下用Windows API创建窗体

// Delphi 下调用Windows API 创建窗体.// program delphi; uses windows, messages; const hellostr='Hello World!'; {$R delphi.res} //窗口消息处理函数. function MyWinProc(hWnd:THandle;uMsg:UINT;wParam,lParam:Cardinal):Cardinal;exp ort;stdcall; var hdca,hdcb:THandle; //设

Delphi下汉字输入法的编程及使用

许多Windows应用程序的中西文录入界面中,中西文的录入需要反复切换汉字输入法,这样使用起来非常麻烦,下面来介绍一种比较简便的解决方法.本文的程序设计环境为Delphi Client/Server Suit Ver 3.0(以下简称Delphi 3.0)和中文Windows 95. 1.Delphi下的Imename.Imemode属性 在Delphi 3.0中的Tedit.Tmemo.TmaskEdit等编辑元件在应用程序中经常使用,这三种元件都具有ImeName.ImeMode属性.其中I

请教windows核心编程 ErrorShow程序例子问题

问题描述 请教windows核心编程 ErrorShow程序例子问题 刚刚学习win32 有个问题TCHAR buffer[100]; case WM_PAINT:{ hdc = BeginPaint (hwnd &ps) ; DWORD systemLocale = MAKELANGID(LANG_NEUTRAL SUBLANG_NEUTRAL); DWORD dwError = 1; HLOCAL hlocal = NULL; BOOL fOk = FormatMessage( FORMAT

Windows 核心编程研究系列之一(-改变进程PTE属性-)[已补完]

  Windows 核心编程研究系列之一 -改 变 进 程 PTE 属性-              这是我研究windows 核心编程的第一篇正式文章,之所以叫核心编程而不叫内核编程,是我觉得从字面上来看核心(core)比内核(kernel)更靠近windows中心,当然只是偶本人的看法的拉.          我们知道在 win NT 中,系统把每个进程的虚拟4G空间分为两大部份,低2G归用户所有,高2G归系统所有.用户不得访问系统的空间,连读都不行,更别说写了!低2G的用户空间也并不是都能

《windows核心编程系列》二谈谈ANSI和Unicode字符集 .

http://blog.csdn.net/ithzhang/article/details/7916732转载请注明出处!! 第二章:字符和字符串处理     使用vc编程时项目-->属性-->常规栏下我们可以设置项目字符集合,它可以是ANSI(多字节)字符集,也可以是unicode字符集.一般情况下说Unicode都是指UTF-16.也就是说每个字符编码为两个字节.65535个字符可以表示世界上大部分的语言.为了软件使国际化大家再编程时应该使用unicode字符集.由于原来学过c语言,不习惯

《windows 核心编程》 -探索虚拟内存

14.1 系统信息 操作系统中有许多值 是由系统所运行的主机所决定的.如果页面大小和分配粒度等.我们决对不应该在代码中将这些值写死. 此函数得到系统信息VOID GetSystemInfo(LPSYSTEM_INFO ps) 如果想得到机器中与处理器有关的详细信息可以调用GetLogicalProcesorInfomation函数 为了让32位应用程序在64位版本的Windows运行,Microsoft提供了一个称为windows 32 bit On Windows 64 的模拟层又称为WOW.

[原创/讨论][windows核心编程一外传]关于访问虚拟地址0的方法。

接上一篇 Windows 核心编程研究系列之一(改变进程 PTE) 内容 上一篇观赏地址 :http://community.csdn.net/Expert/topic/5124/5124747.xml?temp=.2832453 当然系统保证不让访问地址0出于一种保护的目的,是防止未初始化的指针读取数据.我说的访问地址0只是出于一种纯实现的目的,也不提倡大家这样做.说白了只是好玩罢了. 大家都知道在 windows 中读取/写入地址0的指令肯定会出错: // 写 0 地址的内容xor edx,

chHANDLE_DLGMSG(windows核心编程)讲解

看完<Windows程序设计>后开始看<windows核心编程>, 结果看第一个案例的时候就很惊人的发现,Jeffery大牛的代码很深奥.乍一看好像没有包含<windows.h>. 看看包含的头文件发现,CmnHdr.h中已经包含了<windows.h>.而CmnHdr.h中的代码更吓人,如果没有讲解,不知道怎么看才好.后来才知道原来书的最后有专门的搭建环境的介绍,基本上全面的讲解了CmnHdr.h的东西.   CmnHdr.h中包含了大牛的很多自己的东西.

《windows核心编程》 17章 内存映射文件

内存映射文件主要用于以下三种情况: 系统使用内存映射文件载入并运行exe和dll,这大量节省了页交换文件的空间以及应用程序的启动时间 开发人员可以使用内存映射文件来访问磁盘上的数据文件.这使得我们可以避免直接对文件IO操作和对文件内存进行缓存 进程间通讯 17.1 映射到内存的可执行文件和DLL 当一个线程调用CreateProcess的时候,系统会执行收入步骤: 1.判断exe位置,如果无法找到exe那么不会创建进程,这时会CreateProcess返回FALSE 2.创建一个新的进程内核对象