Ingeniería inversa en tu navegador. Suelta un ejecutable y obtén una primera impresión en segundos. binkeep es una herramienta de análisis de binarios gratuita y de código abierto para PE, ELF y Mach-O: desensamblador, funciones, referencias cruzadas, cadenas, importaciones, detección de YARA y de empaquetadores. El archivo nunca se sube y, tras la primera visita, funciona sin conexión.
Pruébalo: https://kano92-dir.github.io/binkeep/

No es un sustituto de Ghidra. Cubre la primera parte del análisis de un binario desconocido, sin instalar nada: triaje de malware, retos CTF, comprobar qué importa una herramienta descargada o comparar dos compilaciones.


Características
Formatos
- PE32 / PE32+ (Windows), ELF32 / ELF64 (Linux, cualquiera de los dos endianness), Mach-O 32/64 y binarios universales (macOS, iOS)
- Cualquier otro formato sigue obteniendo hex, cadenas, entropía y YARA
Resumen
- Cabeceras, punto de entrada, fecha de compilación, bibliotecas enlazadas, versiones de plataforma y SDK
- Mitigaciones de seguridad: ASLR, DEP, CFG (PE); PIE, NX, RELRO, canary, FORTIFY (ELF); PIE, canary, ARC, hardened runtime (Mach-O)
- Detección de empaquetadores: UPX, Themida, VMProtect, ASPack, MPRESS, PECompact, Enigma, ofuscadores de .NET y más, mediante nombres de sección y firmas de bytes, además de heurísticas (entropía del código, número de importaciones, ubicación del punto de entrada)
- Authenticode: firmante, emisor, validez, marca de tiempo y el digest del archivo recalculado para mostrar si el archivo cambió después de firmarse
- Firma de código Mach-O: identificador, team ID, ad-hoc o developer, hardened runtime
- Indicadores de toolchain: Go, Rust, Nim, PyInstaller, NSIS, Inno Setup, AutoIt, Electron, .NET, GCC
Código
- Lista de funciones a partir de un barrido lineal completo del código, además de
.pdata (x64 PE) y LC_FUNCTION_STARTS (Mach-O)
- Referencias cruzadas: quién llama a una función, qué código usa una importación, qué código lee una cadena
- Desensamblado (x86, x64, ARM, ARM64 mediante Capstone en WebAssembly) con nombres de API a través de la IAT, GOT y stubs de Mach-O, cadenas en línea, ramas en las que se puede hacer clic
- Grafo de flujo de control para cualquier función: bloques básicos con aristas tomadas / no tomadas / de bucle, desplazamiento y zoom,
Space para alternar entre el listado y el grafo
- Tus propios nombres de función y comentarios (
N, ;, X en el desensamblado), guardados en el navegador por hash de archivo
Datos
- Grafo de entropía con bandas de secciones, secciones con flags R/W/X
- Importaciones con etiquetas heurísticas (inyección, anti-debug, red, criptografía, persistencia, ...) y recuentos de llamadas
- Cadenas (ASCII y UTF-16) con filtro regex, categorías y un filtro "referenciadas por código"
- Recursos PE: información de versión, manifiesto (nivel de ejecución solicitado), el icono de la aplicación y ejecutables o archivos comprimidos incrustados
- Vista hexadecimal que se mantiene rápida en archivos grandes
Flujo de trabajo
- YARA: libyara real compilada a WebAssembly, con los módulos
pe, elf y math. Tus reglas se guardan en el navegador y se ejecutan en cada archivo que abres
- Comparar dos archivos: cabeceras, secciones, importaciones, exportaciones y cadenas modificadas
- Enlace para compartir: el informe se comprime en el fragmento de la URL (
#r=...), que los navegadores nunca envían a un servidor. El archivo en sí nunca se incluye
- Exportar el informe como Markdown o JSON
- Paleta de comandos (
Ctrl+K / Cmd+K): salta a cualquier función, importación, símbolo, cadena, dirección o acción
- Instalable como aplicación, funciona sin conexión
Alójalo tú mismo
Es un sitio estático sin paso de compilación. GitHub Pages funciona tal cual: sube el repositorio y, en Settings > Pages, elige la rama main y la carpeta raíz.
Ejecutar en local
python serve.py
Luego abre http://localhost:8765. Cualquier servidor de archivos estáticos funciona, siempre que sirva .js como text/javascript y .wasm como application/wasm.
Sin paso de compilación. Capstone (capstone-wasm 1.0.3) y libyara (libyara-wasm 1.2.1) están incluidos en vendor/.
Privacidad
Todo el análisis ocurre en la página. Las únicas solicitudes de red son los archivos de la aplicación y Google Fonts. El enlace para compartir transporta el informe, no el archivo, y la parte posterior a # nunca se envía a ningún servidor.
Limitaciones
- El descubrimiento de funciones es un barrido lineal: los datos dentro del código pueden malinterpretarse, y las funciones a las que solo se llega mediante punteros pueden pasarse por alto
- La cadena de certificados Authenticode no se verifica, solo el resumen del archivo
- Aún no hay descompilador (previsto)
- Las etiquetas de API son indicios. El software legítimo usa todas y cada una de esas API
Licencia
binkeep tiene licencia MIT, consulte LICENSE.
Código de terceros incluido, con los textos de licencia junto a él en vendor/: