hdis86: Interface to the udis86 disassembler for x86 and x86-64 / AMD64
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:
The
Puremodule has the simplest interface, effectivelyByteString -> [Instruction].The
IOmodule exposes an imperative API closely matching theudis86state machine, while providing Haskellish types and automatic resource management.The
Cmodule is a direct import of theudis86library, with C types and conventions.
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 https://github.com/kmcallister/hdis86.
The udis86 project website is located at http://udis86.sourceforge.net/.
New in version 0.2:
Disassembly of lazy
ByteStringsA function for building other incremental operations
Record selectors on
InstructionQuickCheck
Arbitraryinstances forInstructionand related types
[Skip to Readme]
Modules
[Index]
Flags
Automatic Flags
| Name | Description | Default |
|---|---|---|
| external-udis86 | Dynamically 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
Downloads
- hdis86-0.2.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
| Versions [RSS] | 0.1, 0.2 |
|---|---|
| Dependencies | base (>=3 && <5), bytestring (>=0.9), containers (>=0.3), QuickCheck (>=2.4) [details] |
| License | BSD-3-Clause |
| Author | Keegan McAllister <mcallister.keegan@gmail.com> |
| Maintainer | Keegan McAllister <mcallister.keegan@gmail.com> |
| Category | Disassembler, Language, Foreign, Reverse Engineering |
| Home page | https://github.com/kmcallister/hdis86 |
| Source repo | head: git clone git://github.com/kmcallister/hdis86.git |
| Uploaded | by KeeganMcAllister at 2011-08-28T15:58:11Z |
| Distributions | |
| Reverse Dependencies | 2 direct, 0 indirect [details] |
| Downloads | 2096 total (0 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating | |
| Status | Docs uploaded by user Build status unknown [no reports yet] |