• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

WYSINWYX: What You See Is Not What You eXecute (2009)

Cached

  • Download as a PDF

Download Links

  • [www.cs.wisc.edu]
  • [www.cs.wisc.edu]
  • [www.cs.wisc.edu]
  • [www.cs.wisc.edu]
  • [www.cs.wisc.edu]
  • [www.cs.wisc.edu]
  • [www.cs.wisc.edu]
  • [www.cs.wisc.edu]
  • [www.ida.liu.se]
  • [www.ida.liu.se]

  • Save to List
  • Add to Collection
  • Correct Errors
  • Monitor Changes
by Gogul Balakrishnan , Thomas Reps
Citations:33 - 7 self
  • Summary
  • Active Bibliography
  • Co-citation
  • Clustered Documents
  • Version History

BibTeX

@MISC{Balakrishnan09wysinwyx:what,
    author = {Gogul Balakrishnan and Thomas Reps},
    title = {WYSINWYX: What You See Is Not What You eXecute },
    year = {2009}
}

Bookmark

citeulike Connotea Bibsonomy Del.icio.us Digg Reddit

OpenURL

 

Abstract

Over the last seven years, we have developed static-analysis methods to recover a good approximation to the variables and dynamically-allocated memory objects of a stripped executable, and to track the flow of values through them. The paper presents the algorithms that we developed, explains how they are used to recover intermediate representations (IRs) from executables that are similar to the IRs that would be available if one started from source code, and describes their application in the context of program understanding and automated bug hunting. Unlike algorithms for analyzing executables that existed prior to our work, the ones presented in this paper provide useful information about memory accesses, even in the absence of debugging information. The ideas described in the paper are incorporated in a tool for analyzing Intel x86 executables, called CodeSurfer/x86. CodeSurfer/x86 builds a system dependence graph for the program, and provides a GUI for exploring the graph by (i) navigating its edges, and (ii) invoking operations, such as forward slicing, backward slicing, and chopping, to discover how parts of the program can impact other parts. To assess the usefulness of the IRs recovered by CodeSurfer/x86 in the context of automated bug hunting, we built a tool on top of CodeSurfer/x86, called Device-Driver Analyzer for x86

Citations

2605 Graph-based algorithms for Boolean function manipulation - Bryant - 1986
1635 Abstract Interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints - COUSOT, COUSOT - 1977
691 ATOM: A System for Building Customized Program Analys is Tools - Srivastava, Eustace - 1994
628 Interprocedural Slicing Using Dependence Graphs - Iorwitz, Reps, et al. - 1990
544 Systematic design of program analysis frameworks - COUSOT, COUSOT - 1979
520 H.: Construction of abstract state graphs with PVS - Graf, Saïdi - 1997
514 Bandera: Extracting finite-state models from Java source code - Corbett, Dwyer, et al. - 2000
488 L.J.: Symbolic model checking: 10 20 states and beyond - Burch, Clarke, et al. - 1992
482 Counterexample-Guided Abstraction Refinement for Symbolic Model Checking - Clarke, Grumberg, et al. - 2003
393 Computer-Aided Verification of Coordinating Processes: The Automata-Theoretic Approach - Kurshan - 1994
378 G.: Lazy abstraction - Henzinger, Jhala, et al. - 2002
375 Efficient ContextSensitive Pointer Analysis for C Programs - Wilson, Lam - 1995
315 Checking System rules using System-specific, Programmer-written Compiler Extensions - Engler, Chelf, et al. - 2000
314 A first step towards automated detection of buffer overrun vulnerabilities - Wagner, Foster, et al. - 2000
276 T.: Model checking Java programs using Java PATHFINDER - Havelund, Pressburger - 2000
273 Two approaches to interprocedural data flow analysis - SHARIR, PNUELI - 1981
258 Patterns in property specifications for finitestate verification - Dwyer, Avrunin, et al. - 1999
254 EEL: Machine-Independent Executable Editing - Larus, Schnarr - 1995
242 A static analyzer for finding dynamic programming errors. Software—Practice and Experience - Bush, Pincus, et al. - 2000
239 O.: Reachability analysis of pushdown automata: Application to model-checking - Bouajjani, Esparza, et al. - 1997
224 ESP: Path-sensitive program verification in polynomial time - Das, Lerner, et al. - 2002
215 Secure Execution via Program Shepherding - KIRIANSKY, BRUENING, et al.
199 An Empirical Study of Operating Systems Errors - Chou, Yang, et al. - 2001
194 Bebop: A symbolic model checker for boolean programs - Ball, Rajamani
192 Improving the Reliability of Commodity Operating Systems - Swift, Bershad, et al. - 2003
178 MOPS: An infrastructure for examining security properties of software - Chen, Wagner - 2002
162 K.L.: Abstractions from proofs - Henzinger, Jhala, et al. - 2004
141 Translation validation for an optimizing compiler - Necula
136 A static analyzer for large safety-critical software - Blanchet, Cousot, et al. - 2003
125 R.: Static determination of dynamic properties of programs - Cousot, Cousot - 1976
119 Thorough Static Analysis of Device Drivers - Ball, Buonimova, et al. - 2006
114 The SLAM Toolkit - Ball, Rajamani - 2001
112 Interprocedural side-effect analysis in linear time - Cooper, Kennedy
106 Translation validation - Pnueli, Siegel, et al. - 1998
100 A direct symbolic approach to model checking pushdown systems - Finkel, Willems, et al. - 1997
100 Cssv: Towards a realistic tool for statically detecting all buffer overflows - Dor, Rodeh, et al. - 2003
100 Symbolic bounds analysis for pointers, array indices, and accessed memory re - Rugina, Rinard
98 Lackwit: A program understanding tool based on type inference - O’Callahan, Jackson - 1997
96 Efficient chaotic iteration strategies with widenings - Bourdoncle - 1993
96 Vulcan binary transformation in a distributed environment - Edwards, Vo, et al. - 2001
91 Verication of real-time systems using linear relation analysis - Halbwachs, Proy, et al. - 1997
90 Analyzing Memory Accesses in x86 Executables - Balakrishnan, Reps
90 Recovering device drivers - Swift, Annamalai, et al. - 2006
90 Reliable and Precise WCET Determination for a Real-Life Processor - Ferdinand, Heckmann, et al. - 2001
87 Systems for late code modification - Wall - 1992
79 Incremental Context-Dependent Analysis for Language-Based Editors - Reps, Teitelbaum, et al. - 1983
78 Weighted pushdown systems and their application to interprocedural dataflow analysis - Reps, Schwoon, et al.
75 Symbolic debugging of optimized code - Hennessy - 1982
67 Pointer analysis: Haven’t we solved this problem yet - Hind - 2001
65 Automating mimicry attacks using static binary analysis - Kruegel, Kirda, et al. - 2005
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University