Home/Tools/Security/Machine Code to Assembly Disassembler

Machine Code to Assembly Disassembler

Convert hexadecimal machine code to human-readable assembly language. Supports multiple architectures including x86-64, ARM, ARM64, and RISC-V with detailed instruction encoding breakdown.

100% Private - Runs Entirely in Your Browser
No data is sent to any server. All processing happens locally on your device.

Online Machine Code Disassembler - Convert Hex to Assembly

Use this free online disassembler to convert machine code (hexadecimal bytes) into human-readable assembly language. Paste your hex opcodes and instantly see the corresponding assembly instructions with detailed encoding breakdowns. All processing happens in your browser - your code never leaves your computer.

Supported Architectures:

  • • x86-64 (Intel/AMD 64-bit)
  • • ARM (32-bit)
  • • ARM64 / AArch64 (64-bit ARM)
  • • RISC-V (32-bit and 64-bit)

Use Cases:

  • • Reverse engineering binaries
  • • Malware analysis and shellcode inspection
  • • CTF challenges and security research
  • • Learning assembly language
  • • Debugging compiled code
Loading Machine Code to Assembly Disassembler...
Loading interactive tool...

Analyzing Compiled Binaries?

Our reverse engineering team analyzes malware, firmware, and compiled applications.

Disassemble Machine Code

Convert raw machine code bytes into readable assembly instructions. Supports x86, x64, ARM, and more.

Architectures

  • x86 (32-bit Intel/AMD)
  • x86-64 (64-bit Intel/AMD)
  • ARM (32-bit and 64-bit)
  • MIPS, PowerPC

Uses

Malware analysis, exploit development, understanding compiled code.

What is Machine Code Disassembly?

Machine code disassembly is the process of converting binary machine code (hexadecimal bytes) back into human-readable assembly language instructions. When software is compiled, high-level source code (like C, C++, or Rust) is transformed into machine code—the raw binary instructions that processors execute directly. Disassembly reverses this process, allowing security researchers, reverse engineers, and developers to analyze compiled binaries without access to the original source code.

The disassembly process involves:

  • Instruction Decoding: Interpreting byte sequences as processor instructions based on the target architecture (x86-64, ARM, RISC-V, etc.)
  • Operand Analysis: Identifying registers, memory addresses, and immediate values used by each instruction
  • Syntax Translation: Converting the decoded instruction into assembly syntax (Intel, AT&T, or architecture-specific format)

This tool uses the Capstone disassembly framework, a lightweight and powerful engine that supports multiple architectures and is widely used in professional security tools like IDA Pro, Ghidra, and radare2.

Common Use Cases for Disassembly

Disassemblers are essential tools across multiple domains:

Malware Analysis & Cybersecurity

Security researchers use disassemblers to analyze malicious software, understand attack techniques, and develop detection signatures. By examining the assembly code, analysts can identify shellcode, detect obfuscation techniques, and reverse-engineer malware behavior without executing it.

Reverse Engineering & Software Analysis

When source code is unavailable, disassembly allows developers to understand how proprietary software works, identify security vulnerabilities, or ensure compatibility. This is critical for legacy system maintenance, interoperability research, and vulnerability disclosure.

CTF Challenges & Security Training

Capture The Flag (CTF) competitions frequently include reverse engineering challenges where participants must disassemble binaries to find hidden flags, bypass protection mechanisms, or understand exploitation techniques. Disassembly skills are fundamental for binary exploitation and pwn challenges.

Firmware & Embedded Systems

Firmware reverse engineering requires disassembling compiled code from IoT devices, routers, and embedded systems. This helps identify security flaws in devices that may lack proper security updates or contain hardcoded credentials.

Learning Computer Architecture

Students and developers learning assembly language can use disassemblers to see how compilers translate high-level code into machine instructions, understand optimization techniques, and learn how different CPU architectures handle the same operations.

Understanding Processor Architectures

