Automated Exploit Generation (AEG) is a well-known difficult task, especially for heap vulnerabilities. Previous works first detected heap vulnerabilities and then searched for exploitable states by using symbolic execution and fuzzing techniques on binary programs. However, it is not always easy to discovery bugs using fuzzing or symbolic technologies and solvable for internal overflow of heap objects. In this paper, we present a solution DEPA to detect exploit primitives based on primitive-crucial-behavior model for heap vulnerabilities. The core of DEPA contains two novel techniques, 1) primitive-crucial-behavior identification through pointer dependence analysis, and 2) exploit primitive determination method which includes triggering both vulnerabilities and exploit primitives. We evaluate DEPA on eleven real-world CTF(capture the flag) programs with heap vulnerabilities and DEPA can discovery arbitrary write and arbitrary jump exploit primitives for ten programs except for program multi-heap. Results showed that primitive-crucial-behavior identification and determining exploit primitives are accurate and effective by using our approach. In addition, DEPA is superior to the state-of-the-art tools in determining exploit primitives for the heap object internal overflow
翻译:自动探索产生器(AEG)是一项众所周知的艰巨任务,特别是对于堆积脆弱性而言。 先前的工作首先通过在二进制程序上使用象征性执行和模糊技术,发现大量脆弱之处,然后通过在二进制程序上使用象征性执行和模糊技术,寻找可开发的状态,然而,使用模糊或象征性技术发现虫虫,并用于堆积物体的内部溢出,并非总容易发现故障。 在本文件中,我们提出了一个解决方案,以探测利用基于原始致命行为-行为能力模型的原始废物,特别是对于堆积脆弱之处。 DEPA的核心包含两种新颖技术:(1) 通过指针依赖分析,发现原始致命行为-行为识别,然后寻找可开发的状态。此外,DEPA还利用原始确定方法,包括触发脆弱性和开发原始生物。我们评估了11个真实世界的CTF(挂旗)程序,而DEPA可以发现任意书写和任意跳跃利用原始物质,但方案多层图除外。 研究结果表明,原始行为识别和确定利用原始物质是准确和有效的。此外,DEPEPA是用来确定原始用途工具的。此外,DEPAPA在确定原始用途中确定原始用途开发工具。