Most recent edit on 2007-11-24 11:16:29 by LaurentSansonetti
Additions:
It will spawn a new thread on the remote process, initialize the Ruby interpreter, start a new DRb server that exposes an expression evaluator object, and advertises the DRb server URI on Bonjour.
A client is provided, inject.rb, that waits on Bonjour for the DRb server URI, connects to it, then either executes a given Ruby script or starts an IRB session.
Deletions:
It will spawn a new thread on the remote process, initialize the Ruby interpreter, start a new DRb server that exposes an expression evaluator, and advertises the DRb server URI on bonjour.
A client is provided, inject.rb, that waits on bonjour for the DRb server URI, then connects to it.
Edited on 2007-11-24 11:13:59 by LaurentSansonetti
Additions:
RubyInject is especially useful when combined with RubyCocoa. You can at runtime inject RubyCocoa into an Objective-C application and start introspecting and messaging its objects:
$ open -a textedit
$ ps auxwww | grep TextEdit | grep -v grep
lrz 69194 0.0 0.3 423316 6136 ?? S 8:12PM 0:00.15 /Applications/TextEdit.app/Contents/MacOS/TextEdit -psn_0_10574357
$ sudo ruby inject.rb 69194
Password:
=> "Object"
=> "#<NSCFArray [#<OSX::NSWindow:0xafc7074 class='NSWindow' id=0x177f10>]>"
Deletions:
RubyInject is especially useful when combined with RubyCocoa. You can at runtime inject RubyCocoa into an Objective-C application and start introspecting and messaging its objects.
Edited on 2007-11-24 11:10:42 by LaurentSansonetti
Additions:
RubyInject is especially useful when combined with RubyCocoa. You can at runtime inject RubyCocoa into an Objective-C application and start introspecting and messaging its objects.
You can download from the source archives∞ or get the latest bits from SVN:
Deletions:
You can download source archives∞ or the latest bits from SVN:
Edited on 2007-11-24 11:07:35 by LaurentSansonetti
Additions:
A client is provided, inject.rb, that waits on bonjour for the DRb server URI, then connects to it.
See the README file for details about installation, and COPYRIGHT about licensing terms.
Deletions:
= RubyInject =
A client is provided, inject.rb, that waits on bonjour for the DRb server URI, then connects to it.
See the README file for details about installation, and COPYRIGHT about licensing terms.
Oldest known version of this page was edited on 2007-11-24 11:04:17 by LaurentSansonetti []
RubyInject is a Mac OS X framework that allows you to inject at runtime the Ruby interpreter into any running application, using the mach_star∞ mechanism.
It will spawn a new thread on the remote process, initialize the Ruby interpreter, start a new DRb server that exposes an expression evaluator, and advertises the DRb server URI on bonjour.
A client is provided, inject.rb, that waits on bonjour for the DRb server URI, then connects to it.
Mac OS X 10.5 or later.
RubyCocoa 0.13.0 or later.
You can download source archives∞ or the latest bits from SVN:
See the README file for details about installation, and COPYRIGHT about licensing terms.
Additions:
It will spawn a new thread on the remote process, initialize the Ruby interpreter, start a new DRb server that exposes an expression evaluator object, and advertises the DRb server URI on Bonjour.
A client is provided, inject.rb, that waits on Bonjour for the DRb server URI, connects to it, then either executes a given Ruby script or starts an IRB session.
Deletions:
It will spawn a new thread on the remote process, initialize the Ruby interpreter, start a new DRb server that exposes an expression evaluator, and advertises the DRb server URI on bonjour.
A client is provided, inject.rb, that waits on bonjour for the DRb server URI, then connects to it.
Edited on 2007-11-24 11:13:59 by LaurentSansonetti
Additions:
RubyInject is especially useful when combined with RubyCocoa. You can at runtime inject RubyCocoa into an Objective-C application and start introspecting and messaging its objects:
$ open -a textedit
$ ps auxwww | grep TextEdit | grep -v grep
lrz 69194 0.0 0.3 423316 6136 ?? S 8:12PM 0:00.15 /Applications/TextEdit.app/Contents/MacOS/TextEdit -psn_0_10574357
$ sudo ruby inject.rb 69194
Password:
require 'osx/cocoa'
=> "true"
include OSX=> "true"
=> "Object"
NSApp
=> "#<OSX::NSApplication:0xafd0962 class='NSApplication' id=0x1168e0>"
NSApp.windows=> "#<OSX::NSApplication:0xafd0962 class='NSApplication' id=0x1168e0>"
=> "#<NSCFArray [#<OSX::NSWindow:0xafc7074 class='NSWindow' id=0x177f10>]>"
Deletions:
RubyInject is especially useful when combined with RubyCocoa. You can at runtime inject RubyCocoa into an Objective-C application and start introspecting and messaging its objects.
Edited on 2007-11-24 11:10:42 by LaurentSansonetti
Additions:
RubyInject is especially useful when combined with RubyCocoa. You can at runtime inject RubyCocoa into an Objective-C application and start introspecting and messaging its objects.
You can download from the source archives∞ or get the latest bits from SVN:
Deletions:
You can download source archives∞ or the latest bits from SVN:
Edited on 2007-11-24 11:07:35 by LaurentSansonetti
Additions:
A client is provided, inject.rb, that waits on bonjour for the DRb server URI, then connects to it.
See the README file for details about installation, and COPYRIGHT about licensing terms.
Deletions:
= RubyInject =
A client is provided, inject.rb, that waits on bonjour for the DRb server URI, then connects to it.
See the README file for details about installation, and COPYRIGHT about licensing terms.
Oldest known version of this page was edited on 2007-11-24 11:04:17 by LaurentSansonetti []
Page view:
= RubyInject =RubyInject is a Mac OS X framework that allows you to inject at runtime the Ruby interpreter into any running application, using the mach_star∞ mechanism.
It will spawn a new thread on the remote process, initialize the Ruby interpreter, start a new DRb server that exposes an expression evaluator, and advertises the DRb server URI on bonjour.
A client is provided, inject.rb, that waits on bonjour for the DRb server URI, then connects to it.
Requirements
Mac OS X 10.5 or later.
RubyCocoa 0.13.0 or later.
Download
You can download source archives∞ or the latest bits from SVN:
$ svn co https://rubycocoa.svn.sourceforge.net/svnroot/rubycocoa/branches/users/lrz/RubyInject
See the README file for details about installation, and COPYRIGHT about licensing terms.