论文标题

机器代码的生成扩展生成器

A Generating-Extension-Generator for Machine Code

论文作者

Vaughn, Michael, Reps, Thomas

论文摘要

出于安全和绩效目的“解密”计划的问题开始引起人们的关注。在许多环境中,特别感兴趣的是将商品现成的商品(COTS)软件解散,该软件最常见于最终用户作为剥离的二进制文件(即,尚无源代码或符号表/调试信息都没有可用)。为此,我们创建了一个名为Genxgen [MC]的系统,该系统专门研究了剥离的二进制文件。 解散问题的许多方面可以通过有关部分评估的文献中的技术来解决。但是,将这种技术应用于现实世界的计划,尤其是被剥离的二进制文件,涉及非平凡的国家管理操纵,这些操纵从未在以前的系统中以完全令人满意的方式解决。特别是,部分评估者需要能够(i)保存和恢复任意程序状态,(ii)确定程序状态是否等于较早出现的程序状态。此外,要专门化剥离的二进制文件,该系统还必须能够处理由记忆组成的程序状态,这些记忆是在标准的粗糙划分之外未分化为堆栈,堆和全局数据的区域的未分化的。 本文在计划专业人士中提出了一种新的国家管理方法。该技术已纳入Genxgen [MC],这是一种用于生成机器代码生成扩展的新工具。我们的实验表明,我们发行的解决方案(i)大大降低了表示程序状态所需的空间,而我们的发行解决方案(ii)大大提高了制作专业程序的时间(高达13,000倍的加速)。

The problem of "debloating" programs for security and performance purposes has begun to see increased attention. Of particular interest in many environments is debloating commodity off-the-shelf (COTS) software, which is most commonly made available to end users as stripped binaries (i.e., neither source code nor symbol-table/debugging information is available). Toward this end, we created a system, called GenXGen[MC], that specializes stripped binaries. Many aspects of the debloating problem can be addressed via techniques from the literature on partial evaluation. However, applying such techniques to real-world programs, particularly stripped binaries, involves non-trivial state-management manipulations that have never been addressed in a completely satisfactory manner in previous systems. In particular, a partial evaluator needs to be able to (i) save and restore arbitrary program states, and (ii) determine whether a program state is equal to one that arose earlier. Moreover, to specialize stripped binaries, the system must also be able to handle program states consisting of memory that is undifferentiated beyond the standard coarse division into regions for the stack, the heap, and global data. This paper presents a new approach to state management in a program specializer. The technique has been incorporated into GenXGen[MC], a novel tool for producing machine-code generating extensions. Our experiments show that our solution to issue (i) significantly decreases the space required to represent program states, and our solution to issue (ii) drastically improves the time for producing a specialized program (as much as 13,000x speedup).

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源