symMMU: symbolically executed runtime libraries for symbolic memory access.

Anthony Romano,Dawson R. Engler

ASE(2014)

引用 8|浏览31
暂无评分
摘要
ABSTRACTSymbolic execution calls for specialized address translation. Unlike a pointer on a traditional machine model, which corresponds to a single address, a symbolic pointer may represent multiple feasible addresses. A symbolic pointer dereference manipulates symbolic state, potentially submitting many theorem prover requests in the process. Hence, design and management of symbolic accesses critically affects symbolic executor performance, complexity, and completeness. We demonstrate a symbolic execution extension, the symMMU, which separates access dispatch mechanism from policy by servicing memory accesses with symbolically executed runtime software handlers. This runtime code concisely represents access policies including pointer concretization, address forking, and symbolic indexing. These policies are competitive with a baseline hard-coded memory policy. Furthermore, the symMMU cleanly supports handlers for profiling, heap analysis, and demand allocated symbolic buffers. In practice, the symMMU flags hardware-validated bugs for over a thousand Linux program binaries.
更多
查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要