🎯 Aiming to be a simple cross-platform debugger

.github Update action again 2 years ago
app cli: Change synopsis 8 months ago
examples example: v2 uses adbg_dasm_process_exception 9 months ago
src/ adbg Minor CLI update 8 months ago
tests Fix tests, changed utils.string to utils.strings, removed legacy tests 9 months ago
.gitignore Move loop ui as example with v1 and v2 variants 9 months ago
LICENSE Updated copyright year 9 months ago
README.md README: Add Capstone clause 9 months ago
dscanner.ini Init AVX512F support + VEX/EVEX 2 years ago
dub.sdl dub: Remove version 8 months ago
README.md

Alice Debugger Project

Aiming to be a simple cross-platform debugger, binary dumper, and memory scanner.

Fully written in D's BetterC mode, and available as a DUB package.

Library features:

  • Debugger
  • Disassembler (using Capstone)
  • Object server

Written from scratch for educational purposes.

Warnings

This is still lacking most features any debuggers should have.

Long-term wishlist:

  • Source debugging
  • Windows kernel debugging
  • Linux kernel debugging
  • Support embedded platforms
  • Just-In-Time debugging

Under consideration:

  • TUI option
  • Addon system (either Lua, Squirrel, DMDScript, or AngelScript)

There are currently no stable APIs. Every releases to the 0.x series can change the API at any given time.

None of the functions are thread-safe.

Application Usage

The application is split across a few modes.

The disassembly feature is provided by Capstone 4.0.2.

For Windows, the dynamic library can be downloaded here.

For other platforms, package names are typically:

  • Debian, Ubuntu 22.04, SUSE: libcapstone4
  • Ubuntu 20.04: libcapstone3 (4.0.1)
  • RHEL: capstone-devel
  • Alpine: capstone-dev

Capstone is licensed under the 3-clause BSD license.

Debugger

The debugger is the default operating mode.

In this mode, the default option is to spawn a process with a file path.

To attach to a live process, use the --pid PID option, where PID is a Process ID.

Examples:

  • Spawn process
    • Windows: alicedbg test.exe
    • Posix: alicedbg ./test
  • Attach to process: alicedbg --pid 3428

Dumper

To invoke the object dumper, use --dump PATH, where PATH is a file path to a binary image.

Examples:

  • Dump headers: alicedbg --dump alicedbg.exe

Documentation

For information about compilation, internal structures, support, see the repository's Wiki for further information.

License

This project is licensed under the BSD 3-Clause license.