🎯 Aiming to be a simple cross-platform debugger

.github CI: Add static library and shared library builds 1 month ago
common Replace x86 machine to i386 1 month ago
debugger Replace x86 machine to i386 1 month ago
dumper Replace adbg_error_msg with adbg_error_message, start adding exports 1 month ago
examples Replace adbg_error_msg with adbg_error_message, start adding exports 1 month ago
src/ adbg machines: remove redundant parentheses 1 month ago
tests Redo term module a little 3 months ago
.gitignore dub: Add shared configuration 1 month ago
LICENSE Change License to BSD-3-Clause-Clear 3 months ago
README.md Change License to BSD-3-Clause-Clear 3 months ago
dscanner.ini Init AVX512F support + VEX/EVEX 2 years ago
dub.sdl platform: Add ADBG_CONFIG, build configuration string 1 month 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.

Features:

  • Debugger
  • Disassembler (using Capstone)
  • Object server

Written from scratch for educational purposes.

Warnings

⚠️ This is a toy debugger with barely any features ⚠️

There are currently no stable APIs. Every releases pre-1.0 will see frequent changes to the API.

None of the functions are currently thread-safe.

Usage

The application features two modes:

  • Debugger
  • Image dumper

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 --attach PID option, where PID is a Process ID.

Examples:

  • Spawn process on Windows: alicedbg test.exe
  • Spawn process on Posix: alicedbg ./test
  • Attach to process ID 3428: alicedbg --attach 3428

Image 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
  • Dump exports: alicedbg --dump-exports alicedbg.exe

Documentation

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

Contributing

Currently not looking for contributors, sorry. Feel free to provide suggestions regarding contributor management.

License

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