我想知道,是否有办法获得 r0 代码的代码覆盖率?PIN 工具是为用户模式设计的,如果我是对的。虽然我在 twitter 上看到有人提到过这样的工具,但这就是我确定它存在的原因。
我如何获得 ring0 代码覆盖率?
逆向工程
内核模式
2021-06-15 09:35:29
2个回答
如果您只想进行简单的分析,例如代码覆盖率或路径覆盖率,请考虑使用动态仿真框架,例如 Bochs 或 QEMU。这比 Jason 的解决方案的优势在于它不需要用户提前提供地址(这是不可判定的,并且错误地放置单个断点可能会损坏代码或数据并导致系统崩溃),而是发现这样的在目标执行时动态寻址。
您所指的工具可能是BochsPwn。
假设您在谈论 Windows,侵入性最小的方法可能是编写一个 IDC 脚本来静态生成所有基本块地址的列表,并编写一个 WinDbg 脚本,在这些地址中的每一个上设置单次记录断点。然后,您可以运行 WinDbg 脚本并将断点日志与完整的基本块列表进行比较,以查看哪些基本块已执行,哪些未执行。
其它你可能感兴趣的问题