深入浅出Windows API程序设计:核心编程篇【全本

您所在的位置:网站首页 WindowsAPI编程pdf 深入浅出Windows API程序设计:核心编程篇【全本

深入浅出Windows API程序设计:核心编程篇【全本

2024-03-25 05:44| 来源: 网络整理| 查看: 265

版 权

内容提要

前 言

作者简介

资源与支持

第1章 多线程编程

1.1 使用多线程的必要性

1.2 多线程编程

1.3 线程的终止及其他相关函数

1.4 线程间的通信

1.4.1 全局变量

1.4.2 自定义消息

1.4.3 事件对象

1.4.4 手动和自动重置事件对象

1.5 线程间的同步

1.5.1 用户模式线程同步

1.5.2 内核模式线程同步

第2章 内存管理

2.1 保护模式的分段与分页管理机制

2.2 获取系统信息与内存状态

2.3 虚拟地址空间管理函数

2.3.1 虚拟地址空间的分配与释放

2.3.2 改变页面保护属性

2.3.3 查询页面信息

2.4 堆管理函数

2.4.1 私有堆的创建和释放

2.4.2 在堆中分配和释放内存块

2.4.3 其他堆管理函数

2.4.4 在C++中使用堆

2.5 其他内存管理函数

第3章 文件、驱动器和目录操作

3.1 基本概念

3.1.1 与硬盘存储有关的几个重要概念

3.1.2 分区、逻辑驱动器、文件系统和卷

3.1.3 文件名、目录、路径和当前目录

3.2 文件操作

3.2.1 创建和打开文件

3.2.2 读写文件

3.2.3 文件指针

3.2.4 文件属性

3.2.5 复制文件

3.2.6 移动文件(目录)、删除文件

3.2.7 无缓冲I/O

3.3 逻辑驱动器和目录

3.3.1 逻辑驱动器操作

3.3.2 目录操作

3.3.3 环境变量

3.3.4 SHFileOperation函数

3.3.5 监视目录变化

3.3.6 获取硬盘序列号

3.3.7 可移动硬盘和U盘监控

3.3.8 获取主板和BIOS序列号

3.4 内存映射文件

3.4.1 内存映射文件相关函数

3.4.2 通过内存映射文件在多个进程间共享数据

3.4.3 使用内存映射文件来处理大型文件

3.5 APC异步过程调用

第4章 进程

4.1 创建进程

4.2 多个进程间共享内核对象

4.3 进程终止

4.4 进程间通信

4.4.1 WM_COPYDATA

4.4.2 管道

4.4.3 邮件槽

4.5 进程枚举

4.5.1 TlHelp32系列函数

4.5.2 EnumProcesses函数

4.5.3 进程环境块PEB

4.6 进程调试

4.6.1 读写其他进程的地址空间

4.6.2 获取一个以暂停模式启动的进程模块基地址

4.6.3 调试API

4.6.4 内存补丁

4.6.5 线程环境

4.7 窗口间谍

4.8 示例:一个程序退出时删除自身

第5章 剪贴板

5.1 剪贴板常用函数与消息

5.1.1 基本剪贴板函数

5.1.2 剪贴板相关的消息

5.2 使用剪贴板进行进程间通信

5.2.1 Clipboard写入端

5.2.2 Clipboard读取端

5.3 监视剪贴板内容变化

5.3.1 相关函数和消息

5.3.2 剪贴板监视程序ClipboardMonitor

5.3.3 监视剪贴板的新方法

第6章 动态链接库

6.1 静态链接库

6.2 动态链接库

6.2.1 创建DLL项目

6.2.2 在可执行模块中使用DLL

6.2.3 入口点函数DllMain

6.2.4 延迟加载DLL

6.3 线程局部存储

6.3.1 动态TLS

6.3.2 静态TLS

6.4 Windows钩子

6.5 在同一个可执行文件的多个实例间共享变量

6.6 注入DLL

6.6.1 通过Windows钩子注入DLL

6.6.2 通过创建远程线程注入DLL

6.6.3 通过函数转发器机制注入DLL

