dbeaengine[1] is a simple BeaEngine[2] interface for the D programming language. The BeaEngine is an X86 and X86_64 library which can be used to disassemble X86 and X86_64 byte-code.

The programming interface is simple and outrageously easy to use (a single function named `disassemble()` ).

This D binding doesn't add a layout over the original API but the `enum`, `struct` and their members names are more D-friendly. Additionaly, safety is introduced by turning `const` every data set by Bea, which avoids any unintentional modification of the results.

The project includes:
- the original C sources and some script to build the engine as an object.
- the di interface, a bit tweaked as mentioned in the intro.
- a Coedit project and the equivalent shell scripts to build the engine as a static library.
- a sample application which disassembles itself at run-time.

- mostly licensed under the terms of the LGPL v3.
- credit go to the original authors, this is a simple interface!
- tested under win32 and nux64.
- beta, some doc. comments are missing, and `ArgType`[3] may be decomposed to avoid bit-masking.

[1]: http://www.beaengine.org/
[2]: https://github.com/BBasile/dbeaengine
[3]: https://github.com/BBasile/dbeaengine/blob/master/interface/beaengine.di#L168

Reply via email to