首页> 外文会议>2013 20th Working Conference on Reverse Engineering >Reconstructing program memory state from multi-gigabyte instruction traces to support interactive analysis
【24h】

Reconstructing program memory state from multi-gigabyte instruction traces to support interactive analysis

机译:从数GB的指令跟踪重构程序存储器状态以支持交互式分析

获取原文
获取原文并翻译 | 示例

摘要

Exploitability analysis is the process of attempting to determine if a vulnerability in a program is exploitable. Fuzzing is a popular method of finding such vulnerabilities, in which a program is subjected to millions of generated program inputs until it crashes. Each program crash indicates a potential vulnerability that needs to be prioritized according to its potential for exploitation. The highest priority vulnerabilities need to be investigated by a security analyst by re-executing the program with the input that caused the crash while recording a trace of all executed assembly instructions and then performing analysis on the resulting trace. Recreating the entire memory state of the program at the time of the crash, or at any other point in the trace, is very important for helping the analyst build an understanding of the conditions that led to the crash. Unfortunately, tracing even a small program can create multimillion line trace files from which reconstructing memory state is a computationally intensive process and virtually impossible to do manually. In this paper we present an analysis of the problem of memory state reconstruction from very large execution traces. We report on a novel approach for reconstructing the entire memory state of a program from an execution trace that allows near realtime queries on the state of memory at any point in a program's execution trace. Finally we benchmark our approach showing storage and performance results in line with our theoretical calculations and demonstrate memory state query response times of less than 200ms for trace files up to 60 million lines.
机译:可利用性分析是尝试确定程序中的漏洞是否可利用的过程。模糊测试是一种发现此类漏洞的流行方法,其中程序要经受数百万个生成的程序输入,直到崩溃为止。每次程序崩溃都表明一个潜在的漏洞,需要根据其利用的潜力来确定优先级。安全分析师需要调查最高优先级的漏洞,方法是使用导致崩溃的输入重新执行程序,同时记录所有已执行的汇编指令的跟踪记录,然后对结果跟踪记录进行分析。在崩溃时或跟踪中的任何其他点上,重新创建程序的整个内存状态对于帮助分析人员了解导致崩溃的条件非常重要。不幸的是,即使跟踪一个小程序也可以创建数百万行的跟踪文件,从中重建内存状态是一个计算量很大的过程,实际上是无法手动完成的。在本文中,我们从非常大的执行轨迹分析了内存状态重建问题。我们报告了一种用于从执行跟踪中重构程序整个内存状态的新颖方法,该方法允许在程序执行跟踪中的任意点上对内存状态进行近乎实时的查询。最后,我们对显示存储和性能结果的方法进行了基准测试,以符合我们的理论计算,并演示了对于多达6000万行的跟踪文件,内存状态查询响应时间少于200ms。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号