|
Research
For my Ph.D. dissertation, I worked on static analysis tools for
programs without source code, with emphasis on security aspects like
detecting buffer overruns in binaries, understanding possibly
malicious programs (web-plugins, viruses, trojans, ...). Specifically,
I developed techniques to obtain an intermediate representation(IR)
similar to the IR of a compiler's backend for a given x86 binary
executable. These techniques have been implemented as part of
CodeSurfer/x86, a prototype tool for browsing ("surfing"), inspecting,
and analyzing x86 executables. As a case study, I used CodeSurfer/x86
to find bugs in Windows device drivers.
Thesis
Papers
- Balakrishnan, G., Sankaranarayanan, S., Ivancic, F., and Gupta,
A., Refining the Control Structure of Loops using Static Analysis,
EMSOFT 2009 (to appear).
- Balakrishnan, G. and Ganai, M., PED:
Proof-guided Error Diagnosis by Triangulation of Program Error
Causes, In Proc. of Software Engineering and Formal Methods
(SEFM), Cape Town, South Africa, Nov 2008. (to appear)
- Balakrishnan, G., Sankaranarayanan, S., Ivancic, F., Wei, O., and
Gupta, A., SLR: Path-Sensitive Analysis Through Infeasible-Path
Detection and Syntactic-Language Refinement. In Proc. Static
Analysis Symposium (SAS), Jul 2008.
-
Balakrishnan G. and Reps, T., Analyzing
stripped device-driver executables.
In Proc. Tools and
Algorithms for the Construction and Analysis of Systems (TACAS),
Budapest, Hungary, Apr. 2008.
-
Balakrishnan G. and Reps, T., Recency-abstraction for heap-allocated
storage.
In Proc. 13th Static Analysis Symposium (SAS),
Aug. 2006.
-
Balakrishnan, G., Reps, T., Melski, D., and Teitelbaum, T.,
WYSINWYX: What You
See Is Not What You eXecute.
In Proc. IFIP Working Conference on Verified Software: Theories,
Tools, Experiments, Zurich, Switzerland (VSTTE), Oct. 10-13, 2005.
-
Balakrishnan, G., Reps, T., Kidd, N., Lal, A., Lim, J., Melski, D.,
Gruian, R., Yong, S., Chen, C.-H., and Teitelbaum, T., Model checking x86 executables with
CodeSurfer/x86 and WPDS++, (tool-demonstration paper). In
Proc. Computer Aided Verification (CAV), Jul. 2005.
- Lal, A., Reps, T., and Balakrishnan, G., Extended weighted pushdown
systems. In Proc. Conf. on Computer Aided Verification (CAV),
Jul. 2005.
- Balakrishnan, G., Gruian, R., Reps, T. and Teitelbaum, T. CodeSurfer/x86 - A Platform for Analyzing
x86 Executables (Tool Demonstration Paper). In Proc. Conf. on
Compiler Construction (CC), Apr. 2005.
- Balakrishnan, G. and Reps, T. Analyzing memory accesses in x86
executables. In Proc. Conf. on Compiler Construction (CC),
Apr. 2004. [Won the EAPLS 2004 best paper award]
Invited Papers
- Reps, T. and Balakrishnan, G., Improved Memory-Access
Analysis for x86 Executables. In Proc. Compiler Construction,
Budapest, Hungary, Apr 2008 (to appear). [Paper accompanying a
unifying invited talk at ETAPS 08.]
- Balakrishnan, G. and Reps, T., DIVINE: DIscovering Variables IN
eXecutables. In Proc. Conf. on Verification Model Checking and
Abstract Interpretation (VMCAI), (Nice, France, Jan 14-17, 2007).
- Reps, T., Balakrishnan, G., and Lim, J. Intermediate-representation recovery
from low-level code. In Proc. Workshop on Partial Evaluation and Program
Manipulation (PEPM), (Charleston, SC, Jan. 9-10, 2006).
- Reps, T., Balakrishnan, G., Lim, J., and Teitelbaum, T.,
Next-Generation Platform for Analyzing Executables. In Proc. 3rd
Asian Symposium on Programming Languages and Systems, (Tsukuba, Japan, Nov.
3-5, 2005).
Reprinted In Collections
-
Reps, T., Balakrishnan, G., Lim, J., and Teitelbaum, T.,
Next-Generation Platform for Analyzing Executables. In Proc. of the
ARO-DHS Malware Detection Workshop, (Arlington, VA, Aug 10-11,
2005), Advances in Information Security series,
Springer-Verlag.
(Reprinted from Proc. 3rd Asian Symposium on Programming Languages and Systems,
Tsukuba, Japan, Nov. 3-5, 2005).
Other publications and Reports
-
Balakrishnan, G., Reps, T., Kidd, N., Lal, A., Lim, J., Melski, D., Gruian, R.,
Yong, S., Chen, C.-H., and Teitelbaum, T., Model checking x86 executables with
CodeSurfer/x86 and WPDS++. In Proc. Workshop on the Evaluation of Software
Defect Detection Tools, June 2005. [Co-located with PLDI05.]
ACM mandated notice: The documents distributed by this
server have been provided by the contributing author(s) as a means to
ensure timely dissemination of scholarly and technical work on a
non-commercial basis. Copyright and all rights therein are maintained
by the authors or by other copyright holders, notwithstanding that
they have offered their works here electronically. It is understood
that all persons copying this information will adhere to the terms and
constraints invoked by each author's copyright. These works may not be
reposted without the explicit permission of the copyright holder.
|