Hijack,可以给现有的 Ruby 进程提供 irb 会话。
Hijack 允许你连接到任何 Ruby 进程并执行代码,就好像它是一个普通的 IRB 会话一样。不需要目标进程带劫持代码,Hijack 就可以连接到任何 Ruby 进程。这是通过使用 gdb 向启动 DRB 服务器的进程注入负载、分离 gdb 并重连 DRb 来实现的。需要注意的是,gdb 会在目标进程是附加的时候停顿该进程。尽管注入的过程非常快,进程只会停顿几毫秒。
Hijack 在 Unix socket 文件的基础上使用 DRb,因此,你需与要劫持的进程在同一台机器上。这是出于安全考虑的设计,对于远程进程,你也需是该进程的同个用户,来运行 Hijack 客户端。
$ hijack 16451 => Hijacked 16451 (my_script.rb) (ruby 1.8.7 [i686-darwin9]) >>