Symbolic Execution and Debugging Synchronization

06/30/2020
by   Andrea Fioraldi, et al.
0

In this thesis, we introduce the idea of combining symbolic execution with dynamic analysis for reverse engineering. Differently from DSE, we devise an approach where the reverse engineer can use a debugger to drive and inspect a concrete execution engine of the application code and then, when needed, transfer the execution into a symbolic executor in order to automatically identify the input values required to reach a target point in the code. After that, the user can also transfer back the correct input values found with symbolic execution in order to continue the debugging. The synchronization between a debugger and a symbolic executor can enhance manual dynamic analysis and allow a reverser to easily solve small portions of code without leaving the debugger. We implemented a synchronization mechanism on top of the binary analysis framework angr, allowing for transferring the state of the debugged process to the angr environment and back. The backend library is debugger agnostic and can be extended to work with various frontends. We implemented a frontend for the IDA Pro debugger and one for the GNU Debugger, which are both widely popular among reverse engineers.

READ FULL TEXT

page 39

page 40

research
11/18/2020

Sydr: Cutting Edge Dynamic Symbolic Execution

The security development lifecycle (SDL) is becoming an industry standar...
research
05/11/2023

REMaQE – Reverse Engineering Math Equations from Executables

Cybersecurity attacks against industrial control systems and cyber-physi...
research
08/06/2022

MetaEmu: An Architecture Agnostic Rehosting Framework for Automotive Firmware

In this paper we present MetaEmu, an architecture-agnostic emulator synt...
research
12/27/2019

TASE: Reducing latency of symbolic execution with transactional memory

We present the design and implementation of a tool called TASE that uses...
research
09/08/2022

Presentation: SymDefFix – Sound Automatic Repair Using Symbolic Execution

In this presentation, we introduce our constraint-based repair approach,...
research
08/05/2019

How to Kill Symbolic Deobfuscation for Free; or Unleashing the Potential of Path-Oriented Protections

Code obfuscation is a major tool for protecting software intellectual pr...
research
03/28/2020

liOS: Lifting iOS apps for fun and profit

Although iOS is the second most popular mobile operating system and is o...

Please sign up or login with your details

Forgot password? Click here to reset