Windows核心编程,大体上包括以下方面:
1、文件、驱动器和目录操作,例如创建、打开、读写文件,拷贝和移动文件,内存映射文件,监视目录变化,异步I/O;
2、内存管理,虚拟内存与堆内存的分配与释放,内存保护;
3、多线程编程,线程间同步,线程间通信;
4、进程,创建进程,进程间通信,进程枚举,进程调试;
5、剪贴板,通过剪贴板进行进程间通信 ,监视剪贴板的内容变化;
6、静态、动态链接库,线程局部存储,Windows钩子,各种DLL注入技术,Shadow API,Hook API;
7、注册表和INI配置文件;
8、Windows异常处理,例如SEH结构化异常处理,VEH向量化异常处理,UEF顶层未处理异常过滤器,VCH向量化继续处理,异常处理在反调试技术中的应用;
9、WinSock网络编程,各种异步I/O模型,线程池技术,WinINet;
10、系统服务程序的编写,UAC用户账户控制,用户界面特权隔离(UIPI);
11、可选的,如果对逆向工程感兴趣,还应该学习PE文件格式。
关于学习。首先,必须学好C语言,熟悉基本语法和一些数据结构,了解一些常用的C标准库函数(特别是字符串处理)。
具备C语言基础以后,可以开始着手学习Windows界面编程的东西,例如Windows窗口程序的编写,GDI绘图,键盘与鼠标,计时器,程序资源的添加,位图,各种子窗口控件,普通对话框,通用对话框等。
核心编程的内容比较丰富,可以按需学习。相关书籍推荐是《深入浅出Windows API程序设计》上册编程基础篇和下册核心编程篇。
软件调试是程序员永恒的话题,具备一定的编程基础以后,推荐阅读《软件调试 第2版》。
1、文件、驱动器和目录操作,例如创建、打开、读写文件,拷贝和移动文件,内存映射文件,监视目录变化,异步I/O;
2、内存管理,虚拟内存与堆内存的分配与释放,内存保护;
3、多线程编程,线程间同步,线程间通信;
4、进程,创建进程,进程间通信,进程枚举,进程调试;
5、剪贴板,通过剪贴板进行进程间通信 ,监视剪贴板的内容变化;
6、静态、动态链接库,线程局部存储,Windows钩子,各种DLL注入技术,Shadow API,Hook API;
7、注册表和INI配置文件;
8、Windows异常处理,例如SEH结构化异常处理,VEH向量化异常处理,UEF顶层未处理异常过滤器,VCH向量化继续处理,异常处理在反调试技术中的应用;
9、WinSock网络编程,各种异步I/O模型,线程池技术,WinINet;
10、系统服务程序的编写,UAC用户账户控制,用户界面特权隔离(UIPI);
11、可选的,如果对逆向工程感兴趣,还应该学习PE文件格式。
关于学习。首先,必须学好C语言,熟悉基本语法和一些数据结构,了解一些常用的C标准库函数(特别是字符串处理)。
具备C语言基础以后,可以开始着手学习Windows界面编程的东西,例如Windows窗口程序的编写,GDI绘图,键盘与鼠标,计时器,程序资源的添加,位图,各种子窗口控件,普通对话框,通用对话框等。
核心编程的内容比较丰富,可以按需学习。相关书籍推荐是《深入浅出Windows API程序设计》上册编程基础篇和下册核心编程篇。
软件调试是程序员永恒的话题,具备一定的编程基础以后,推荐阅读《软件调试 第2版》。