GIMLI: Generic integrity protection for executable machine code via LLVM-IR
Project Goal
The GIMLI project aims to extend the capabilities of our award-winning AxProtector CTP (AxProtector Compile Time Protection), enabling software protection and licensing for programs that have already been compiled – even when they were built with compilers other than LLVM.
Project Description
AxProtector CTP is traditionally integrated into software at the LLVM-IR (Intermediate Representation) level, an intermediate representation that is independent from both the source language and the target architecture. This approach requires developers to use the LLVM compiler. However, many projects rely on alternative compilers, making the adoption of AxProtector CTP challenging.
GIMLI addresses this limitation by developing a new methodology to “lift” machine code segments into LLVM-IR, apply AxProtector’s proven protection mechanisms, and then recompile the secured code back into machine code. This process, combined with a “lowering” technique to correctly reinsert the protected segments into the original program, ensures seamless integration without altering the program’s behavior beyond the desired changes applied by AxProtector CTP.
The project will also explore advanced features such as secure and efficient watermarking and a deeper analysis of security risks in the context of software licensing.
Wibu-Sytems’ Role
Wibu-Systems leads the conceptual and technical development of the GIMLI project, focusing on:
- Designing and implementing the machine-code lifter and lowerer for AxProtector CTP.
- Creating automated testing frameworks to guarantee correctness and reliability.
- Developing a proof-of-concept tool to validate the integration of AxProtector CTP with non-LLVM compilers.