6.6.4 通过CreateProcess函数写入ShellCode注入DLL

6.6.5 通过调试器写入ShellCode注入DLL

6.6.6 通过APC机制注入DLL

6.6.7 通过输入法机制注入DLL

6.7 Shadow API技术

6.8 Hook API技术

6.8.1 随机数

6.8.2 通过远程线程注入DLL实现API Hook

6.8.3 通过全局消息钩子注入DLL实现进程隐藏

第7章 INI配置文件和注册表操作

7.1 INI配置文件

7.1.1 键值对的创建、更新与删除

7.1.2 获取键值

7.1.3 管理小节

7.2 注册表操作

7.2.1 子键的打开、关闭、创建和删除

7.2.2 键值项的创建或设置、查询和删除

7.2.3 子键、键值项的枚举

7.2.4 注册表应用:程序开机自动运行设置文件关联

第8章 Windows异常处理

8.1 结构化异常处理

8.1.1 try-except语句

8.1.2 GetExceptionCode和GetExceptionInformation

8.1.3 利用结构化异常处理进行反调试

8.1.4 软件异常

8.2 向量化异常处理(全局)

8.2.1 向量化异常处理简介

8.2.2 利用向量化异常处理实现基于断点的API Hook

8.3 顶层未处理异常过滤(全局)

8.4 向量化继续处理(全局)

第9章 WinSock网络编程

9.1 OSI参考模型和TCP/IP协议簇

9.1.1 OSI参考模型

9.1.2 TCP/IP协议簇

9.1.3 套接字网络编程接口

9.2 IP地址、网络字节顺序和WinSock的地址表示方式

9.2.1 IP地址和端口

9.2.2 网络字节顺序

9.2.3 WinSock的地址表示方式

9.3 WinSock网络编程

9.3.1 TCP网络编程的一般步骤

9.3.2 TCP服务器程序

9.3.3 TCP客户端程序

9.3.4 UDP编程

9.3.5 P2P技术

9.4 WinSock异步I/O模型

9.4.1 阻塞模式下的多线程多客户端套接字编程

9.4.2 select模型

9.4.3 WSAAsyncSelect模型

9.4.4 WSAEventSelect模型

9.4.5 Overlapped模型

9.4.6 完成端口模型

9.4.7 深入介绍I/O完成端口

9.4.8 深入介绍线程池

9.5 IPHelper API及其他函数

9.5.1 获取本地计算机的网络适配器信息

9.5.2 其他函数

9.5.3 校对时间程序

9.6 系统网络连接的启用和禁用

第10章 其他常用Windows API编程知识

10.1 快捷方式

10.2 程序开机自动启动

10.2.1 将程序的快捷方式写入开机自动启动程序目录

10.2.2 创建任务计划实现开机自动启动

10.2.3 创建系统服务实现开机自动启动

10.3 用户账户控制

10.3.1 自动提示用户提升权限

10.3.2 利用ShellExecuteEx函数以管理员权限启动程序

10.3.3 绕过UAC提权提示以管理员权限运行

10.4 用户界面特权隔离

10.5 窗口的查找与枚举

10.6 实现任务栏通知区域图标与气泡通知

第11章 PE文件格式深入剖析

11.1 DOS头(DOS MZ头和DOS Stub块)

11.2 PE头(IMAGE_NT_HEADER32结构)

11.3 节表(节区信息结构IMAGE_SECTION_HEADER列表)

11.4 64位可执行文件格式PE32+

11.5 导入表

11.6 导出表

11.7 重定位表

11.8 模拟PE加载器直接加载可执行文件到进程内存中执行

11.9 线程局部存储表

11.10 加载配置信息表

11.11 资源表

11.12 延迟加载导入表

11.13 校验和与CRC

11.14 64位程序中如何书写汇编代码(以获取CPUID为例)

11.15 Detours-master库

11.15.1 注入DLL的编写

11.15.2 将注入DLL加载到目标进程中

11.15.3 编辑可执行文件

11.16 通过修改模块导入表中的IAT项来Hook API



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3