🎯 Aiming to be a simple cross-platform debugger

.github Rename FUNDING and workflow files 2 months ago
common Update CLI 2 months ago
debugger Refix Linux spawn progress with arguments 2 months ago
dumper Update CLI 2 months ago
examples Change wait function signature for future expansion 2 months ago
src/ adbg Refix Linux spawn progress with arguments 2 months ago
tests Redo term module a little 3 months ago
.gitignore Separate Alicedump from Alicedbg 2 months 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 Separate Alicedump from Alicedbg 2 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.

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.