Research

Binary Code Analysis

Binary code analysis aims to understand the structure and behavior of binary code. Analyzing binary code is worthwhile because the original source code and the resulting binary code can have different meanings due to compiler optimizations. The primary challenge in binary code analysis is the loss of high-level source code information during the compilation process.

Our lab is interested in the following research directions:

  • Building a binary code analysis framework
  • Developing foundational techniques for binary code analysis
  • Analyzing non-traditional architectures
  • Applying binary code analysis to real-world problems
  • Reverse engineering of neural networks

Fuzzing

Fuzzing, or fuzz testing, is an automated software testing technique that involves providing invalid, unexpected, or random data as inputs to software. Because of its effectiveness in discovering bugs and easy applicability, fuzzing has become a popular technique for software testing and security. The main challenge in fuzzing is to enhance the performance of fuzzers in terms of either testing effectiveness or efficiency.

Our lab has interests in the following research topics:

  • Suggesting novel techniques for building blocks of fuzzers
  • Devising new fuzzing techniques for specific domains
  • Incorporating machine learning techniques into fuzzing

Offensive Security

Based on the above research directions, our lab also have interests in offensive security, which automatically finds and exploits vulnerabilities in software systems. By doing so, our goal is to make software systems more secure to prevent and mitigate potential attacks.

  • Developing novel techniques for automatic vulnerability discovery
  • Devising new methods for automatic exploit generation
  • Realizing offensive security techniques through Capture-The-Flag (CTF) challenges