capstone
zydis
Our great sponsors
capstone | zydis | |
---|---|---|
1 | 4 | |
5,294 | 3,188 | |
- | 2.4% | |
5.3 | 7.7 | |
over 2 years ago | 10 days ago | |
C | C | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
capstone
zydis
-
Exploring x86-64 Instruction Encoding
You can visualize how instructions are encoded with zydisinfo. Pass in your architecture and the hex bytes of the instructions and it’ll show all relevant info
https://github.com/zyantific/zydis/tree/master
https://www.hexacorn.com/blog/2023/09/27/zydisinfo-the-disas...
- Zydis – Fast and lightweight x86/x86-64 disassembler and code generation library
- Zydis Disassembler Library - Release v3.2.0
-
Resources on building a disassembler/debugger(like gdb/IDA but better) in C ?
Start with a disassembler. Your first job is to parse out the binary format (ELF/PE/Mach-O) and get the raw bytes representing the machine code from the text section. You need to parse and decode them into actual instructions, and a disassembly framework like capstone or zydis or countless others can help interpret the bytes. At this point you now have a basic linear disassembly view (similar to objdump) of your compiled executable, and can continue to add features, like visualizing control flow, identifying functions, resolving strings and imports from the other sections, etc.
What are some alternatives?
Unicorn Engine - Unicorn CPU emulator framework (ARM, AArch64, M68K, Mips, Sparc, PowerPC, RiscV, S390x, TriCore, X86)
radare2 - UNIX-like reverse engineering framework and command-line toolset
cpufetch - Simple yet fancy CPU architecture fetching tool
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.
flecs - A fast entity component system (ECS) for C & C++
android-inline-hook - :fire: ShadowHook is an Android inline hook library which supports thumb, arm32 and arm64.
semblance - Disassembler for Windows executables. Supports 16-bit NE (New Executable), MZ (DOS), and PE (Portable Executable, i.e. Win32) files.
cv32e40p - CV32E40P is an in-order 4-stage RISC-V RV32IMFCXpulp CPU based on RI5CY from PULP-Platform
fadec - A fast and lightweight decoder for x86 and x86-64 and encoder for x86-64.
reko - Reko is a binary decompiler.
capstone - Capstone disassembly/disassembler framework for ARM, ARM64 (ARMv8), BPF, Ethereum VM, M68K, M680X, Mips, MOS65XX, PPC, RISC-V(rv32G/rv64G), SH, Sparc, SystemZ, TMS320C64X, TriCore, Webassembly, XCore and X86.