{"repo":"LLVM-but-worse/maple-ir","free":true,"listed":false,"github":"https://github.com/LLVM-but-worse/maple-ir","clone":"git clone https://github.com/LLVM-but-worse/maple-ir.git","description":"Industrial IR-based static analysis framework for Java bytecode","language":"Java","stars":184,"topics":["java","bytecode","static-analysis","reverse-engineering","ssa","deobfuscation","compilers"],"license":"GPL-3.0","category":"dev-tools","readme_excerpt":"Maple-IR Maple-IR is an industrial IR-based static analysis framework for Java bytecode. Currently, it implements SSA-form based analysis as well as construction and destruction from bytecode to IR. The toolchain takes bytecode input, lifts it to SSA IR, transforms the IR, then recompiles back down to bytecode. This is done by symbolically executing each method while simulating the stack, similar to how Binary Ninja or IDA Pro's Hex-Rays operate. Intraprocedural data-flow analysis is fully implemented, and optimizations such as constant folding and copy propogation are implemented as well. A CFG Graphviz exporter is also available; see below for examples. Maple-IR is not in active development. It is on hiatus indefinitely, although code contributions are welcome. Please file questions, comments, and issues on the issue tracker. Maple-IR in its current form is not yet production-ready, although it can be made so with little effort. If you use Maple-IR, please let us know! We would love to hear about any cool projects you use it for. \"It's like LLVM, but worse.\" Features - Java bytecode (prefix stack-based) to SSA IR (infix AST) - SSA IR to bytecode reassembly - Visual (graphviz) and text pretty printer - Text input to IR parsing; human-editable IR ( planned ) Philosophy - Enter IR and stay in IR, abstract away ASM/JVM-specific details - Transform the IR then reassemble deobfuscated code - Aim for semantic correctness Screenshots and examples Here is the Graphviz visualization ","default_branch":null,"files":null,"tree":[],"storefront":"/r/LLVM-but-worse","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/LLVM-but-worse/maple-ir/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}