- Anatomy of LLVM Backends
Published: Tags: LLVM One difficulty when working with LLVM backends is the sheer amount of files, classes and ultimately code that needs to be present in order to get a LLVM backend going. The aim of this post is to give a very brief overview over the necessary classes.
- Crosscompile using CMake
Published: Last Modified: Tags: clang llvm cmake After debunking crosscompiling beeing hard in an earlier post, i want demonstrate how it can be used to build CMake projects for foreign architectures.
- Ieads Definitive Guide to LLVM Backends (I)
Published: Last Modified: Tags: llvm C++ VM When writing my first llvm backend at my last job I quickly found out that there is only very material assisting the creation of a custom backend. The posts and tutorials only cover the basics and stop as soon as it starts to become really interesting. This series of posts serves to fill the void left by others and to teach how to customice and tailor different aspects of a backend to your needs.
- Solving VM based checker with Klee
Published: Tags: ctf rev python llvm se To solve the “just the check please” task from PPP-CTF in 2023 I went the unusual path of lifting the virtual machine code used as obfuscation to LLVM-IR. That way I was able to utilize the advanced symbolic execution engine “Klee” to solve for the winning input.
- Crosscompile
Published: Tags: clang llvm Cross compiling for different architectures and linux distributions is actually not half as hard as it is made out to be. I know many that regard cross compilation as too difficult and error prone to be even considered and thus always require an entire setup for the target architecture. But handling virtual machines can be cumbersome and juggling real hardware even more. Worry not tho, i will teach you an easy yet versitile way to achieve cross compilation