All Projects → KyleMiles → McNinja

KyleMiles / McNinja

Licence: other
Compile Binary Ninja's MLIL to LLVM, for purposes of analysis, patching, and compiling it back to a binary again.

Programming Languages

python
139335 projects - #7 most used programming language
LLVM
166 projects
c
50402 projects - #5 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to McNinja

validating-binary-decompilation
Scalable Validator for Binary Lifters
Stars: ✭ 41 (+36.67%)
Mutual labels:  llvm-ir
Mcsema
Framework for lifting x86, amd64, aarch64, sparc32, and sparc64 program binaries to LLVM bitcode
Stars: ✭ 2,198 (+7226.67%)
Mutual labels:  llvm-ir
re-scripts
IDA, Ghidra and Radare2 scripts. Also Android scripts to make your life easier.
Stars: ✭ 47 (+56.67%)
Mutual labels:  binaryninja
TinyCompiler
c compiler based on flex(lex), bison(yacc) and LLVM, supports LLVM IR and obj code generation. 基于flex,bison以及LLVM,使用c++11实现的类C语法编译器, 支持生成中间代码及可执行文件.
Stars: ✭ 162 (+440%)
Mutual labels:  llvm-ir
llvm-brainfuck
Brainfuck compiler based on LLVM API
Stars: ✭ 27 (-10%)
Mutual labels:  llvm-ir
Binja4J
No description or website provided.
Stars: ✭ 14 (-53.33%)
Mutual labels:  binaryninja
llvm-semantics
Formal semantics of LLVM IR in K
Stars: ✭ 42 (+40%)
Mutual labels:  llvm-ir
dwarf import
This loads DWARF info from an open binary and propagates function names, arguments, and type info
Stars: ✭ 18 (-40%)
Mutual labels:  binaryninja
bl
Simple imperative programming language created for fun.
Stars: ✭ 57 (+90%)
Mutual labels:  llvm-ir
Dxbc2Dxil
DEPRECATED. DXBC to DXIL (HLSL Bytecode to LLVM IR) using internal APIs.
Stars: ✭ 21 (-30%)
Mutual labels:  llvm-ir
LLVM-Metadata-Visualizer
LLVM Metadata Visualizer
Stars: ✭ 20 (-33.33%)
Mutual labels:  llvm-ir
llvm-kaleidoscope
LLVM Tutorial: Kaleidoscope (Implementing a Language with LLVM)
Stars: ✭ 124 (+313.33%)
Mutual labels:  llvm-ir
Hyara
Yara rule making tool (IDA Pro & Binary Ninja & Cutter Plugin)
Stars: ✭ 142 (+373.33%)
Mutual labels:  binaryninja
ncc
Neural Code Comprehension: A Learnable Representation of Code Semantics
Stars: ✭ 162 (+440%)
Mutual labels:  llvm-ir
Decaf-Compiler
Compiler for Decaf Programming Language
Stars: ✭ 36 (+20%)
Mutual labels:  llvm-ir
doc
Design documents related to the decompilation pipeline.
Stars: ✭ 23 (-23.33%)
Mutual labels:  llvm-ir
seninja
symbolic execution plugin for binary ninja
Stars: ✭ 123 (+310%)
Mutual labels:  binaryninja
LLAST
A high level LLVM IR AST provider for GraphEngine JIT.
Stars: ✭ 21 (-30%)
Mutual labels:  llvm-ir
P4LLVM
P4-LLVM is an LLVM based compiler for P4
Stars: ✭ 33 (+10%)
Mutual labels:  llvm-ir
Awesome Reverse Engineering
Reverse Engineering Resources About All Platforms(Windows/Linux/macOS/Android/iOS/IoT) And Every Aspect! (More than 3500 open source tools and 2300 posts&videos)
Stars: ✭ 2,954 (+9746.67%)
Mutual labels:  binaryninja

sneakyburgers

Compiles BinaryNinja's MLIL to LLVM

Approach

  1. Sweep binary for global variables, create them
  2. Sweep binary for (used?) external functions, declare those
  3. Sweep binary for internal functions, translate them

FAQ

Why MLIL instead of HLIL?

HLIL is an attractive source for compiling down to LLVM IR; it has dead stores eliminated, it has control flow constructs recovered, and several other small optimizations. However, LLVM IR's control flow is extremely simple - it has no for, no while, only conditional and unconditional branching - which makes MLIL significantly easier to convert.

How do you pronounce McNinja and where did the name come from

This is a hotly contested issue. We must explore the etymology of the name to find an answer. The "Mc" in McNinja was originally a contraction of the words "Machine Code," and the "ninja" is short for "BinaryNinja." It is possible that "MC" in that case is pronounced em-see. Alas, even those who understand the origin of the name pronounce it as if it were related to America's favorite fast food joint.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].