iced
iced is a high performance and correct x86 (16/32/64-bit) instruction decoder, disassembler and assembler.
It can be used for static analysis of x86/x64 binaries, to rewrite code (eg. remove garbage instructions), to relocate code or as a disassembler.
✔️ Supports all Intel and AMD instructions✔️ Correct: All instructions are tested and iced has been tested against other disassemblers/assemblers (xed, gas, objdump, masm, dumpbin, nasm, ndisasm) and fuzzed✔️ Supports .NET, Rust, Python, JavaScript (WebAssembly)✔️ The formatter supports masm, nasm, gas (AT&T), Intel (XED) and there are many options to customize the output✔️ The decoder is 4x+ faster than other similar libraries and doesn't allocate any memory✔️ Small decoded instructions, only 40 bytes✔️ High level Assembler (.NET) providing a simple and lean syntax (e.gasm.mov(eax, edx)
))✔️ The encoder can be used to re-encode decoded instructions at any address✔️ API to get instruction info, eg. read/written registers, memory and rflags bits; CPUID feature flag, control flow info, etc✔️ License: MIT
Examples and/or Build Instructions
License
MIT
Icon
Logo processor
by Creative Stall from the Noun Project