计算机
类型
可以朗读
语音朗读
740千字
字数
2022-07-01
发行日期
展开全部
主编推荐语
本书基于win 10和VS 2019编写,系统地介绍了Windows程序设计的核心编程思想与实践。
内容简介
本书是Windows API程序设计的进阶图书,内容包括多线程编程,内存管理,文件、驱动器和目录操作,进程,剪贴板,动态链接库,INI配置文件和注册表操作,Windows异常处理,WinSock网络编程,其他常用Windows API编程知识,PE文件格式深入剖析。
通过阅读本书,读者可以对Windows程序设计有更加深入的认识,并将其应用到实际场景中。本书适合有一定经验的Windows API程序开发人员阅读,也可以作为培训学校的教材使用。
目录
- 版权信息
- 内容提要
- 前言
- 作者简介
- 资源与支持
- 第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
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。