我正在尝试分析一些 Windows 内核驱动程序。我想要实现的是完整的执行跟踪,从驱动程序入口到终点。驱动程序被高度虚拟化并包含多个反调试检查,因此使用 WinDbg 不是一种选择。我曾尝试将 VMWare gdb 存根与 IDA 连接,但跟踪似乎不起作用,它挂起,甚至几个小时都不够。你有什么想法如何以最简单的方式做到这一点吗?
分析 Windows 内核驱动程序
逆向工程
艾达
视窗
调试
风袋
核心
2021-07-11 05:29:22
2个回答
它并非完全针对此目的,但您可能可以基于Bochspwn制作一些东西:
Bochspwn Reloaded 是 Bochs IA-32 模拟器的检测模块,类似于 2013 年的原始 Bochspwn 项目。它执行客户操作系统的内核地址空间的污点跟踪,以检测未初始化的内核堆栈/堆内存的泄露以用户模式和其他数据接收器。
现在,您可能可以使用Icebox(和相关项目)来实现对驱动程序的所需级别的自省。
我不确定这是否会产生您希望的结果,但它建立在我在 2013 年 VirusBulletin 会议上首次遇到的想法的基础上。整个论文可以在这里找到。Icebox 似乎建立在相同的原理上并且完全是 FLOSS,而 Willems 和 Hund 的原始 CXPInspector 从来没有(据我所知)。他们最初的工作被商业化为今天称为 VMRay 的东西。
这并不能准确地追踪你将得到的结果,但开创性工作的作者在会议上评论说他们经常设法确定对特定函数调用的特定页面访问,因此这种方法提供了比人们最初想象的更多的内省一瞥。
其它你可能感兴趣的问题