我知道在 x86 上,INT 1
用于单步执行并INT 3
用于设置断点,而其他一些中断(对于 Linux 通常为 0x80,对于 Windows 为 0x2E)用于系统调用。
如果一段恶意软件挂钩中断描述符表 (IDT) 并替换其自身INT 1
和INT 3
执行类似系统调用的功能的处理程序,我如何使用调试器来跟踪其执行情况?还是我坚持使用静态分析工具?
我知道在 x86 上,INT 1
用于单步执行并INT 3
用于设置断点,而其他一些中断(对于 Linux 通常为 0x80,对于 Windows 为 0x2E)用于系统调用。
如果一段恶意软件挂钩中断描述符表 (IDT) 并替换其自身INT 1
和INT 3
执行类似系统调用的功能的处理程序,我如何使用调试器来跟踪其执行情况?还是我坚持使用静态分析工具?
我建议将此作为解决方案http://accessroot.com/arteam/site/download.php?view.185,因为我在其中一个破解版中遇到了类似的问题。我所做的是为 SoftICE 编写自己的钩子,以绕过 int 3 和 int 1 的 ring0 钩子。可能对您的问题有用。有趣的部分是“SoftICE 来拯救”。