Files
metasploit-gs/lib/msf/core/modules/external/message.rb
T
2017-09-22 11:42:32 -05:00

39 lines
747 B
Ruby

# -*- coding: binary -*-
require 'msf/core/modules/external'
require 'base64'
require 'json'
require 'securerandom'
class Msf::Modules::External::Message
attr_reader :method
attr_accessor :params, :id
def self.from_module(j)
if j['method']
m = self.new(j['method'].to_sym)
m.params = j['params']
m
elsif j['response']
m = self.new(:reply)
m.params = j['response']
m.id = j['id']
m
end
end
def initialize(m)
self.method = m
self.params = {}
self.id = Base64.strict_encode64(SecureRandom.random_bytes(16))
end
def to_json
JSON.generate({jsonrpc: '2.0', id: self.id, method: self.method, params: self.params.to_h})
end
protected
attr_writer :method
end