【2021.04.25】API函数的调用过程(Ring3)

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环程序恶意挂钩。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值