IDA静态分析-使用记录

📅 2026/8/2 1:42:58 👁️ 阅读次数 📝 编程学习
IDA静态分析-使用记录

IDA 9.0使用记录

打开项目sys

打开使用

打开文件


寻找 IOCTL 步骤

  1. 寻找 DriverEntry
  • 初始为反汇编(IDA View)视图,按下 G 键查找 DriverEntry

  • 按下 F5 查看伪代码

  1. 寻找设备创建与通信接口(IoCreateDevice)
  • 打开 import

  • crtl + f 搜索IoCreateDevice/IoCreateDeviceSecure 并选中按下 x 查看调用

  • 双击任意一条并 F5 查看伪代码

找到DriverObject->MajorFunction[14] = (PDRIVER_DISPATCH)sub_140001540;。在 Windows 驱动开发中,索引 14 (0xE) 对应的正是IRP_MJ_DEVICE_CONTROL
3. 深入 IOCTL 处理逻辑

  • 双击打开MajorFunction[0](IRP_MJ_CREATE)

这是处理CreateFile请求的函数,a1 对应的是 PDEVICE_OBJECT (设备对象)
a2。 请求包没有任何检查;并且没有找到显式ACL(Access Control List:访问控制列表),任何用户无条件打开设备并发送 IOCTL

  • 双击打开MajorFunction[14]
  • 查看0x22201C分支:

以及其子函数

判断:该函数封装了 ZwOpenProcess 和 ZwTerminateProcess。这意味着驱动程序提供了一个“结束进程”的服务。在内核层,驱动程序拥有 SYSTEM 权限,可以无视大部分应用层的权限限制