Different processor architectures use distinct instruction sets, each with unique characteristics:

x86-64 (AMD64/Intel 64)

The most common architecture for desktop and server systems. x86-64 uses variable-length instructions (1-15 bytes), complex instruction set computing (CISC), and supports both Intel and AT&T assembly syntax. It's widely used in Windows, Linux, and macOS systems.

ARM & ARM64 (AArch64)

Dominant in mobile devices, embedded systems, and increasingly in desktop computers (Apple Silicon). ARM uses fixed-length 32-bit instructions (or 16-bit in Thumb mode), reduced instruction set computing (RISC), and is known for power efficiency. ARM64 is the 64-bit evolution with enhanced capabilities.

RISC-V

An open-source instruction set architecture gaining traction in embedded systems, IoT devices, and research. RISC-V emphasizes simplicity, modularity, and extensibility, making it popular for custom processor designs and educational purposes.

MIPS

Historically used in routers, embedded systems, and game consoles (PlayStation). While declining in new designs, MIPS remains important for legacy device analysis and security research.

PowerPC (PPC)

Found in older Apple computers (pre-Intel Macs), gaming consoles (PlayStation 3, Xbox 360), and embedded systems. PowerPC uses a RISC architecture with fixed-length 32-bit instructions.

Each architecture requires different disassembly approaches, as instruction encoding, registers, and calling conventions vary significantly.

Intel vs AT&T Assembly Syntax

x86/x86-64 assembly can be written in two main syntaxes, which differ in instruction ordering and formatting:

Intel Syntax (Default for Windows, IDA Pro)

mov eax, 5          ; destination first, source second
add rax, rbx        ; rax = rax + rbx
mov [rax], ebx      ; store ebx into memory at address rax

Intel syntax is more intuitive for beginners: destination comes first (like x = y in programming), and memory references use brackets without size prefixes.

AT&T Syntax (Default for GCC, Unix tools)

movl $5, %eax       ; source first, destination second
addq %rbx, %rax     ; rax = rax + rbx
movl %ebx, (%rax)   ; store ebx into memory at address rax

AT&T syntax requires percent signs before registers, dollar signs before immediate values, and suffixes indicating operand size (b=byte, w=word, l=long, q=quad).

When to Use Each:

  • Intel syntax: Preferred for Windows reverse engineering, malware analysis, and beginners learning assembly
  • AT&T syntax: Standard for Unix/Linux development, GCC compiler output, and GDB debugger

This tool defaults to Intel syntax but allows switching for compatibility with different tools and workflows.

How This Tool Compares to Professional Disassemblers

Professional reverse engineering tools offer different capabilities and trade-offs:

IDA Pro (Commercial, ~$1,800-$3,500)

The industry standard for professional reverse engineering. IDA Pro offers advanced features like cross-references, function recognition, automatic commenting, and the Hex-Rays decompiler (converts assembly back to C-like pseudocode). It excels at analyzing large, complex binaries and provides extensive plugin support.

Ghidra (Free, Open-Source)

Developed by the NSA and released publicly in 2019, Ghidra rivals IDA Pro in functionality while being completely free. It includes a powerful decompiler, collaborative analysis features, and strong multi-architecture support. Ghidra is ideal for large-scale analysis and team collaboration.

radare2/Cutter (Free, Open-Source)

A command-line reverse engineering framework with a GUI frontend (Cutter). Radare2 emphasizes scriptability, debugging capabilities, and supports the widest range of architectures. It's preferred for dynamic analysis, embedded systems, and users comfortable with terminal workflows.

Binary Ninja (Commercial, ~$300-$3,000)

A modern disassembler known for its clean interface, powerful API, and intermediate language (BNIL) for analysis. Binary Ninja is popular among CTF players and security researchers who value customization and scripting.

This Tool: Machine Code Disassembler

