All Projects → andreafioraldi → Angrdbg

andreafioraldi / Angrdbg

Licence: bsd-2-clause
Abstract library to generate angr states from a debugger state

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Angrdbg

Linux-Kernel-Driver-Programming
Implementation of PCI drivers, kprobe, sysfs, devfs, sensor driver, miscdevices, synchronization
Stars: ✭ 43 (-12.24%)
Mutual labels:  debugger, synchronization
Alignmentduration
Lyrics-to-audio-alignement system. Based on Machine Learning Algorithms: Hidden Markov Models with Viterbi forced alignment. The alignment is explicitly aware of durations of musical notes. The phonetic model are classified with MLP Deep Neural Network.
Stars: ✭ 36 (-26.53%)
Mutual labels:  synchronization
Hxcpp Debugger
Visual Studio Code Debugger for Haxe/HXCPP applications
Stars: ✭ 18 (-63.27%)
Mutual labels:  debugger
Docker Compose Wait
A simple script to wait for other docker images to be started while using docker-compose
Stars: ✭ 945 (+1828.57%)
Mutual labels:  synchronization
Gdlv
GUI frontend for Delve
Stars: ✭ 935 (+1808.16%)
Mutual labels:  debugger
Ron Cxx
RON2.1 C++ implementation
Stars: ✭ 33 (-32.65%)
Mutual labels:  synchronization
Rsm
distributed computing toolkit in rust
Stars: ✭ 17 (-65.31%)
Mutual labels:  synchronization
Pytest Pudb
Pytest PuDB debugger integration
Stars: ✭ 45 (-8.16%)
Mutual labels:  debugger
Megasync
Easy automated syncing between your computers and your MEGA Cloud Drive
Stars: ✭ 975 (+1889.8%)
Mutual labels:  synchronization
Foundationsync
Synchronize User Profiles with Active Directory in SharePoint Foundation
Stars: ✭ 21 (-57.14%)
Mutual labels:  synchronization
Docker Cross
Cross debugger suite
Stars: ✭ 15 (-69.39%)
Mutual labels:  debugger
Picotrace
picotrace - system call process tracer
Stars: ✭ 26 (-46.94%)
Mutual labels:  debugger
Ansible Role Php Xdebug
Ansible Role - PHP Xdebug
Stars: ✭ 34 (-30.61%)
Mutual labels:  debugger
Moonsharp
An interpreter for the Lua language, written entirely in C# for the .NET, Mono, Xamarin and Unity3D platforms, including handy remote debugger facilities.
Stars: ✭ 926 (+1789.8%)
Mutual labels:  debugger
Vim Padre
Debugger plugin for VIM
Stars: ✭ 42 (-14.29%)
Mutual labels:  debugger
Ret Sync
ret-sync is a set of plugins that helps to synchronize a debugging session (WinDbg/GDB/LLDB/OllyDbg2/x64dbg) with IDA/Ghidra/Binary Ninja disassemblers.
Stars: ✭ 896 (+1728.57%)
Mutual labels:  debugger
Vscode Lldb
A native debugger extension for VSCode based on LLDB
Stars: ✭ 866 (+1667.35%)
Mutual labels:  debugger
Mu
A small, simple editor for beginner Python programmers. Written in Python and Qt5.
Stars: ✭ 960 (+1859.18%)
Mutual labels:  debugger
Copycat Action
©️ GitHub Action for copying files to other repositories
Stars: ✭ 48 (-2.04%)
Mutual labels:  synchronization
Javafx Webview Debugger
Full Featured Google Chrome Dev Tools to JavaFX WebView browser debugging.
Stars: ✭ 45 (-8.16%)
Mutual labels:  debugger

angrdbg

Abstract library to generate angr states from a debugger state

Works with both angr 7 and 8.

Install

pip install angrdbg

Windows

Before installing angrdbg you must install Visual C++ Redistributable Packages for Visual Studio 2013.

Then type in the command prompt:

py -m pip install capstone-windows
py -m pip install angrdbg

Usage

The library uses an abstract class, Debugger, to be agnostic from the debugger api.

The user must implement a derived class, see abstract_debugger.py to view the methods that must be implemented.

After this register an instance of the derived class with the register_debugger function.

To create an angr state from the current debugger state use StateShot.

Api

StateShot

Return an angr state from the current debug session state.

StateManager

A wrapper around angr to simplify the symbolic values creation and to write the results back in the debugger when angr founds a valid path.

Methods
  • instance.sim(key, size) create a symbolic value on a register or on a memory address (size is optional)
  • instance[key] get a register or a memory value
  • instance.simulation_manager() create an angr simulation manager based on the state
  • instance.to_dbg(found_state) transfer to the debugger state the evaluated value of the symbolic value created before with sim

note: memory values are the same that are returned by state.mem[addr]

Managing the Project

load_project and reload_project are used to get or lazily create a project based on the current debugger state.

Memory type

The memory type defines how angrdbg get the memory from the debugger and from the cle backer. Use get_memory_type to know what the active one.

You can change the memory type with set_memory_type.

  • SIMPROCS_FROM_CLE import only not-stubs simprocedures in the got from the cle backer (defaut)
  • ONLY_GOT_FROM_CLE import the entire got from the cle backer
  • USE_CLE_MEMORY import memory from the cle backer firstly
  • GET_ALL_DISCARD_CLE full debugger memory mode (the only avaiable for PE at the moment)

Frontends

Cite

Thesis PDF.

Bibtex:

@misc{fioraldi2020symbolic,
    title={Symbolic Execution and Debugging Synchronization},
    author={Andrea Fioraldi},
    year={2020},
    eprint={2006.16601},
    archivePrefix={arXiv},
    primaryClass={cs.CR}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].