67 lines
1.8 KiB
Ruby
67 lines
1.8 KiB
Ruby
module Msf
|
|
module Ui
|
|
module Gtk2
|
|
|
|
#
|
|
# Gtk2 Interface for Metasploit Opcodes database
|
|
#
|
|
class MsfOpcode
|
|
# Create the opcode client instance
|
|
$client = Rex::Exploitation::OpcodeDb::Client.new
|
|
|
|
#
|
|
# Opcodes statistics
|
|
#
|
|
class Stats < Msf::Ui::Gtk2::SkeletonOpcode
|
|
|
|
def initialize
|
|
comment = "Current database statistics :"
|
|
|
|
# Call the parent
|
|
super("Statistics", comment)
|
|
|
|
self.set_default_size(500, 230)
|
|
|
|
begin
|
|
t_run = Thread.new do
|
|
stats = $client.statistics
|
|
|
|
textview = Gtk::TextView.new
|
|
textbuffer = Gtk::TextBuffer.new
|
|
stuff.pack_start(textview, true, true, 0)
|
|
|
|
textbuffer.set_text(
|
|
"\n" +
|
|
"Last Updated : #{stats.last_update.to_s}\n" +
|
|
"Number of Opcodes : #{stats.opcodes}\n" +
|
|
"Number of Opcode Types : #{stats.opcode_types}\n" +
|
|
"Number of Platforms : #{stats.platforms}\n" +
|
|
"Number of Architectures : #{stats.architectures}\n" +
|
|
"Number of Modules : #{stats.modules}\n" +
|
|
"Number of Module Segments: #{stats.module_segments}\n" +
|
|
"Number of Module Imports : #{stats.module_imports}\n" +
|
|
"Number of Module Exports : #{stats.module_exports}\n\n")
|
|
|
|
|
|
textview.set_buffer(textbuffer)
|
|
textview.set_editable(false)
|
|
textview.set_cursor_visible(false)
|
|
show_all
|
|
end
|
|
run
|
|
destroy
|
|
t_run.kill
|
|
|
|
rescue ::Exception => e
|
|
MsfDialog::Error.new(self, e)
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
end
|
|
end |