The radare2 architecture is built around a central lib core that manages various specialized API modules. These modules interact to provide reversing, debugging, and analysis capabilities.
Key functional groups include:
- Core & Configuration: Manages the central state and
config settings. - Analysis & Disassembly: Includes
asm (assembly), bin (binary analysis), and anal (analysis engine). - Execution & Debugging: Provides
debug, bp (breakpoints), vm (virtual machine), reg (registers), syscall, var (variables), and trace capabilities. - Comparison & Integrity: Includes
diff (diffing), sign (signature matching), and hash (hashing). - Interface & Interaction: Handles
cons (console), line (command line), cmd (commands), search, and print operations. - Extensibility: Supported via a
plugins system. - Metadata & Language: Manages
flags, meta (metadata), lang (language), and macro support.
+--------+
.-| config |
/ +--------+
+------+ +------+ +------+ +------+
| core |--| cons | | asm | | diff |
+------+ | line | | bin | | sign |
| \ +------+ | anal | | hash | ,_____.
+----+ \ +---.--+ +--.---+ +._____.+
| io | +-------------'------/ | |
+----+ | cmd, search, print |<------>| flags |
| +------.-------------
| .----| debug, bp, vm | | lang |
| | | reg, syscall | | macro |
+------'--+ | var, trace | +-------+
| plugins | +---------------+
+-----.---+
`---------------------------'