Our tool focuses on quick, online disassembly without installation requirements. It's ideal for:

  • Analyzing shellcode snippets during CTF challenges
  • Quick instruction lookups while reading security research
  • Learning assembly language interactively
  • Mobile/tablet access when desktop tools aren't available
  • Privacy-conscious analysis (100% client-side, no server uploads)

While professional tools offer deeper analysis capabilities (control flow graphs, function analysis, decompilation), this online disassembler provides instant access for focused, instruction-level analysis without the complexity or cost of full reverse engineering suites.

Best Practices for Binary Analysis

Follow these guidelines for effective disassembly and reverse engineering:

1. Verify Architecture and Endianness

Always confirm the target architecture before disassembly. x86-64 uses little-endian byte ordering, while some ARM and MIPS systems use big-endian. Incorrect architecture selection produces nonsensical output.

2. Start with Entry Points

For executable files, begin disassembly at the program entry point (often found in PE/ELF headers). For shellcode, identify the starting instruction carefully—shellcode often includes NOP sleds or position-independent code.

3. Identify Code vs Data

Not all bytes in a binary are instructions. Compilers mix code with embedded data (strings, constants, jump tables). If disassembly produces strange instructions, you may be looking at data regions.

4. Use Context from Other Tools

Combine disassembly with other analysis techniques:

  • Strings extraction to find embedded text
  • Entropy analysis to detect encryption/compression
  • File format analysis (PE/ELF headers) for structural information
  • Dynamic analysis (debugging, tracing) to confirm static analysis findings

5. Document Your Findings

Professional reverse engineers maintain detailed notes about:

  • Function purposes and naming conventions
  • Register usage patterns
  • Calling conventions observed
  • Interesting code patterns or security vulnerabilities

6. Respect Legal and Ethical Boundaries

Only reverse engineer software where you have legal authorization:

  • Software you own or have explicit permission to analyze
  • CTF challenges and educational exercises
  • Security research with responsible disclosure
  • Malware samples in isolated research environments

Unauthorized reverse engineering may violate software licenses, anti-circumvention laws (DMCA), or computer fraud statutes.

Frequently Asked Questions

Common questions about the Machine Code to Assembly Disassembler

A disassembler converts machine code (binary instructions) back into assembly language, the human-readable representation of CPU instructions. Unlike decompilers which attempt to produce high-level source code, disassemblers produce low-level assembly that directly corresponds to the machine code bytes.

Disassemblers are essential for reverse engineering, malware analysis, debugging compiled programs, and understanding how software works at the lowest level. They help security researchers identify vulnerabilities, analyze suspicious files, and verify that compiled code matches its intended behavior.

Learn more: Read our comprehensive guide Disassemblers Explained: Your Complete Guide to Assembly-Level Reverse Engineering to understand how disassemblers work, compare professional tools, and explore career opportunities.

This tool supports multiple processor architectures commonly encountered in reverse engineering:

  • x86-64 (AMD64/Intel 64): Dominant architecture for desktop and server systems
  • x86-32 (i386): Legacy 32-bit Intel/AMD processors
  • ARM: 32-bit ARM processors in embedded systems and IoT
  • ARM64 (AArch64): 64-bit ARM in modern smartphones and Apple Silicon
  • RISC-V: Open-source ISA for embedded systems
  • MIPS: Routers, network equipment, legacy consoles
  • PowerPC: Older Macs, gaming consoles, industrial systems

For x86/x86-64, you can choose between Intel syntax (destination first) and AT&T syntax (source first).

The tool accepts machine code in multiple common formats for maximum flexibility:

  • Raw hexadecimal: Continuous hex string like 4831c0bb2a000000
  • Space-separated hex: 48 31 c0 bb 2a 00 00 00
  • C-style byte arrays: \x48\x31\xc0\xbb\x2a\x00\x00\x00
  • Python bytes format: b"\x48\x31\xc0\xb"
  • Binary file upload: Upload compiled executables (EXE, ELF, Mach-O) or raw binary dumps

