dbeaengine - D binding for the BeaEngine disassembler

Baz via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Mon Feb 16 15:10:06 PST 2015


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.

Misc:
- 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


More information about the Digitalmars-d-announce mailing list