Sergey Bratus 和 Julian Bangert 在 Github 上的trapcc 项目声称,使用 x86 MMU 的图灵完备功能,代码可以使用单个指令(移动、零分支、递减)逃离虚拟机。它通过页面错误和双重错误来实现。我试图阅读论文,但似乎太令人费解了。这个想法可行吗?
虚拟机通过页面错误逃逸
逆向工程
虚拟机
2021-06-18 04:21:28
1个回答
事实上,他们根本没有声称要逃避任何虚拟机。但是,通过使用 MMU 故障处理程序机制来执行计算,他们希望使他们的程序封装变得不切实际。事实上,关键是找到意想不到的原语来执行计算,这样做只有少数虚拟机环境能够处理这样的特定程序。而且,即使他们这样做,虚拟机也由管理程序管理,管理程序可能会因处理此类程序所需的所有中断信号而不堪重负。
因此,事实上,他们提出了一种与 C(图灵完备)一样强大的编程方式,但在虚拟化环境中运行将非常乏味。
当然,这样做的目的是为了减缓程序在虚拟机中运行时的分析速度(这是为了避免动态分析的反调试技术)。
其它你可能感兴趣的问题