Sha256: 170b29358dcbbfef88b36ef6f70fdaa35431c82676b68cab844987472897110d
Contents?: true
Size: 1.8 KB
Versions: 1
Compression:
Stored size: 1.8 KB
Contents
# frozen_string_literal: true require 'open3' module PWN module Plugins # This plugin is a simple wrapper around the ps command. module PS # Supported Method Parameters:: # proc_list_arr = PWN::Plugins::PS.list public_class_method def self.list(opts = {}) pid = opts[:pid] which_os = PWN::Plugins::DetectOS.type case which_os when :linux format = 'user,pcpu,pid,ppid,uid,group,gid,cpu,command:1000,pmem' cmd = ['ps', '-p', pid.to_s, '-o', format] cmd = ['ps', 'ax', '-o', format] if pid.nil? when :freebsd, :netbsd, :openbsd, :osx format = 'user,pcpu,pid,ppid,uid,group,gid,cpu,command,pmem' cmd = ['ps', '-p', pid.to_s, '-o', format] cmd = ['ps', 'ax', '-o', format] if pid.nil? else raise "Unsupported OS: #{which_os}" end stdout, _stderr, _status = Open3.capture3(cmd) proc_list_arr = [] stdout_arr = stdout.split("\n") stdout_arr.each do |line| column_len = format.split(',').length cmd_idx = column_len - 2 first_cols = line.split[0..(cmd_idx - 1)] cmd = [line.split[cmd_idx..-2].join(' ')] pmem = [line.split.last] proc_line = first_cols + pmem + cmd proc_list_arr.push(proc_line) end proc_list_arr rescue StandardError => e raise e end # Author(s):: 0day Inc. <request.pentest@0dayinc.com> public_class_method def self.authors "AUTHOR(S): 0day Inc. <request.pentest@0dayinc.com> " end # Display Usage for this Module public_class_method def self.help puts "USAGE: proc_list_arr = #{self}.list #{self}.authors " end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pwn-0.4.706 | lib/pwn/plugins/ps.rb |