Angrdbg
Abstract library to generate angr states from a debugger state
Install / Use
/learn @andreafioraldi/AngrdbgREADME
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 valueinstance.simulation_manager()create an angr simulation manager based on the stateinstance.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_CLEimport only not-stubs simprocedures in the got from the cle backer (defaut)ONLY_GOT_FROM_CLEimport the entire got from the cle backerUSE_CLE_MEMORYimport memory from the cle backer firstlyGET_ALL_DISCARD_CLEfull 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}
}
Related Skills
node-connect
350.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
350.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
350.8kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
