Lifting RISC-V Instructions to the RzIL IR Language
- Mentors
- Giovanni Grazioli, Florian Märkl
- Organization
- Rizin
- Technologies
- llvm, assembly, risc-v, Capstone, rizin, Disassemblers, Development Tools
- Topics
- security, reverse engineering, malware analysis, Binary Analysis, Static Anaylsis, Instruction Set Architectures
The aim of this project is to lift one of the last high priority instruction sets to RzIL, namely the RISC-V instruction set. This instruction set, along with the MIPS instruction set, is one of the two remaining high-priority instruction sets that still don’t have a RzIL lifter. This project aims to rectify that.
RzIL is a common intermediate language that serves as an executable description of several real-world instruction sets and bytecode formats. This has multiple benefits, like enabling a human reverse-engineering professional to audit and read code written in a machine language which the professional isn’t familiar with and - more importantly - enabling the execution of a code format even if no "native" interpreter or VM or emulator is available for it, by first compiling it to RzIL (a per-architecture work) and then executing it on the RzIL VM (which is write-once).