Tool-CyberSec-Forensic-Noctua
Framework de Reverse Engineering y análisis forense en Python
Instalar • Usar • Arquitectura • Extender
Noctua es un framework de reverse engineering en Python que detecta, analiza y extrae información de binarios. Arquitectura modular con 71 módulos de análisis, 8 loaders, emulación, symbolic execution, y clean architecture. Suite de 4108 tests.
| Formato | Uso | Estado |
|---|---|---|
| ELF | Linux, IoT | ✅ |
| PE | Windows | ✅ |
| Mach-O | macOS/iOS | ✅ |
| DEX | Android | ✅ |
| WASM | WebAssembly | ✅ |
| WebP | Forense de imágenes | ✅ + EXIF |
| Generic | Fallback | ✅ |
| Módulo | Descripción |
|---|---|
BranchTiming |
Side-channel por temporización |
Dataflow |
Detección de secrets (passwords, tokens, keys) |
Spectral |
Análisis espectral del binario |
MaxEnt |
Máxima entropía para ofuscación |
CrossDomain |
Correlación cross-domain |
MI2D |
Información mutua 2D |
Entropy |
Entropía por secciones |
Profiler |
Perfilado de secciones |
Crypto |
Constantes AES, base64, etc. |
ImportExport |
Import/export tables |
Fingerprint |
Huella digital del binario |
Embedded |
Detección de archivos embebidos |
StringXformer |
Strings codificados |
ByteFrequency |
Frecuencia de bytes |
CallGraph |
Grafo de llamadas |
Recover |
Recupera archivos originales: decompress + decrypt (XOR brute) + decompile → ~/.local/share/noctua/recovered/ |
┌──────────────────────────────────────┐
│ Interface CLI · analyzer.py │
├──────────────────────────────────────┤
│ Application Pipeline · Módulos │
├──────────────────────────────────────┤
│ Domain Config · Result │
├──────────────────────────────────────┤
│ Infra Loaders · Core Engine │
└──────────────────────────────────────┘
Patrones: Strategy · Pipeline · Config Object · Result/Monad
git clone https://github.com/MethodWhite/Noctua.git
cd Noctua
pip install -e .Requiere Python 3.10+ (deps: capstone, numpy, scipy, pycryptodome).
cd .. # desde la raíz del paquete (el repo es el paquete `noctua`)
PYTHONPATH=. python3 noctua/tests/run_all.py4108 tests (unit + integration + e2e).
Binarios autónomos para las tres plataformas en la página de releases — no requieren Python instalado:
| Plataforma | CLI | GUI (PyQt6) |
|---|---|---|
| Linux | noctua-<ver>-x86_64.AppImage |
noctua-gui-<ver>-x86_64.AppImage |
| Windows | noctua-<ver>-windows-x86_64.exe |
noctua-gui-<ver>-windows-x86_64.exe |
| macOS | noctua-<ver>-macos |
noctua-gui-<ver>-macos |
Cada release incluye checksums.sha256 / checksums.md5 para verificar la integridad.
from core.engine import MWREEngine
eng = MWREEngine("malware.exe")
summary = eng.run()
print(summary)from core.engine import MWREEngine
from analyzer.universal import NOCTUAAnalyzer
eng = MWREEngine("binario")
eng.run()
analyzer = NOCTUAAnalyzer(eng)
results = analyzer.run()python -m noctua --help
python -m noctua analyze binario.elf
python -m noctua versionfrom pipeline import Pipeline, stage_load, stage_analyze
pipe = Pipeline()
pipe.register("Load", stage_load)
pipe.register("Analyze", stage_analyze)
pipe.run("binario.elf")from modules.base import AnalyzerModule
class MiModulo(AnalyzerModule):
name = "mi_modulo"
description = "Análisis personalizado"
applies_to = ['elf', 'pe']
def analyze(self):
data = getattr(self.engine, 'data', b'')
return {'resultado': 42}Hecho con ❤️ por MethodWhite