zydis
capstone
Our great sponsors
zydis | capstone | |
---|---|---|
4 | 1 | |
3,176 | 5,294 | |
2.0% | - | |
7.7 | 5.3 | |
9 days ago | over 2 years ago | |
C | C | |
MIT License | GNU General Public License v3.0 or later |
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.
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.
capstone
What are some alternatives?
radare2 - UNIX-like reverse engineering framework and command-line toolset
Unicorn Engine - Unicorn CPU emulator framework (ARM, AArch64, M68K, Mips, Sparc, PowerPC, RiscV, S390x, TriCore, X86)
cpufetch - Simple yet fancy CPU architecture fetching tool
flecs - A fast entity component system (ECS) for C & C++
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.
semblance - Disassembler for Windows executables. Supports 16-bit NE (New Executable), MZ (DOS), and PE (Portable Executable, i.e. Win32) files.
android-inline-hook - :fire: ShadowHook is an Android inline hook library which supports thumb, arm32 and arm64.
fadec - A fast and lightweight decoder for x86 and x86-64 and encoder for x86-64.
cv32e40p - CV32E40P is an in-order 4-stage RISC-V RV32IMFCXpulp CPU based on RI5CY from PULP-Platform
hdis86 - Haskell interface to the udis86 disassembler for x86 and x86-64 / AMD64
reko - Reko is a binary decompiler.