Windows中文网

 找回密码
 立即注册
搜索
查看: 9325|回复: 0

《深入浅出Windows API程序设计》编程基础篇和核心编程篇目录

[复制链接]

19

主题

22

帖子

428

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
428
发表于 2021-9-12 10:39:53 | 显示全部楼层 |阅读模式
上册《深入浅出Windows API程序设计 编程基础篇》
第1篇 基础篇
第1章 基础知识
    1.1 Windows的特色
    1.2 编程语言的分类
    1.3 安装Visul Studio开发工具
    1.4 HelloWorld程序
        1.4.1 引入头文件Windows.h
        1.4.2 入口函数WinMain
            1、函数调用约定
            2、参数批注
            3、WinMain的4个函数参数的含义
        1.4.3 MessageBox函数
    1.5 程序编译过程
    1.6 字符编码ASCII、扩展ASCII、DBCS、Unicode、ANSI
    1.7 字符和字符串处理
        1.7.1 字符、字符串数据类型
        1.7.2 常用的字符串处理函数
            1、获取字符串的长度
            2、查找一个字符串中首次出现的指定字符
            3、从一个字符串中查找另一个字符串
            4、从一个字符串中查找另一个字符串中的任何一个字符
            5、转换字符串中的字符大小写
            6、字符串拼接
            7、字符串复制
            8、字符串比较
            9、分割字符串
            10、字符串快速排序
            11、字符串与数值型的相互转换
            12、格式化字符串
            13、字符串格式化为指定类型的数据
            14、Windows中的一些字符串函数
        1.7.3 Windows中的ANSI与Unicode版本函数
        1.7.4 ANSI与Unicode字符串转换
    1.8 结构体数据对齐
第2章 Windows窗口程序
    2.1 认识Windows窗口
    2.2 第一个Windows窗口程序
        2.2.1 注册窗口类(RegisterClassEx)
        2.2.2 创建窗口(CreateWindowEx)
        2.2.3 显示窗口(ShowWindow)、刷新窗口客户区(UpdateWindow)
        2.2.4 消息循环
        2.2.5 窗口过程
            1、WM_CREATE消息
            2、窗口关闭过程
            3、其他消息处理
            4、WM_PAINT重绘消息
    2.3 Windows数据类型
    2.4 函数名、变量名命名规则
第3章 GDI绘图
    3.1 设备环境(DC)
    3.2 绘制文本
        3.2.1 格式化文本
            1、文本格式属性
            2、获取字符串的宽度和高度
            3、选择字体
            4、获取字体的度量值
        3.2.2 绘制文本函数
        3.2.3 加入标准滚动条
            1、SetScrollInfo、GetScrollInfo函数
            2、只刷新无效区域
            3、根据客户区内容调整程序窗口大小
        3.2.4 保存设备环境
    3.3 绘制直线和曲线
        3.3.1 绘制像素点
        3.3.2 绘制直线
        3.3.3 绘制曲线
    3.4 填充图形
    3.5 逻辑坐标与设备坐标
        3.5.1 世界坐标空间到页面坐标空间的变换
        3.5.2 页面坐标空间到设备坐标空间的变换
            1、设备坐标系统
            2、窗口和视口
            3、默认的MM_TEXT映射模式
            4、度量映射模式
            5、自定义映射模式
    3.6 扩展画笔
    3.7 区域
    3.8 路径
    3.9 绘图模式
第4章 键盘与鼠标
    4.1 键盘
        4.1.1 活动窗口与键盘焦点
        4.1.2 系统击键消息和非系统击键消息
        4.1.3 虚拟键码
        4.1.4 转义状态
        4.1.5 字符消息
        4.1.6 模拟击键消息
        4.1.7 插入符号
    4.2 鼠标
        4.2.1 客户区鼠标消息
        4.2.2 非客户区鼠标消息
        4.2.3 X按钮消息
        4.2.4 一些鼠标光标函数
        4.2.5 鼠标捕获
        4.2.6 鼠标滚轮
        4.2.7 模拟鼠标消息
第5章 计时器(定时器)和时间
    5.1 计时器
    5.2 系统时间
    5.3 Windows时间
    5.4 时钟程序
