Skip to content

MethodWhite/Noctua

Repository files navigation

🐍 Noctua

Tool-CyberSec-Forensic-Noctua

Framework de Reverse Engineering y análisis forense en Python

Loaders Modules Architecture CI Python

InstalarUsarArquitecturaExtender



Noctua es un framework de reverse engineering en Python que detecta, analiza y extrae información de binarios. Arquitectura modular con 15 módulos de análisis y clean architecture.


✨ Características

Loaders — 7 Formatos

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ódulos — 15 Análisis

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

🏗️ Arquitectura

┌──────────────────────────────────────┐
│  Interface    CLI · analyzer.py      │
├──────────────────────────────────────┤
│  Application  Pipeline · Módulos     │
├──────────────────────────────────────┤
│  Domain       Config · Result        │
├──────────────────────────────────────┤
│  Infra        Loaders · Core Engine  │
└──────────────────────────────────────┘

Patrones: Strategy · Pipeline · Config Object · Result/Monad


📦 Instalación

git clone https://github.com/MethodWhite/Noctua.git
cd Noctua
pip install capstone

Requiere Python 3.8+.


🚀 Uso

from 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()

Con Pipeline

from pipeline import Pipeline, stage_load, stage_analyze

pipe = Pipeline()
pipe.register("Load", stage_load)
pipe.register("Analyze", stage_analyze)
pipe.run("binario.elf")

🧩 Extender

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}

Más en CONTRIBUTING.md


About

Tool-CyberSec-Forensic-Noctua - Python reverse engineering and binary analysis framework. Supports ELF, PE, Mach-O, DEX, WASM, WebP formats with modules for crypto, entropy, dataflow, branch timing, spectral analysis, imports, fingerprinting, embedded files, and more.

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages