首页> 外文会议>International Conference on Information Security >Nightingale: Translating Embedded VM Code in x86 Binary Executables
【24h】

Nightingale: Translating Embedded VM Code in x86 Binary Executables

机译:夜莺:翻译x86二进制可执行文件中的嵌入式VM代码

获取原文

摘要

Code protection schemes nowadays adopt language embedding, a technique in which a customized language is built within a general-purpose one, often referred to as the host language, to obfuscate original code through transforming it into a customized form with which the analyst is not familiar. The transformed code is then interpreted by a so-called Embedded VM. This type of transformation does increase the cost of code comprehending and maintaining, and introduces extra runtime overhead. In this paper, we conduct an in-depth study on embedded VM based code protection and propose a de-obfuscation approach that aims to recover the original code form. Our approach first pinpoints the interpretation procedure and partitions handlers of the embedded VM, and then employs a VM-state based handler translating, which represents the VM-state-updated behaviors of handlers. Finally, the translated operations of each handler is optimized and transformed into host code. After this process, we can obtain a clear and runtime efficient code representation. We build Nightingale, a binary translation tool, to fulfil this de-obfuscation automatically with x86 binary executables. We test our approach on the latest commercial code obfuscators, embedded domain-specific languages and a set of home brewed obfuscation schemes. The results demonstrate that this kind of obfuscated code can be simplified with host language effectively.
机译:如今的代码保护方案采用语言嵌入,即一种在通用语言(通常称为宿主语言)中构建定制语言的技术,通过将原始代码转换成分析人员不熟悉的定制形式来对其进行模糊处理。然后,转换后的代码由所谓的嵌入式VM解释。这种类型的转换确实增加了代码理解和维护的成本,并引入了额外的运行时开销。在本文中,我们对基于嵌入式VM的代码保护进行了深入研究,并提出了一种旨在恢复原始代码形式的去混淆方法。我们的方法首先查明嵌入式VM的解释过程并划分处理程序,然后采用基于VM状态的处理程序转换,该处理程序表示处理程序的VM状态更新的行为。最后,优化每个处理程序的翻译操作并将其转换为宿主代码。完成此过程后,我们可以获得清晰且运行时有效的代码表示形式。我们构建了Nightingale(二进制翻译工具),以使用x86二进制可执行文件自动完成这种去混淆处理。我们在最新的商业代码混淆器,嵌入式领域特定的语言和一组自制的混淆方案上测试了我们的方法。结果表明,使用宿主语言可以有效地简化这种混淆代码。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号