Iced
Iced is a high performance and correct x86 (16/32/64-bit) instruction decoder, disassembler and assembler written in C#. 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 - ✔️100% C# code - ✔️The formatter supports masm, nasm, gas (AT&T), Intel (XED) and there are many options to customize the output - ✔️The decoder is 2x+ faster than other similar libraries and doesn't allocate any memory - ✔️Small decoded instructions, only 32 bytes - ✔️High level Assembler providing a simple and lean syntax (e.g `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, flow control info, etc - ✔️Supports `.NET Standard 2.0/2.1+` and `.NET Framework 4.5+` - ✔️License: MIT
Install
dotnet add package Iced --version 1.8.0
Install-Package Iced -Version 1.8.0
<PackageReference Include="Iced" Version="1.8.0" />
Frameworks
Dependencies
No declared dependencies.
Adoption guide
Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.
Compatibility metadata lists 3 target frameworks; confirm the exact target used by your application.
How to read this guidance
Sources: published NuGet v3 registry metadata and explicit NuBrowse editorial guides. Refresh: package metadata is refreshed from NuGet when the page loads. Limit: this is not a security, legal or compatibility guarantee; validate the selected version in your project.
Useful next steps
Move from package metadata to a concrete selection or review workflow.