1.API的调用过程(3环部分)

本文介绍了API调用的过程,重点关注Windows系统中的关键DLL文件,如Kernel32.dll、User32.dll和GDI32.dll。通过举例ReadProcessMemory函数,揭示了API如何通过Ntdll.dll进入内核(0环)并执行实际操作。作者还讨论了如何通过重写3环接口来防止API被hook,以提高程序安全性。
摘要由CSDN通过智能技术生成

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又跳回去

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值