C Disassembler

Open-source C projects categorized as Disassembler

Top 11 C Disassembler Projects

Disassembler
  1. radare2

    UNIX-like reverse engineering framework and command-line toolset

  2. CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  3. capstone

    Capstone disassembly/disassembler framework for ARM, ARM64 (ARMv8), Alpha, BPF, Ethereum VM, HPPA, LoongArch, M68K, M680X, Mips, MOS65XX, PPC, RISC-V(rv32G/rv64G), SH, Sparc, SystemZ, TMS320C64X, TriCore, Webassembly, XCore and X86.

    Project mention: Capstone Disassembler Framework | news.ycombinator.com | 2024-09-25

    It just updated to the nearly latest LLVM, so that argument is void: https://github.com/capstone-engine/capstone/blob/next/docs/c...

  4. zydis

    Fast and lightweight x86/x86-64 disassembler and code generation library

  5. ret-sync

    ret-sync is a set of plugins that helps to synchronize a debugging session (WinDbg/GDB/LLDB/OllyDbg2/x64dbg) with IDA/Ghidra/Binary Ninja disassemblers.

  6. bddisasm

    bddisasm is a fast, lightweight, x86/x64 instruction decoder. The project also features a fast, basic, x86/x64 instruction emulator, designed specifically to detect shellcode-like behavior.

  7. fadec

    A fast and lightweight decoder for x86 and x86-64 and encoder for x86-64.

    Project mention: Weird things I learned while writing an x86 emulator | news.ycombinator.com | 2024-07-10

    Thanks for the pointer to QEMU's decoder! I actually never looked at it before.

    So you coded all the tables manually in C -- interesting, that's quite some effort. I opted to autogenerate the tables (and keep them as data only => smaller memory footprint) [1,2]. That's doable, because x86 encodings are mostly fairly consistent. I can also generate an encoder from it (ok, you don't need that). Re 'custom size "xh"': AVX-512 also has fourth and eighth. Also interesting that you have a separate row for "66+F2". I special case these two (CRC32, MOVBE) instructions with a flag.

    I think the prefix decoding is not quite right for x86-64: 26/2e/36/3e are ignored in 64-bit mode, except for 2e/3e as branch-not-taken/taken hints and 3e as notrack. (See SDM Vol. 1 3.3.7.1 "Other segment override prefixes (CS, DS, ES, and SS) are ignored.") Also, REX prefixes that don't immediately preceed the opcode (or VEX/EVEX prefix) are ignored. Anyhow, I need to take a closer look at the decoder with more time. :-)

    > For EVEX my plan is to keep the raw bits until after the opcode has been read

    I came to the same conclusion that this is necessary with APX. The map+prefix+opcode combination identifies how the other fields are to be interpreted. For AVX-512, storing the last byte was sufficient, but with APX, vvvv got a second meaning.

    > Nevertheless there are several cases in which the manual is wrong or doesn't say the whole story.

    Yes... especially for corner cases, getting real hardware is the only reliable way to find out, how the CPU behaves.

    [1]: https://github.com/aengelke/fadec/blob/master/instrs.txt

  8. semblance

    Disassembler for Windows executables. Supports 16-bit NE (New Executable), MZ (DOS), and PE (Portable Executable, i.e. Win32) files.

  9. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  10. lfi

    LFI: Practical, Efficient, and Secure Software-based Sandboxing

  11. dis68k

    Modernised version of W. de Waal's public domain 68000 disassembler.

  12. lm8

    A custom 8-bit computer and software suite

  13. hdis86

    Haskell interface to the udis86 disassembler for x86 and x86-64 / AMD64

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020).

C Disassembler discussion

Log in or Post with

C Disassembler related posts

  • Weird things I learned while writing an x86 emulator

    9 projects | news.ycombinator.com | 10 Jul 2024
  • Exploring x86-64 Instruction Encoding

    1 project | news.ycombinator.com | 7 Jan 2024
  • Exploring the Gameboy Memory Bank Controller (2020)

    2 projects | news.ycombinator.com | 10 Apr 2023
  • This is a WIP PC port of Super Metroid (via decompilation, of course)

    5 projects | /r/emulation | 6 Mar 2023
  • Capstone disassembly/disassembler framework: Core (Arm, Arm64, BPF, EVM, M68K, M680X, MOS65xx, Mips, PPC, RISCV, Sparc, SystemZ, TMS320C64x, Web Assembly, X86, X86_64, XCore) + bindings.

    1 project | /r/ReverseEngineering | 20 Dec 2022
  • ret-sync+WinDbg+Ghidra - program unavailable

    1 project | /r/ghidra | 18 Apr 2022
  • Zydis – Fast and lightweight x86/x86-64 disassembler and code generation library

    1 project | news.ycombinator.com | 6 Feb 2022
  • A note from our sponsor - SaaSHub
    www.saashub.com | 27 Mar 2025
    SaaSHub helps you find the best software and product alternatives Learn more →

Index

What are some of the best open-source Disassembler projects in C? This list will help you:

# Project Stars
1 radare2 21,379
2 capstone 7,876
3 zydis 3,637
4 ret-sync 2,095
5 bddisasm 940
6 fadec 178
7 semblance 143
8 lfi 63
9 dis68k 40
10 lm8 21
11 hdis86 14

Sponsored
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai

Did you know that C is
the 6th most popular programming language
based on number of references?