Me hice una app web llamada "Dissect" el cual es un static analyzer y disassembler de ejecutables. Lo hice personalmente para un side project que tengo ("WebWINE")
Es mas una utilidad para otro proyecto, para ver como están hecho los ejecutables que uso para probar mi emulador. Pero por si igual les sirve se los comparto.
La app soporta, tanto x86, x64, ARM, ARM64 y MIPS:
- PE (EXE, DLL, SYS)
- ELF (Linux)
- Mach-O (macOS)
- Y cualquier binario raw (Lo muestra en HEX)
Cuenta con:
- File identity (Firmas, hash, timestamps)
- HEX Editor
- - Patcher: Sistema de parches en formato JSON, IPS, BPS, UPS.
- Disassembler (Usa capstone para descompilar los ejecutables)
- Extractor, buscador y editor de Strings (ASCII + UTF-16LE)
- Headers
- Secciones / Segmentos, tanto verlos como modificar, offsets, tamaños, flags, entropía.
- Imports y exports, símbolos externos, tablas del IAT y ordinals.
- Resources embebidos, como icons, manifest, version, const pool, jump-to-data.
- Signature / Packet detector, tipo UPX ASPack VMProtect Themida, Enigma, Go, Rust, etc...
- .NET / CLR metadata extractor.
- File overlays para ver secciones extras (común en self-extractors y packers)
- Code-cava scanner
- In-place rename para secciones, librerías, imports, además que modifica el layout original para tener cuidado con los pads y offsets.
- Diff viewer entre dos binarios, además que permite crear un parche entre ejecutable A y B.
- Escaner de patrones, tipo YARA, con expresiones, textos (ASCII/UTF), regex.