class Rex::Post::Meterpreter::Extensions::Stdapi::Sys::ProcessList
Simple wrapper class for storing processes
Public Instance Methods
to_table(opts={})
click to toggle source
Create a Rex::Ui::Text::Table
out of the processes stored in this list
opts
is passed on to Rex::Ui::Text::Table.new
, mostly unmolested
Note that this output is affected by Rex::Post::Meterpreter::Client#unicode_filter_encode
# File lib/rex/post/meterpreter/extensions/stdapi/sys/process.rb, line 380 def to_table(opts={}) if empty? return Rex::Ui::Text::Table.new(opts) end cols = [ "PID", "PPID", "Name", "Arch", "Session", "User", "Path" ] # Arch and Session are specific to native Windows, PHP and Java can't do # ppid. Cut columns from the list if they aren't there. It is conceivable # that processes might have different columns, but for now assume that the # first one is representative. cols.delete_if { |c| !( first.has_key?(c.downcase) ) or first[c.downcase].nil? } opts = { "Header" => "Process List", "Columns" => cols }.merge(opts) tbl = Rex::Ui::Text::Table.new(opts) each { |process| tbl << cols.map {|c| process[c.downcase] }.compact } tbl end