WindowsAPI

  • Application Programming Interface,简称API函数。
  • Windows有多少个API?主要是存放在 C:\WINDOWS\System32 文件夹下所有的dll。
  • 几个重要的DLL如下:
  1. Kernel32.dll:最核心的功能模块,比如管理内存、进程和线程相关的函数等。
  2. User32.dll:是Windows用户界面相关应用程序接口,如创建窗口和发送消息等。
  3. GDI32.dll:全称是Graphical Device Interface(图形设备接口),包含用于画图和显示文本的函数。比如要显示一个程序窗口,就调用了其中的函数来画窗口。
  4. Ntdll.dll:大多数API都会通过这个DLL进入内核(Ring0)。

分析ReadProcessMemory

 

可以看到最后一张图中的代码只有短短几行,真正读取内存的函数是在0环实现的,在这里只是提供了一个接口给应用程序去调用。

mov eax, 0BAh //对应内核中的某个函数的编号

mov edx, 7FFE0300h //内存地址中存了一个值,这个值是一个函数,该函数决定了用什么方式进0环。

课后练习

分析并重写WriteProcessMemory函数的3环部分(不使用任何DLL,直接调用0环函数),并在代码中使用。

重写API的意义:自己实现API的3环部分,可以避免3环程序恶意挂钩。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