|
ABSTRACT
The goal of our work is to create tools that an analyst can use to understand the workings of COTS components, plugins, mobile code, and DLLs, as well as memory snapshots of worms and virus-infected code. This paper describes how static analysis provides techniques that can be used to recover intermediate representations that are similar to those that can be created for a program written in a high-level language.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
PREfast with driver-specific rules, October 2004. WHDC, Microsoft Corp., http://www.microsoft.com/whdc/devtools/tools/PREfastdrv.mspx.
|
| |
2
|
|
| |
3
|
W. Backes. Programmanalyse des XRTL Zwischencodes. PhD thesis, Universitaet des Saarlandes, 2004. (In German.).
|
| |
4
|
G. Balakrishnan and T. Reps. Analyzing memory accesses in x86 executables. In CC, 2004.
|
| |
5
|
G. Balakrishnan and T. Reps. Recency-abstraction for heap-allocated storage. TR 1548, UW-Madison, December 2005.
|
| |
6
|
G. Balakrishnan and T. Reps. Recovery of variables and heap structure in x86 executables. TR 1533, UW-Madison, 2005.
|
| |
7
|
G. Balakrishnan, T. Reps, D. Melski, and T. Teitelbaum. WYSINWYX: What You See Is Not What You eXecute. In VSTTE, 2005.
|
| |
8
|
|
| |
9
|
J. Bergeron, M. Debbabi, J. Desharnais, M. M. Erhioui, Y. Lavoie, and N. Tawbi. Static detection of malicious code in executable programs. Int. J. of Req. Eng., 2001.
|
| |
10
|
|
 |
11
|
Ahmed Bouajjani , Javier Esparza , Tayssir Touili, A generic approach to the static analysis of concurrent programs with procedures, Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.62-73, January 15-17, 2003, New Orleans, Louisiana, USA
|
| |
12
|
|
| |
13
|
H. Chen, D. Dean, and D. Wagner. Model checking one million lines of C code. In NDSS, 2004.
|
 |
14
|
|
| |
15
|
C. Cifuentes and A. Fraboulet. Interprocedural data flow recovery of high-level language code from assembly. TR 421, U. Queensland, 1997.
|
| |
16
|
|
| |
17
|
|
| |
18
|
CodeSurfer, GrammaTech, Inc. "http://www.grammatech.com".
|
 |
19
|
|
 |
20
|
James C. Corbett , Matthew B. Dwyer , John Hatcliff , Shawn Laubach , Corina S. Păsăreanu , Robby , Hongjun Zheng, Bandera: extracting finite-state models from Java source code, Proceedings of the 22nd international conference on Software engineering, p.439-448, June 04-11, 2000, Limerick, Ireland
[doi> 10.1145/337180.337234]
|
 |
21
|
|
 |
22
|
|
 |
23
|
Saumya Debray , Robert Muth , Matthew Weippert, Alias analysis of executable code, Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.12-24, January 19-21, 1998, San Diego, California, United States
[doi> 10.1145/268946.268948]
|
 |
24
|
Peter Harry Eidorff , Fritz Henglein , Christian Mossin , Henning Niss , Morten Heine Sørensen , Mads Tofte, AnnoDomini: from type theory to Year 2000 conversion tool, Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.1-14, January 20-22, 1999, San Antonio, Texas, United States
[doi> 10.1145/292540.292543]
|
| |
25
|
D. R. Engler, B. Chelf, A. Chou, and S. Hallem. Checking system rules using system-specific, programmer-written compiler extensions. In OSDI. 2000.
|
| |
26
|
Bolei Guo , Matthew J. Bridges , Spyridon Triantafyllis , Guilherme Ottoni , Easwaran Raman , David I. August, Practical and Accurate Low-Level Pointer Analysis, Proceedings of the international symposium on Code generation and optimization, p.291-302, March 20-23, 2005
[doi> 10.1109/CGO.2005.27]
|
| |
27
|
K. Havelund and T. Pressburger. Model checking Java programs using Java PathFinder. STTT, 2(4), 2000.
|
 |
28
|
Thomas A. Henzinger , Ranjit Jhala , Rupak Majumdar , Grégoire Sutre, Lazy abstraction, Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.58-70, January 16-18, 2002, Portland, Oregon
|
 |
29
|
|
| |
30
|
M. Howard. Some bad news and some good news. October 2002. MSDN, Microsoft Corp.
|
| |
31
|
IDAPro disassembler, http://www.datarescue.com/idabase/.
|
| |
32
|
N. Kidd, T. Reps, D. Melski, and A. Lal. WPDS++; A C++ library for weighted pushdown systems, 2004. http://www.cs.wisc.edu/wpis/wpds++/.
|
| |
33
|
A. Lal, T. Reps, and G. Balakrishnan. Extended weighted pushdown systems. In CAV, 2005.
|
 |
34
|
|
| |
35
|
M. Müller-Olm and H. Seidl. Analysis of modular arithmetic. In ESOP, 2005.
|
| |
36
|
A. Mycroft. Type-based decompilation. In ESOP, 1999.
|
 |
37
|
G. Ramalingam , John Field , Frank Tip, Aggregate structure identification and its application to program analysis, Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.119-132, January 20-22, 1999, San Antonio, Texas, United States
[doi> 10.1145/292540.292553]
|
| |
38
|
T. Reps, G. Balakrishnan, J. Lim, and T. Teitelbaum. A next-generation platform for analyzing executables. In APLAS, 2005.
|
| |
39
|
T. Reps, S. Schwoon, and S. Jha. Weighted pushdown systems and their application to interprocedural dataflow analysis. In SAS, 2003.
|
| |
40
|
|
| |
41
|
|
| |
42
|
M. Sharir and A. Pnueli. Two approaches to interprocedural data flow analysis. In Program Flow Analysis: Theory and Applications, chapter 7. Prentice-Hall, Englewood Cliffs, NJ, 1981.
|
| |
43
|
A. Srivastava, A. Edwards, and H. Vo. Vulcan: Binary transformation in a distributed environment. TR 2001--50, Microsoft Research, 2001.
|
 |
44
|
|
| |
45
|
D. Wagner, J. Foster, E. Brewer, and A. Aiken. A first step towards automated detection of buffer overrun vulnerabilities. In NDSS, 2000.
|
| |
46
|
D. W. Wall. Systems for late code modification. In R. Giegerich and S. L. Graham, editors, Code Generation - Concepts. Tools, Techniques, pages 275--293. Springer-Verlag, 1992.
|
| |
47
|
|
 |
48
|
|
|