-
Notifications
You must be signed in to change notification settings - Fork 7
LibDemos
The GDSL toolkit consist of multiple parts:
- The GDSL compiler
- Specifications for instruction decoders and corresponding semantic translators
- A multiplex library that allows an application to load a decoder as shared library at runtime.
Inside the repository, there is more:
- Demo applications
- Libraries
When compiling the toolkit one specific decoder and semantic translator is generated. Depending on the host environment a range of demo applications and libraries are built. While is the decoder is always installed when issuing a "make install", installing the demos and libraries is optional. Note that the compiler itself is currently not installed.
The toolkit includes a number of demo applications that show how to interface between C and GDSL programs and demonstrate the functionality offered by the given specifications. The following demo applications are included:
Tool name | Description |
---|---|
decoder-cli | A command line instruction decoder |
semantics-cli | A command line instruction decoder and semantic translator |
semantics-opt | A command line tool that decodes binary instructions, translates them into RReil and optimizes the result |
semantics-cli-dynamic | Like semantics-cli, but allows to dynamically load an architecture-specific frontend at runtime |
semantics-cif-cli | A tool demonstrating the RReil C interface |
sweep | A tool that is able to decoder and translate binary files (with and without an ELF header); the tool records its runtime |
liveness-sweep | A demonstration and benchmarking tool for the liveness analysis performed on RReil code |
x86-test-runner | A debugging tool for the X86 specification which uses automatic test case generation |
x86-test-stats-runner | A correctness evaluation tool for the X86 specification which uses automatic test case generation |
In order to enhance code reuseability, the tools share parts of their implementation using libraries. The libraries can also be used by other applications that need to interface with a GDSL decoder or semantic translator. The following libraries are included:
Library name | Description |
---|---|
libutil | A utility library that contains shared functionality which is independent from the GDSL toolkit |
libreadhex | A library that facilitates the reading of formatted input |
libmemstream | The POSIX memstream library for BSD (http://piumarta.com/software/memstream) |
libgdwrap | A legacy GDSL interface wrapper library |
libgdsl-multiplex | A C library allowing an application to dynamically load GDSL decoders and semantic translators at runtime |
libcgdsl | A C library containing data structures and functions for the RReil intermediate language as well as for interfacing with the decoder and the translator |
libcppgdsl | A C++ library containing data structures and functions for the RReil intermediate language as well as for interfacing with the decoder and the translator |
libjgdsl | A Java library containing data structures and functions for the RReil intermediate language as well as for interfacing with the decoder and the translator |
libx86 | A C library that eases the interfacing between that GDSL X86 decoder and user applications |
libx86-tester | A library that forms the core of the x86-test-runner tool |
libx86-generator | A simple X86 instruction generator |
- Overview
- QuickStart
- Installation
- GDSL
-
Specifications
- Intel x86 32/64 bit
- MIPS32
- Atmel AVR 8-bit
- TI MSP430 8-bit
- Contributing
- RReil
- Libraries and Demos
- Acknowledgements
- Support