À propos du projet
NeverD est un moteur d'analyse binaire et de décompilation conçu pour des flux de travail adaptés à l'IA, construit autour d'un lifting instruction par instruction. Il prend en charge les formats natifs (PE, ELF, Mach-O) et le bytecode de contrats intelligents (EVM hérité, Solana SBF ELF). Les cibles natives sont décodées avec Capstone ; EVM et SBF utilisent des décodeurs dédiés sensibles à la version. Toutes les instructions prises en charge préservent le comportement observable en LLVM IR, C, Rust (pour SBF), reconstruction EVM orientée Solidity, ou un binaire réécrit sur les cibles natives.
Le mode strict est activé par défaut : les instructions non prises en charge déclenchent une erreur `UnliftedInstruction` plutôt que d'être ignorées silencieusement ou remplacées par des NOP. Le moteur expose une API C pure (`libneverd`) utilisée par les outils CLI, les intégrateurs et les agents IA, évitant toute liaison directe avec Capstone, LLVM ou le C++ interne.
Les capacités clés incluent :
- **Lifting** : Convertir des binaires en LLVM IR.
- **Décompilation** : Produire du C, Solidity (EVM) ou Rust (SBF) via `--language`.
- **Patchage** : Réécrire des binaires natifs avec des trampolines de section ou un écrasement sur place.
- **Récupération mobile** : CLI expérimentale pour Android (APK/DEX/smali vers Java) et iOS (IPA/.app/Mach-O vers C/Objective-C/Swift).
- **Commandes d'analyse** : `info`, `funcs`, `disasm`, `sym-explore`, `audit`, `hunt`, `cfg`, `callgraph`, `xrefs`, `strings`, `diff`, `sigs`, et plus, avec prise en charge de la sortie JSON.
- **Récupération d'interpréteur** : Dévirtualisation expérimentale des interpréteurs x64 ELF/PE en C ou LLVM IR.
- **Émulation CPU** : Couche CPU x64/ARM64 optionnelle et émulation bornée de pilotes Windows (WDM/KMDF).
Les architectures prises en charge incluent x86-64, i386, AArch64, ARM32, EVM256 et SBF. Le pipeline utilise un IR par étapes : LowIR (opcodes neutres vis-à-vis de l'architecture + CFG), MedIR (types, ABI, mémoire, SSA), HighIR (flux de contrôle structuré), et LLVM pour l'optimisation et la génération de code.
La compilation nécessite CMake ≥ 3.20, Ninja, un compilateur C++20 et les sous-modules Git (fork LLVM + Capstone). Des paquets LLVM précompilés sont disponibles pour macOS arm64, Linux x86_64 et Windows x64. Le projet inclut un banc de travail de bureau Qt Quick (optionnel) avec des vues dockables et des connexions MCP.
Le support SDK inclut une API C pure (`NeverDCAPI.h`) et un ABI de plugin (`NeverDPlugin.h`), ainsi qu'un paquet de plugin Python typé. Les plugins peuvent être des bibliothèques partagées natives ou des fichiers Python, découverts via les chemins de plugins standard.
Licence : GNU AGPL v3 uniquement. Les composants LLVM conservent Apache-2.0 WITH LLVM-exception ; Capstone conserve sa propre licence.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.