The tool automatically strips common formatting characters (spaces, newlines, backslashes, quotes) to process the raw bytes. For uploaded files, it attempts to detect the file format and locate executable code sections automatically.

Shellcode analysis is a primary use case for this disassembler. Follow these steps:

1. Copy the Shellcode

Obtain shellcode from exploit code, CTF challenges, or malware samples.

2. Select Architecture

Most shellcode targets x86-64 or x86-32. Check register usage (RAX/RBX = 64-bit, EAX/EBX = 32-bit).

3. Paste and Disassemble

The tool accepts raw hex, byte arrays, and space-separated formats.

4. Look for Patterns

  • NOP sleds: Repeated 0x90 bytes
  • Position-independent code: CALL/POP tricks
  • Syscalls: INT 0x80 or SYSCALL instructions
  • Stack strings: Data pushed to avoid NULL bytes

5. Identify Payload

Common types: reverse shells, bind shells, command execution, file operations.

Deep dive: Read our comprehensive Shellcode Analysis for Security Researchers: A Complete Guide for advanced techniques, encoding methods, and real-world examples.

Yes, this tool supports uploading Windows PE files, Linux ELF binaries, macOS Mach-O executables, and raw firmware dumps.

How Upload Works

  • PE files: Auto-detects entry point and code section
  • ELF files: Extracts entry point and .text section
  • Mach-O: Identifies executable segments
  • Raw binaries: Starts from offset 0

Best Practices

  1. Select correct architecture (x86-64 for most modern binaries)
  2. Tool scans multiple offsets if needed
  3. Large files over 10MB may take longer (client-side processing)

Privacy: All processing in your browser, no server uploads.

Learn more: See our deep dive Understanding PE, ELF, and Mach-O: Executable File Format Deep Dive to understand file structures and analysis techniques.

Packed or obfuscated binaries require special handling. Many programs and malware use packers (UPX, Themida, VMProtect) that compress or encrypt the original code.

Packer Detection

This tool includes basic detection using entropy analysis, PE section name analysis, and Detect It Easy (DiE) signatures.

If Packing Detected

  1. Tool warns that disassembly shows the unpacking stub, not actual program logic
  2. Unpack first using UPX unpacker, de4dot, or manual debugger unpacking
  3. Re-upload the unpacked binary for accurate disassembly

Obfuscated Code

Obfuscation techniques (junk instructions, control flow flattening, opaque predicates) still disassemble correctly, but the assembly will be intentionally convoluted and harder to understand.

Best Practice: Use packer identification tools first (Detect It Easy, PEiD), unpack if necessary, then proceed with disassembly.

Master unpacking: Read our comprehensive Complete Guide to Unpacking and Deobfuscating Malware for manual and automated unpacking techniques.

This tool provides several professional-grade features:

1. Binary File Format Detection

Automatically identifies PE (Windows), ELF (Linux), Mach-O (macOS) formats and extracts entry points and section headers.

2. Packer & Obfuscation Detection

Uses Detect It Easy signatures to identify common packers (UPX, Themida), compilers, and entropy analysis to detect encryption.

3. String Extraction

Scans binaries for ASCII/Unicode strings to find debugging messages, URLs, credentials, and configuration data.

4. Instruction Encoding Details

Shows raw byte encoding, instruction size, memory addresses, and syntax-highlighted mnemonics.

5. Multiple Architecture Support

Allows switching between 32-bit and 64-bit modes for multi-architecture malware analysis.

6. Syntax Flexibility

Toggles between Intel and AT&T syntax for x86/x86-64 compatibility.

7. Privacy-First Design

Processes everything client-side using WebAssembly with no server uploads, making it safe for sensitive binaries and functional offline.

ℹ️ Disclaimer

This tool is provided for informational and educational purposes only. All processing happens entirely in your browser - no data is sent to or stored on our servers. While we strive for accuracy, we make no warranties about the completeness or reliability of results. Use at your own discretion.