/iced

Blazing fast and correct x86/x64 disassembler, assembler, decoder, encoder for Rust, .NET, Java, Python, Lua

Primary LanguageRustMIT LicenseMIT

iced crates.io NuGet maven pypi GitHub builds codecov

iced is a blazing fast and correct x86 (16/32/64-bit) instruction decoder, disassembler and assembler.

  • 👍 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
  • 👍 Blazing fast: Decodes >250 MB/s and decode+format >130 MB/s (Rust, see here)
  • 👍 Small decoded instructions, only 40 bytes and the decoder doesn't allocate any memory
  • 👍 Create instructions with code assembler, eg. asm.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

License

MIT

Icon

Logo processor by Creative Stall from the Noun Project