Application Programming Interface,简称API函数。
主要是存放在C:\WINDOWS\system32下面所有的dll
几个重要的DLL
- Kernel32.dll:最核心的功能模块,比如管理内存、进程和线程相关的函数等…
- User32.dll:是Windows用户界面相关应用程序接口,如创建窗口和发送消息等.
- GDI32.dll:全称是Graphical Device Interface(图形设备接口),包含用于画图和显示文本的函数比如要显示一个程序窗口,就调用了其中的函数来画这个窗口.
- Ntdil.dll:大多数API都会通过这个DLL进入内核(0环).
绝大多数的api都是在0环实现的(极少数是在3环),3环只是提供的一个接口
下面我们来看看ReadProcessMemory这个api函数
打开IDA:C:\WINDOWS\system32\Kernel32.dll拖进去,Alt+T搜索ReadProcessMemory
参数压栈后它调用了另外一个函数,返回结果就是eax,小于0的话跳到下面这
那个Call是BaseSetLastNTError函数设置完错误号清0eax又跳回去