先来记录基本概念:
API:就是可被外界调用的接口函数。
SDK:就是编程用的工具包,厂家提供的比如JAVA的SDK。
MFC:就是个框架,是对WindowsAPI和C++的封装。
Windows API分类
提供对Windows系统下基础资源的访问接口
1.基础服务类
*文件系统操作(File System) 比如CreateFile(); OpenFile();这种对文件对进行读写,增删改查就是文件系统操作。
*外部设备 (device) 外部设备的打开关闭
*进程 (process) 进程的打开关闭( 进程其实代表一个空间,一个密封的盒子)
*线程 (thread) 线程的打开关闭(线程其实代表一个运行状态)注:进程(保存空间)和线程(保存状态)的不停切换可以实现多任务系统化
*注册列表(Windows registry) 其实就是Windows的一个配置表,用来修改操作系统的配置,这类的API是来做用来做注册表的增删改查动作。
*错误处理机制(error handing) 获取错误
特别注意:这些API都在kernel32.dll和advapi32.dll中。(上回编写的Shellcode就是调用了kernel32里面的API函数)。
2.图形设备接口(GDI)(Mark老师说差不多过时了)
输出图形内容到显示器,打印机和其他外部输出。主要用来自己画图,可以使用GDI
存在于GDI32.dll中
3.图形化用户界面(GUI)
*创建和管理屏幕和大多数基本控件,比如滚动条和按钮
*用来控制键盘的输入和输出,以及其他的和GUI有关的东西。
这些API在User32.dll当中
4.通用对话框链接库(Common Dialog Box Library)
*打开/保存文件的对话框、颜色对话框和字体对话框等
这些API在comdlg32.dll当中
5.通用控件链接库(Common Contorl Library)
*状态条
*进度条
*工具栏
*标签
这些API在Comctl32.dll中
6.Windows外壳(Windows Shell)
可以进行一些无界面的操作,很强大 啥都可以做
API在shell32.dll中,被归结到User Interface API之下
7.网络服务(Network Services)
为了访问和操作系统提供的多种网络功能提供接口。