展开全部

主编推荐语

本书基于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
展开全部

评分及书评

评分不足
2个评分
  • 用户头像
    给这本书评了
    5.0

    本书是 Windows API 程序设计的进阶图书,内容包括多线程编程,内存管理,文件、驱动器和目录操作,进程,剪贴板,动态链接库,INI 配置文件和注册表操作,Windows 异常处理,WinSock 网络编程,其他常用 Windows API 编程知识,PE 文件格式深入剖析。通过阅读本书,读者可以对 Windows 程序设计有更加深入的认识,并将其应用到实际场景中。

      转发
      评论

    出版方

    人民邮电出版社

    人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。