nebelwelt.net logo
navigation logo

LLDSAL: A Low-Level Domain-Specific Aspect Language for Dynamic Code-Generation and Program Modification

 

Reference:

Mathias Payer, Boris Bluntschli, and Thomas R. Gross: LLDSAL: A Low-Level Domain-Specific Aspect Language for Dynamic Code-Generation and Program Modification

 

Abstract:

Dynamic binary translation frameworks enable late modifications of binary programs. The binary translator needs to generate dynamic code at runtime for trampolines, translated control flow instructions, additional runtime checks, and lookups. The code must be efficient, low-level, and cannot rely on any calling conventions.

A Low-Level Domain Specific Aspect Language (LLDSAL) is a natural fit to specify dynamically generated code snippets at compile time. The code is then generated by the translator on demand at runtime and integrated into the translated application code. The LLDSAL is tightly coupled to a host language and provides full access to data structures of the host language. The syntax of the LLDSAL is comparable to inline assembler but the code is generated at runtime. The advantage of an LLDSAL that generates dynamic code is that references to runtime data structures are encoded directly in the machine code without indirections. Most parameters in the generated low-level aspects can be hard coded to reduce the number of passed parameters.

This paper presents the design and implementation of such an LLDSAL. The LLDSAL is integrated into a binary translation framework that enforces application security.

 

Links:

 

Bibtex:

@inproceedings{payer12dsal,
 author = {Mathias Payer and Boris Bluntschli and Thomas R. Gross},
 title = {LLDSAL: A Low-Level Domain-Specific Aspect Language for Dynamic
  Code-Generation and Program Modification},
 booktitle = {DSAL'12: Proceedings of the 7th AOSD workshop on
 Domain-Specific Aspect Languages},
 pages = {},
 numpages = {5},
 doi = {10.1145/2162037.2162043},
 year = {2012},
 keywords = {Assembly Language, Dynamic Low-Level Domain Specific Language,
 Aspect Language, Program Modification}
}