The dewdrop package

[Tags:bsd3, library]

Traditional buffer-overflow attacks work by filling a data buffer with exploit code and then redirecting execution to that buffer. As a countermeasure, modern operating systems will forbid (by default) the execution of writable memory regions.

Return-oriented programming [1] is an alternative exploitation strategy that works around this restriction. The exploit payload is built by chaining together short code sequences ("gadgets") which are already present in the exploited program, and thus are allowed to be executed.

dewdrop is a Haskell library for finding useful gadgets in 32- and 64-bit x86 ELF binaries. You can describe the desired gadget properties with a Haskell function, and use the Dewdrop module to make a customized gadget-finder program. Or you can import Dewdrop.Analyze and integrate this functionality into a larger program.

[1] Shacham, Hovav. The Geometry of Innocent Flesh on the Bone: Return-into-libc without Function Calls (on the x86). CCS 2007, pages 552-561.

Properties

Versions 0.1
Dependencies base (>=3 && <5), bytestring (>=0.9), containers (>=0.3), elf (>=0.2), hdis86 (>=0.2), syb (>=0.1) [details]
License BSD3
Author Nelson Elhage <nelhage@nelhage.com>, Keegan McAllister <mcallister.keegan@gmail.com>
Maintainer Keegan McAllister <mcallister.keegan@gmail.com>
Stability Unknown
Category Reverse Engineering, Security
Home page https://github.com/kmcallister/dewdrop
Source repository head: git clone git://github.com/kmcallister/dewdrop.git
Uploaded Sun Aug 28 19:07:37 UTC 2011 by KeeganMcAllister
Distributions NixOS:0.1
Downloads 323 total (6 in the last 30 days)
Votes
0 []
Status Docs uploaded by user
Build status unknown [no reports yet]

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees