IDA静态分析-使用记录
IDA 9.0使用记录打开项目sys打开使用打开文件寻找 IOCTL 步骤寻找 DriverEntry初始为反汇编IDA View视图按下 G 键查找 DriverEntry按下 F5 查看伪代码寻找设备创建与通信接口IoCreateDevice打开 importcrtl f 搜索IoCreateDevice/IoCreateDeviceSecure 并选中按下 x 查看调用双击任意一条并 F5 查看伪代码找到DriverObject-MajorFunction[14] (PDRIVER_DISPATCH)sub_140001540;。在 Windows 驱动开发中索引 14 (0xE) 对应的正是IRP_MJ_DEVICE_CONTROL3. 深入 IOCTL 处理逻辑双击打开MajorFunction[0](IRP_MJ_CREATE)这是处理CreateFile请求的函数a1 对应的是 PDEVICE_OBJECT (设备对象)a2。 请求包没有任何检查;并且没有找到显式ACL(Access Control List:访问控制列表)任何用户无条件打开设备并发送 IOCTL双击打开MajorFunction[14]查看0x22201C分支:以及其子函数判断:该函数封装了 ZwOpenProcess 和 ZwTerminateProcess。这意味着驱动程序提供了一个“结束进程”的服务。在内核层驱动程序拥有 SYSTEM 权限可以无视大部分应用层的权限限制