Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
N0xis — Kit de herramientas de ingeniería inversa centrado en IA: análisis estático, descompilador SSA, memoria en vivo, procedencia. Código disponible (PolyForm Noncommercial). | Kitploit
Herramientas/GitHubGitHub/structio-labs/n0xis
Análisis EstáticoAnálisis Dinámico (Sandboxing)Forensia de MemoriaIngeniería InversaDepuradoresAnálisis de MalwareUtilidades y FrameworksAnálisis de BinariosReversing Asistido por IAExplotación de Binarios
GitHub
16hace 19 díasAún no revisado
structio-labs/n0xis

N0xis

Kit de herramientas de ingeniería inversa centrado en IA: análisis estático, descompilador SSA, memoria en vivo, procedencia. Código disponible (PolyForm Noncommercial).

Ver Repositorio

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

N0xis

Desde un watchpoint de hardware en un proceso en vivo hasta la sentencia descompilada exacta que cambió el valor.

Los escáneres de memoria encuentran la dirección. Los descompiladores explican el código. N0xis los conecta.

$ n0x provenance trace --pid 9348 --addr 0x7ff68bef3010 --kind write
"function_va": "0x7ff68bef1580",          // containing function, auto-resolved
"decompiled_context": [
  "rax.2 = (*(uint32_t*)(0x7ff68bef3010) - 0x1);",
  "*(uint32_t*)(0x7ff68bef3010) = rax.2;"  // ← the statement that moved your value
]

Eso es el hp -= 1; del código fuente, recuperado de un proceso en ejecución — la dirección vigilada aparece en la sentencia. Verificado en Windows y Linux.

Un escaneo de "encontrar qué accede a esto" normalmente se detiene en una línea de desensamblado en bruto, y un descompilador normalmente no tiene ninguna entrada de watchpoint en vivo. Esto es las dos mitades unidas: el impacto del watchpoint se resuelve a través del mismo pipeline SSA que descompila el archivo.

Instalación

Binarios precompilados para Linux y Windows — última versión.

curl -LO https://github.com/Structio-labs/N0xis/releases/latest/download/n0xis-linux-x86_64
chmod +x n0xis-linux-x86_64 && ./n0xis-linux-x86_64 --version

O compílalo: cargo build --workspace --release (Windows y Linux; no se necesitan MSVC Build Tools — rust-toolchain.toml fija el host gnu).

Inicio rápido

Cada comando imprime un objeto JSON — incluidos los errores de argumentos: {"ok":true,"data":…,"meta":…} o {"ok":false,"error":…}. Añade --pretty para leerlo; el código de salida es distinto de cero en caso de fallo.

n0x doctor                                                    # environment check
n0x profile --file game.exe                                   # triage: sections, exports, engine hints
n0x function discover --file game.exe --pdata                 # exact .pdata discovery
n0x decomp pseudo --file game.exe --addr 0x140012a00 --style ssa --pretty
n0x provenance trace --pid 4821 --addr 0x1a2b3c40 --kind write --pretty

Los mismos comandos se ejecutan sobre un --pid en vivo, un --file estático, un --snapshot capturado, o un proceso remoto por SSH. Es fontanería Unix ordinaria — n0x function discover --file game.exe --pdata | jq -r '.data.functions[].va' alimenta el siguiente comando. n0x guide lista los 113 comandos, generados desde el binario para que nunca se desvíen — y una prueba falla la compilación si este número lo hace.

Desde un agente: apunta cualquier cliente MCP a n0xis-mcp — 25 herramientas que devuelven el idéntico sobre {ok,data,meta}, JSON-RPC sobre stdio.

{ "mcpServers": { "n0xis": { "command": "/path/to/n0xis-mcp" } } }

Qué hace

  • Descompilar — un descompilador SSA optimizador (Memory-SSA, coalescencia de variables phi-web, destrucción completa de SSA, condiciones de rama exactas) cuyo optimizador informa cada reescritura que hizo (--explain: qué sub-paso cambió qué, en qué dirección), no una respuesta de caja negra.
  • Escanear memoria en vivo — escaneo de valores/punteros/AOB con estrechamiento respaldado por snapshots, congelación, hooks de code-cave. el ciclo completo escanear → estrechar → congelar → parchear.
  • Vigilar y explicar — breakpoints de software / hardware / condicionales y una pila de llamadas real desenrollada entre procesos; la materia prima sobre la que se construye la procedencia.
  • Recuperar nombres — clases de C++ desde RTTI en ambas ABIs (cadenas .rdata de MSVC y símbolos _ZTV de Itanium), .NET NativeAOT RVA ↔ Namespace.Type.Method, LuaJIT, Bitsquid, IL2CPP — para que una imagen sin símbolos se lea como código fuente, no como sub_XXXX.
  • Persistir y comparar — tablas .n0xt, anotaciones versionadas, caché direccionada por contenido, comparación de funciones/versiones.

Windows y Linux, PE y ELF, un solo pipeline — archivos estáticos, procesos en vivo, snapshots y objetivos remotos fluyen todos a través de los mismos pasos y el mismo JSON versionado.

No hay no determinismo de ML en el núcleo, nunca. Una GUI de escritorio vive en un repositorio separado: n0xis-gui.

Estado

Alpha. Cada afirmación a continuación es una medición contra una fuente externa a la herramienta — el kernel, las propias tablas de la imagen, o el propio proceso objetivo. Donde no existe tal fuente, lo dice, porque implementado y verificado no son la misma afirmación.

Memoria en vivo, contra un objetivo desechable que planta valores conocidos:

  • Linux — 29 de 31 comandos medidos contra /proc/<pid>/mem, uno incorrecto y corregido. Los otros dos son solo para Windows y lo rechazan diciéndolo. El incorrecto era scan dissect, que eligió el ancho de un campo antes que su alineación y por eso leyó una estructura cuatro bytes fuera de fase desde su primer error en adelante: un campo de seis correcto contra un diseño conocido desde su propio código fuente, cinco de seis después.
  • Windows 11 — 21 de 23 comprobaciones medidas, 0 incorrectas, con el propio objetivo como oráculo. ui focus correctamente no encuentra ninguna ventana en un objetivo de consola; stack backtrace es solo para Linux — el único lugar donde el adaptador de Linux va por delante.

El decodificador, contra un desensamblador independiente — el suelo sobre el que se sostiene todo lo demás, y hasta ahora comprobado solo por los pasos construidos sobre él, que todos leen el mismo flujo:

  • x86: límites de instrucciones comparados con objdump. Tres formas construidas a propósito exactas, 20 000 instrucciones de una biblioteca compartida y 20 000 de una DLL de sistema de 32 bits, cero discrepancias y cero límites que cualquiera de los dos tuviera por separado. Ampliado a 60 000 instrucciones de un binario de navegador despojado de 334 MB: 2 discrepancias, ambas dentro de una cadena ASCII incrustada en .text donde la propia referencia decodifica (bad) — no es código, y ninguna de las dos lecturas es la correcta.
  • AArch64: mnemónicos comparados con llvm-objdump (las codificaciones de ancho fijo hacen que los límites sean vacíos). Véase la línea de ARM64 más abajo.
  • AArch64, el espacio de codificación en lugar de la salida del compilador: 600 palabras deterministas juzgadas por llvm-mc --mattr=+all y por n0xis. 241 ambos las llaman instrucción, 304 ambos las rechazan — y 48 (8.0%) son codificaciones reservadas que n0xis lee como instrucciones, con 7 (1.2%) instrucciones reales que rechaza (principalmente atómicas LSE). Tres de las 48 fueron decodificadas a mano y son genuinamente UNALLOCATED. Esa brecha está retenida por un límite que falla si crece, y se declara aquí en lugar de omitirse: una palabra reservada leída como instrucción convierte datos en un programa plausible.

Extensiones de funciones, contra la propia tabla de desenrollado de la imagen y la lista de exportaciones del enlazador:

  • el start..end de cada FDE de objdump --dwarf=frames igual a la extensión recuperada — 3 787 comparadas en esta máquina (10 + las 3 777 de libc), inicio y fin, exactos; medidas por separado en 15 467 y 14 355 en dos bibliotecas grandes.
  • 0 puntos de entrada exportados perdidos por la lista de funciones: 10 de 10 en la forma del oráculo y 2 323 de 2 323 dentro de la ventana escaneada de libc.
Descargar herramienta