第2篇 界面篇
第6章 菜单和其他资源
    6.1 菜单和加速键
        6.1.1 为程序添加菜单栏
        6.1.2 加速键
        6.1.3 菜单的查询、创建、添加、修改和删除
        6.1.4 菜单状态的设置、快捷菜单
        6.1.5 扩展菜单选项与菜单项自绘
    6.2 图标
    6.3 光标
    6.4 字符串表
    6.5 程序版本信息
    6.6 自定义资源
第7章 位图
    7.1 设备相关位图DDB
    7.2 位块传送
    7.3 设备无关位图DIB
    7.4 DDB与DIB
第8章 子窗口控件
    8.1 按钮类Button
        8.1.1 按钮与父窗口通信
        8.1.2 系统颜色
        8.1.3 视觉样式
        8.1.4 控件的子类化与超类化
        8.1.5 命令链接按钮与拆分按钮
    8.2 编辑控件Edit
    8.3 列表框ListBox
    8.4 组合框ComboBox
    8.5 滚动条控件ScrollBar
    8.6 静态控件Static
    8.7 SysLink控件SysLink
    8.8 热键控件msctls_hotkey32,全局热键与特定线程热键
    8.9 IP地址控件SysIPAddress32
    8.10 图像列表ImageList_Create函数
    8.11 工具提示控件tooltips_class32
        8.11.1 超时时间,工具提示控件的激活和停用
        8.11.2 跟踪工具提示
    8.12 列表视图SysListView32
        8.12.1 添加列标题 添加列表项
        8.12.2 列表视图控件消息和通知码
        8.12.3 选中项的获取
    8.13 树视图SysTreeView32
        8.13.1 项目的添加
        8.13.2 选中项的获取
        8.13.3 其他消息和通知码
    8.14 状态栏msctls_statusbar32
        8.14.1 为状态栏分栏
        8.14.2 MenuHelp
    8.15 工具栏ToolbarWindow32
        8.15.1 为按钮显示工具提示
        8.15.2 自定义工具栏
    8.16 进度条控件msctls_progress32
    8.17 日期控件SysMonthCal32
    8.18 Tab选项卡控件SysTabControl32
    8.19 动画控件SysAnimate32
第9章 对话框
    9.1 模态对话框
        9.1.1 模态对话框示例程序
        9.1.2 对话框窗口过程
        9.1.3 另一个模态对话框的例子
    9.2 非模态对话框
    9.3 对话框程序的书写
    9.4 通过Photoshop切片和自绘技术实现一个优雅的程序界面
第10章 通用对话框
    10.1 打开和保存文件GetOpenFileName、GetSaveFileName
    10.2 浏览文件夹SHBrowseForFolder与遍历目录
    10.3 查找和替换FindText、ReplaceText
    10.4 选择字体ChooseFont
    10.5 选择颜色ChooseColor

下册《深入浅出Windows API程序设计 核心编程篇》
第3篇 核心编程
第11章 多线程编程
    11.1 使用多线程的必要性
    11.2 多线程编程
    11.3 线程的终止、其他相关函数
    11.4 线程间的通信
        11.4.1 全局变量
        11.4.2 自定义消息
        11.4.3 事件对象(Event)
        11.4.4 手动和自动重置事件对象
    11.5 线程间的同步
        11.5.1 用户模式线程同步
            1、Interlocked原子访问系列函数
            2、关键段(Critical Section)
            3、SRW锁
            4、条件变量
        11.5.2 内核模式线程同步
            1、事件对象(Event)
            2、互斥量对象(Mutex)
            3、信号量对象(Semaphore)
            4、可等待计时器对象(Waitable Timer)
第12章 内存管理
    12.1 保护模式的分段与分页管理机制
    12.2 获取系统信息与内存状态
    12.3 虚拟地址空间管理函数
        12.3.1 虚拟地址空间的分配与释放
        12.3.2 改变页面保护属性
        12.3.3 查询页面信息
    12.4 堆管理函数
        12.4.1 私有堆的创建和释放
        12.4.2 在堆中分配和释放内存块
        12.4.3 其他堆管理函数
        12.4.4 在C++中使用堆
    12.5 其他内存管理函数
第13章 文件、驱动器、目录操作
    13.1 基本概念
        13.1.1 与硬盘存储有关的几个重要概念
        13.1.2 分区、逻辑驱动器、文件系统、卷
        13.1.3 文件名、目录、路径、当前目录
    13.2 文件操作
        13.2.1 创建、打开文件
        13.2.2 读写文件
        13.2.3 文件指针
        13.2.4 文件属性
        13.2.5 拷贝文件
        13.2.6 移动文件(目录)、删除文件
        13.2.7 无缓冲I/O
    13.3 逻辑驱动器和目录
        13.3.1 逻辑驱动器操作
        13.3.2 目录操作
        13.3.3 环境变量
        13.3.4 SHFileOperation函数
        13.3.5 监视目录变化
        13.3.6 获取硬盘序列号
        13.3.7 可移动硬盘和U盘监控
        13.3.8 获取主板和BIOS序列号
    13.4 内存映射文件
        13.4.1 内存映射文件相关函数
        13.4.2 通过内存映射文件在多个进程间共享数据
        13.4.3 使用内存映射文件来处理大型文件
    13.5 APC异步过程调用
第14章 进程
    14.1 创建进程
    14.2 多个进程间共享内核对象
    14.3 进程终止
    14.4 进程间通信(Inter Process Communication,IPC)
        14.4.1 WM_COPYDATA
        14.4.2 管道(Pipe)
        14.4.3 邮件槽(Mailslot)
    14.5 进程枚举
        14.5.1 TlHelp32系列函数
        14.5.2 EnumProcesses函数
        14.5.3 进程环境块PEB
    14.6 进程调试
        14.6.1 读写其他进程的地址空间
        14.6.2 获取一个以挂起模式启动的进程模块基地址
        14.6.3 调试API
        14.6.4 内存补丁
        14.6.5 线程环境
    14.7 窗口间谍
    14.8 一个程序退出时删除自身的例子
第15章 剪贴板
    15.1 剪贴板常用函数与消息
        15.1.1 几个基本剪贴板函数
        15.1.2 剪贴板相关的消息
    15.2 使用剪贴板进行进程间通信
        15.2.1 Clipboard写入端
        15.2.2 Clipboard读取端
    15.3 监视剪贴板内容变化
        15.3.1 几个相关函数和消息
        15.3.2 剪贴板监视程序ClipboardMonitor
        15.3.3 监视剪贴板的新方法
第16章 动态链接库
    16.1 静态链接库
    16.2 动态链接库
        16.2.1 创建DLL
        16.2.2 在可执行模块中使用DLL
        16.2.3 入口点函数DllMain
        16.2.4 延迟加载DLL(一个获取文件MD5、SHA等的例子)
    16.3 线程局部存储(TLS)
        16.3.1 动态TLS
        16.3.2 静态TLS
    16.4 Windows钩子
    16.5 在同一个可执行文件(.exe或.dll)的多个实例间共享变量
    16.6 DLL注入
        16.6.1 通过Windows钩子注入DLL
        16.6.2 通过创建远程线程注入DLL
        16.6.3 通过函数转发器制作同名DLL进行注入
        16.6.4 通过CreateProcess函数写入ShellCode进行注入
        16.6.5 通过调试器写入ShellCode进行注入
        16.6.6 通过APC机制注入DLL
        16.6.7 通过输入法机制注入DLL
    16.7 Shadow API技术
    16.8 Hook API
        16.8.1 随机数
        16.8.2 通过远程线程注入DLL实现API Hook
        16.8.3 通过全局消息钩子注入DLL实现进程隐藏
第17章 注册表和INI配置文件
    17.1 INI配置文件
        17.1.1 键值对的创建、更新与删除
        17.1.2 获取键值
        17.1.3 管理小节
    17.2 注册表操作
        17.2.1 子键的打开、关闭、创建和删除
        17.2.2 键值项的创建或设置、查询和删除
        17.2.3 子键、键值项的枚举
        17.2.4 注册表应用:程序开机自动运行 设置文件关联
第18章 Windows异常处理
    18.1 SEH结构化异常处理
        18.1.1 try-except语句
        18.1.2 GetExceptionCode和GetExceptionInformation
        18.1.3 利用SEH进行反调试
        18.1.4 软件异常
    18.2 VEH向量化异常处理(全局)
        18.2.1 VEH向量化异常处理
        18.2.2 利用VEH实现基于断点的API Hoook
    18.3 UEF顶层未处理异常过滤器(全局)
    18.4 VCH向量化继续处理(全局)
第19章 WinSock网络编程
    19.1 OSI网络通信模型和TCP/IP协议簇
        19.1.1 OSI开放系统互联参考模型
        19.1.2 TCP/IP协议簇体系结构
        19.1.3 socket网络编程接口
    19.2 IP地址、网络字节顺序和WinSock的地址表示方式
    19.2.1 IP地址和端口
    19.2.2 网络字节顺序
    19.2.3 WinSock的地址表示方式
    19.3 WinSock网络编程
        19.3.1 TCP网络编程的一般步骤
            1、服务器端
            2、客户端
        19.3.2 TCP服务器程序
        19.3.3 TCP客户端程序
        19.3.4 UDP编程
        19.3.5 P2P技术
    19.4 WinSock异步I/O模型
        19.4.1 阻塞模式多线程多客户端socket编程
        19.4.2 select模型
        19.4.3 WSAAsyncSelect模型
        19.4.4 WSAEventSelect模型
        19.4.5 Overlapped模型
        19.4.6 完成端口(Completion Port)模型
        19.4.7 深入介绍I/O完成端口
        19.4.8 深入介绍线程池
            1、以异步方式调用回调函数
            2、每隔一段时间调用一个回调函数
            3、当内核对象触发的时候调用一个回调函数
            4、当异步I/O请求完成的时候调用一个回调函数
            5、当回调函数返回时
            6、创建自己的线程池
            7、线程池清理组(Cleanup Group)
    19.5 IPHelper API和其他一些函数
        19.5.1 获取本地计算机的网络适配器信息
        19.5.2 其他一些函数
        19.5.3 校对时间程序
    19.6 系统网络连接的启用、禁用
    19.7 WinINet
        19.7.1 FTP服务器上文件和目录的操作
        19.7.2 HTTP服务器上的资源操作
            1、HTTP GET请求
            2、HTTP POST请求
第20章 其他常用编程知识
    20.1 快捷方式
    20.2 程序开机自动启动
        20.2.1 把程序的快捷方式写入开机自动启动程序目录
        20.2.2 创建任务计划实现开机自动启动
        20.2.3 创建系统服务实现开机自动启动
            1、实现一个系统服务管理器
            2、控制服务状态
            3、改变服务启动类型
            4、添加、删除服务
            5、编写服务程序
            6、突破Session 0隔离通过服务创建用户界面
    20.3 UAC用户账户控制
        20.3.1 自动提示用户提升权限
        20.3.2 通过ShellExecuteEx函数以管理员权限启动程序
        20.3.3 绕过UAC提权提示以管理员权限运行
    20.4 用户界面特权隔离(UIPI)
    20.5 窗口的查找与枚举
    20.6 实现任务栏通知区域图标与气泡通知
第21章 PE文件格式深入剖析
    21.1 DOS头(DOS MZ文件头和DOS Stub块)
    21.2 PE头(IMAGE_NT_HEADERS32结构)
    21.3 节表(节区信息结构IMAGE_SECTION_HEADER列表)
    21.4 64位可执行文件格式PE32+
    21.5 导入表
    21.6 导出表
    21.7 重定位表
    21.8 模拟PE加载器直接加载可执行文件到进程内存中执行
    21.9 线程局部存储表
    21.10 加载配置信息表
    21.11 资源表
    21.12 延迟加载导入表
    21.13 校验和与CRC
    21.14 64位程序中如何书写汇编代码(以获取CPUID为例)
    21.15 Detours-master库
        21.15.1 注入DLL的编写
        21.15.2 将注入DLL加载到目标进程中
        21.15.3 编辑可执行文件
    21.16 通过修改模块导入表中的IAT项来Hook API
    21.17 通过VS编写64位汇编程序
        21.17.1 64位汇编有关的基础知识
        21.17.2 通过VS编写64位汇编程序(Hello World)


回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

QQ|Archiver|手机版|小黑屋|Windows中文网 ( 鲁ICP备2021014210号 )

GMT+8, 2025-6-9 23:47 , Processed in 0.077598 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表