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

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages