Binary Ninja — Plateforme d'analyse binaire

Outils Décompilateur

Présentation

Binary Ninja (Vector35) est un désassembleur/décompilateur commercial réputé pour son API Python native et ses représentations intermédiaires multi-niveaux (BNIL), alternative plus accessible à IDA Pro.

BNIL — niveaux d'abstraction

LLIL : Low Level IL  (proche assembleur)
MLIL : Medium Level IL (variables, paramètres, SSA)
HLIL : High Level IL  (proche pseudo-C)
# Écrire des analyses indépendantes de l architecture

API Python

import binaryninja as bn
bv = bn.load('binaire')
for f in bv.functions:
    print(hex(f.start), f.name)
    for instr in f.hlil.instructions:
        print(instr)
bv.write(addr, b'\x90\x90')   # patch

Raccourcis

G : aller à une adresse | N : renommer
X : références croisées  | Espace : Graph/Linear view