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
Kommentare
Danke Cypher. Das ist wohl das AutoGUI Pendant zu Windows. Schön das bei Apple kräftig am Ruby Support weitergearbeitet wird.