The hdis86 package

[Tags: bsd3, library]

hdis86 is an interface to the udis86 disassembler, which decodes machine code for 16-, 32-, and 64-bit x86 and x86-64 / AMD64 processors. hdis86 provides an instruction stream as a Haskell algebraic data type, suitable for inspection by pattern matching. It also provides metadata such as assembly syntax in Intel or AT&T flavors.

This library exposes three layers of wrapping:

Many users can simply import Hdis86.

The Incremental module provides disassembly of lazy ByteStrings, and a function for building other incremental operations.

By default, hdis86 will statically link a built-in copy of udis86-1.7, which is provided by its author under a similar BSD license. See inside the tarball for more information. If you have udis86 installed on your system, you can instead link dynamically using cabal configure --flags=external-udis86. In that case see also doc/customizing.txt.

This code is available on GitHub at

The udis86 project website is located at

New in version 0.2:


Versions0.1, 0.2
Change logNone available
Dependenciesbase (>=3 && <5), bytestring (>=0.9), containers (>=0.3), QuickCheck (>=2.4)
AuthorKeegan McAllister <>
MaintainerKeegan McAllister <>
CategoryDisassembler, Language, Foreign, Reverse Engineering
Home page
Source repositoryhead: git clone git://
UploadedSun Aug 28 15:58:11 UTC 2011 by KeeganMcAllister
Downloads384 total (15 in last 30 days)
StatusDocs uploaded by user
Build status unknown [no reports yet]




external-udis86Dynamically link to the system's copy of udis86.Disabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainers' corner

For package maintainers and hackage trustees