ruby-mine

exploring the mine

RubyInject

von cypher am 26.11.2007 (13 Uhr)

Laurent Sansonetti ist der Herr der bei Apple für Ruby verantwortlich ist. Neben dem Ruby Interpreter kümmert er sich auch um so sachen wie RubyCocoa, einer Ruby-ObjectiveC-Bridge, mit der man native OS X Programme in Ruby schreiben kann.

Und jetzt hat er RubyInject veröffentlicht.

Laurent Sansonetti ist der Herr der bei Apple für Ruby verantwortlich ist. Neben dem Ruby Interpreter kümmert er sich auch um so Sachen wie RubyCocoa, einer Ruby-ObjectiveC-Bridge, mit der man native OS X Programme in Ruby schreiben kann.

Und jetzt hat er RubyInject veröffentlicht.

Was das macht?

Nun, damit kann man den Ruby Interpreter in andere, laufende OS X-Prozesse injezieren. Und diese dann manipulieren.

Herr Sansonetti gibt auch gleich ein kleines Beispiel:

$ 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
=> "Object"
>> NSApp
=> "#<OSX::NSApplication:0xafd0962 class='NSApplication' id=0x1168e0>"
>> NSApp.windows
=> "#<NSCFArray [#<OSX::NSWindow:0xafc7074 class='NSWindow' id=0x177f10>]>"
>> 

Sprich, es ist jetzt möglich andere Prozesse mit Ruby zu steuern und verändern. Auf eigene Gefahr natürlich :)

RubyInject setzt Mac OS 10.5 und RubyCocoa 0.13 voraus.


Kommentar schreiben

Name (notwendig)

Mail (wird nicht veröffentlicht)

Webseite


Kommentare

  1. bovi schrieb am 29.11.2007 (08 Uhr)

    Danke Cypher. Das ist wohl das AutoGUI Pendant zu Windows. Schön das bei Apple kräftig am Ruby Support weitergearbeitet wird.