Desensamblador gratis
El Desensamblador online convierte código máquina en ensamblador en el navegador con Capstone 5. Pega hex, escapes \x, arrays de bytes de C o Python o base64, o elige un rango de un archivo binario, y luego selecciona x86 (sintaxis Intel, AT&T o MASM), ARM, Thumb, ARM64, MIPS, PowerPC, RISC-V, WebAssembly, BPF u otras diez arquitecturas. Los bytes no válidos se muestran como líneas .byte.
- Arquitecturas:
- 18, entre ellas x86, ARM64, RISC-V, WebAssembly
- Entrada:
- Hex, \x, arrays C/Python, base64, archivo
- Límite:
- 256 KiB por vez; enlace compartido: 4 KiB máx.
- Precio:
- Gratis
- Funciona:
- En local, en tu navegador
- Subidas:
- Ninguna: los archivos no salen de tu dispositivo
- Cuenta:
- No hace falta
Respuestas rápidas
¿Se suben mis bytes a algún sitio?
No. Capstone funciona como WebAssembly en un worker en segundo plano en tu dispositivo. La única descarga es el propio motor, unos 3,6 MB desde este sitio, la primera vez que pulsas Disassemble o abres un enlace compartido. Los archivos se leen en local, y solo en el rango que eliges. Un enlace compartido guarda los bytes después del # de la dirección, una parte que los navegadores no envían a los servidores.
¿Qué arquitecturas admite?
Las 18 de Capstone 5: x86 (16, 32 y 64 bits), ARM y Thumb (Cortex-M incluido), ARM64, MIPS (32, 64, Release 6, microMIPS), PowerPC (32, 64, paired singles), SPARC, RISC-V (32 y 64 bits, con o sin instrucciones comprimidas), WebAssembly, eBPF y BPF clásico, Ethereum EVM, del 68000 al 68060, la familia 6800/6809, 6502 y 65816, SuperH, SystemZ, TriCore, TMS320C64x y XCore.
Por ahora la interfaz de la herramienta está en inglés.
Se procesa en tu dispositivo: tus archivos nunca se suben. Cómo funciona
Actividad de red en esta pestaña
Lo que esta página ha solicitado desde que abriste el sitio en esta pestaña. Una subida es cualquier solicitud que envía datos: POST, PUT, PATCH o una solicitud con cuerpo.
Ninguna subida: esta página no ha enviado nada.
Todavía no hay solicitudes de red.
Para ver todas las solicitudes, abre las herramientas para desarrolladores del navegador (pestaña Red).
Cómo usar Desensamblador
- Pega los bytes en hexadecimal (55 48 89 e5, 0x55, 0x48, \x55\x48 o un array de C o Python) o en base64, o abre un archivo binario y fija Offset (desplazamiento) y Length (longitud) que se leerán.
- Elige Architecture (arquitectura), Mode (modo), Byte order (orden de bytes) y, para x86, la sintaxis Intel, AT&T o MASM. Fija Start address (dirección inicial) para que los destinos de saltos y llamadas muestren las direcciones reales.
- Pulsa Disassemble: el listado muestra dirección, bytes, mnemónico y operandos, y se actualiza mientras editas. Activa Instruction details para ver los registros leídos y escritos y los grupos de cada instrucción.
- Usa Copy listing o Download .txt, o Copy share link para enviar los bytes y los ajustes en un enlace.
Créditos y código abierto
Código propio más bibliotecas de código abierto. Gracias a las personas que hacen posibles estos proyectos.
- Capstone.js (Capstone 5)© Alexandro Sanchez Bach (Capstone.js bindings); Capstone by Nguyen Anh Quynh and the Capstone contributors · BSD-3-Clause
API de la plataforma web utilizadas: WebAssembly, Web Workers, File API, Clipboard API, URL API.
Textos completos de las licencias: avisos de terceros · todos los créditos
Preguntas frecuentes
¿Qué significan las líneas .byte?
Contienen bytes que no son una instrucción válida para la arquitectura y el modo elegidos. El desensamblador los salta un paso de alineación cada vez (1 byte en x86, 4 en ARM64) y continúa. Muchas líneas .byte suelen indicar una arquitectura, un modo o un orden de bytes equivocados, o que esos bytes son datos y no código.
¿Cómo pego shellcode de msfvenom o pwntools?
Pega la salida tal cual: cadenas de C ("\x48\x31…"), líneas de Python (buf += b"\x48…"), cadenas de bytes de pwntools con caracteres imprimibles (b'jhH\xb8/bin') o arrays 0x. El código alrededor de los bytes se ignora, y todo lo que no es un byte se indica con su línea y columna.
¿Puede desensamblar un archivo EXE o ELF entero?
Decodifica los bytes en bruto desde el offset que elijas, hasta 256 KiB; no lee cabeceras, secciones ni símbolos. Busca primero el offset en el archivo de la sección de código (lo muestran readelf, objdump o un visor PE) y desensambla ese rango con la arquitectura y la dirección inicial correctas.
¿Sigue los saltos o descompila el código?
No. Es un barrido lineal: los bytes se decodifican en orden desde el principio, así que los datos mezclados con el código se convierten en instrucciones extrañas. No hay análisis del flujo de control, ni descompilador, ni ensamblador.