Binary code analysis and transformation
In security research, we are often confronted with the problem of securing third party code that is available only in binary form. This necessitates the development of analysis and instrumentation techniques that work on binaries. There are other significant reasons for working with binary rather than source code: the ability to support programs written in multiple source languages, and independence from compiler optimizations. (With binary code, "what you see is what you execute.")
Our research is concerned with developing robust and efficient instrumentation techniques for binaries. Our earlier work was concerned with binary transformations for defending against memory corruption attacks [35, 34]. More recently, we have been exploring the development of efficient taint analysis of binaries, and achieved a 3+ factor improvement in performance as compared to previous techniques [32]. Our continuing research is concerned with the development of robust and efficient disassembly techniques, static analysis and optimization of binaries, etc. Based on these techniques, we are developing binary instrumentation techniques for sandboxing, fault and attack containment, integrity protection, and intrusion detection.
Related Publications
- [1] Scalable, Sound, and Accurate Jump Table Analysis
- ,  and 
 ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA) October, 2024.
- [2] Accurate Disassembly of Complex Binaries Without Use of Compiler Metadata
- ,  and 
 ACM Architectural Support for Programming Languages and Operating Systems (ASPLOS) February, 2024.
- [3] SAFER: Efficient and Error-Tolerant Binary Instrumentation
- , ,  and 
 USENIX Security Symposium (USENIX Security) August, 2023.
- [4] Practical Fine-Grained Binary Code Randomization
- ,  and 
 Annual Computer Security Applications Conference (ACSAC) December, 2020. (Talk on YouTube).
- [5] On the Impact of Exception Handling Compatibility on Binary Instrumentation
- ,  and 
 Workshop on Forming an Ecosystem Around Software Transformation (FEAST) November, 2020.
- [6] A Study of Binary Instrumentation Techniques
 Research Proficiency Report (Stony Brook University) August, 2019.
- [7] Protecting COTS Binaries from Disclosure-guided Code Reuse Attacks
- ,  and 
 Annual Computer Security Applications Conference (ACSAC) December, 2017.
- [8] Function Interface Analysis: A Principled Approach for Function Recognition in COTS Binaries
-  and 
 Dependable Systems and Networks (DSN) June, 2017. (Supercedes SECLAB16-05, May 2016).
- [9] Memory corruption mitigation via hardening and testing
 PhD Dissertation (Stony Brook University) May, 2017.
- [10] NORAX: Enabling Execute-Only Memory for COTS Binaries on AArch64
- , , , , , ,  and 
 IEEE Symposium on Security and Privacy (IEEE S&P) May, 2017.
- [11] Function Recovery for COTS Binaries
 PhD Dissertation (Stony Brook University) May, 2017.
- [12] Extracting Instruction Semantics Via Symbolic Execution of Code Generators
-  and 
 ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE) November, 2016.
- [13] Lifting Assembly to Intermediate Representation: A Novel Approach Leveraging Compilers
-  and 
 ACM Architectural Support for Programming Languages and Operating Systems (ASPLOS) April, 2016.
- [14] Squeezing the Dynamic Loader For Fun And Profit
-  and 
 Technical Report (TR) December, 2015.
- [15] Code and Control Flow Integrity for COTS binaries: An Effective Defense Against Real-World ROP Attacks
-  and 
 Annual Computer Security Applications Conference (ACSAC) December, 2015.
- [16] A Principled Approach for ROP Defense
- ,  and 
 Annual Computer Security Applications Conference (ACSAC) December, 2015.
- [17] Static Binary Instrumentation with Applications to COTS Software Security
 PhD Dissertation (Stony Brook University) August, 2015.
- [18] Automatic Synthesis of Instruction Set Semantics
 PhD Dissertation (Stony Brook University) July, 2015.
- [19] Automatic Generation of Assembly to IR Translators Using Compilers
-  and 
 Workshop on Architectural and Microarchitectural Support for Binary Translation (AMAS-BT) February, 2015.
- [20] Checking Correctness of Code Generator Architecture Specifications
- ,  and 
 ACM/IEEE International Symposium on Code Generation and Optimization (CGO) February, 2015.
- [21] Towards More Usable Information Flow Policies for Contemporary Operating Systems
- ,  and 
 ACM Symposium on Access Control Models and Technologies (SACMAT) June, 2014.Honorable mention for Best paper .
- [22] Comprehensive Integrity Protection for Desktop Linux (Demo)
-  and 
 ACM Symposium on Access Control Models and Technologies (SACMAT) June, 2014.
- [23] Eternal War in Memory
- , ,  and 
 IEEE Security and Privacy Magazine (S&P Magazine) May, 2014.
- [24] A Platform for Secure Static Binary Instrumentation
- , ,  and 
 Virtual Execution Environments (VEE) March, 2014.
- [25] A Portable User-Level Approach for System-wide Integrity Protection
-  and 
 Annual Computer Security Applications Conference (ACSAC) December, 2013.
- [26] Control Flow Integrity for COTS Binaries
-  and 
 USENIX Security Symposium (USENIX Security) August, 2013.Best paper award! .
- [27] SoK: Eternal War in Memory
- , ,  and 
 IEEE Symposium on Security and Privacy (IEEE S&P) May, 2013.
- [28] Protecting Function Pointers in Binary
- , , , ,  and 
 ACM Symposium on Information, Computer and Communications Security (ASIACCS) May, 2013.
- [29] Practical Control Flow Integrity and Randomization for Binary Executables
- , , , , , ,  and 
 IEEE Symposium on Security and Privacy (IEEE S&P) May, 2013.
- [30] A Practical Technique for Containment of Untrusted Plug-ins
- , ,  and 
 Technical Report (TR) August, 2008.
- [31] On the Limits of Information Flow Techniques for Malware Analysis and Containment
- ,  and 
 Detection of Intrusions, Malware and Vulnerability Analysis (DIMVA) July, 2008. (Supercedes SECLAB07-03, November 2007).
- [32] Efficient Fine-Grained Binary Instrumentation with Applications to Taint-Tracking
- ,  and 
 ACM/IEEE International Symposium on Code Generation and Optimization (CGO) April, 2008.
- [33] Static Binary Analysis And Transformation For Sandboxing Untrusted Plugins
 Master's Thesis (Stony Brook University) August, 2007.
- [34] SELF: a Transparent Security Extension for ELF Binaries
- ,  and 
 New Security Paradigms Workshop (NSPW) August, 2003.
- [35] Address Obfuscation: An Efficient Approach to Combat a Broad Range of Memory Error Exploits
- ,  and 
 USENIX Security Symposium (USENIX Security) August, 2003.
- [36] Empowering mobile code using expressive security policies
- ,  and 
 New Security Paradigms Workshop (NSPW) September, 2002.



