The hdis86 package
hdis86 is an interface to the
udis86 disassembler, which decodes machine
code for 16-, 32-, and 64-bit x86 and x86-64 / AMD64 processors.
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:
Puremodule has the simplest interface, effectively
ByteString -> [Instruction].
IOmodule exposes an imperative API closely matching the
udis86state machine, while providing Haskellish types and automatic resource management.
Cmodule is a direct import of the
udis86library, with C types and conventions.
Many users can simply import
hdis86 will statically link a built-in copy of
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
This code is available on GitHub at https://github.com/kmcallister/hdis86.
udis86 project website is located at http://udis86.sourceforge.net/.
[Skip to Readme]
|Dependencies||base (>=3 && <5), bytestring (>=0.9), containers (>=0.3) [details]|
|Author||Keegan McAllister <firstname.lastname@example.org>|
|Maintainer||Keegan McAllister <email@example.com>|
|Category||Disassembler, Language, Foreign, Reverse Engineering|
|Uploaded||Sun Mar 6 20:47:57 UTC 2011 by KeeganMcAllister|
|Downloads||737 total (60 in the last 30 days)|
|Rating||(no votes yet) [estimated by rule of succession]|
|Status||Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI
Dynamically link to the system's copy of udis86.
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
For package maintainers and hackage trustees