by tduehr, crohlf, and tqbf http://chargen.matasano.com
Ragweed is a set of scriptable debugging tools written mostly in native ruby.
Where required the Ruby/DL and Win32API libraries are used to interface the machine and OS native system calls.
Ragweed is supported and has been tested on the following platforms (32bit intel only):
Windows 7 Windows XP Linux Ubuntu 10.4 Linux Ubuntu 9.10 Mac OS X 10.6 Mac OS X 10.5
At this time only Ruby 1.8.x has been tested. We are actively investigating both 64 bit support for each platform and support for Ruby 1.9.x. Unfortunately, both of these things require significant changes to Ragweed.
We are currently moving to FFI from ruby/dl. This will likely result in some incompatibilities if you are using the low level functions calls directly. It will also add ffi as a dependency. This move is to facilitate 1.9 and 64bit support.
This suite is currently fairly piecemeal. Each OS has it's own set of tools. The most complete set is for Win32.
Work is ongoing to complete and unify the OSX and Linux portions.
The FFI move is mostly complete. There may be a few changes to some structures to come, but everything should mostly match the C APIs.
The move to FFI should give us free support for jRuby. This is, however, untested at this time.
Struct's Nerve is an example of the API we are heading toward
require 'debuggerosx' d = Debuggerosx.new(514) # pid of process to trace
Please see the examples directory for more. There are hit tracers for each platform.
FFI - This was required to get around the limitations of Ruby/DL. If you're using Ragweed from jRuby, this should be free.
sudo gem install ragweed # relax with a tasty beverage, you're done
Copyright 2009/2010 Matasano Security, LLC All Rights Reserved