lot of change
git-svn-id: file:///home/svn/framework3/trunk@4817 4d416f70-5f16-0410-b530-b9f4589650da
After Width: | Height: | Size: 793 B |
After Width: | Height: | Size: 774 B |
After Width: | Height: | Size: 255 B |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 5.4 KiB |
|
@ -1,26 +0,0 @@
|
|||
/* XPM */
|
||||
static char * encoders_xpm[] = {
|
||||
"16 16 7 1",
|
||||
" c None",
|
||||
". c #000000",
|
||||
"+ c #A0A0A4",
|
||||
"@ c #C0C0C0",
|
||||
"# c #808080",
|
||||
"$ c #585858",
|
||||
"% c #303030",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ... ",
|
||||
" ..+++.. ",
|
||||
" ..+++@+++.. ",
|
||||
"..+++@+++++++.. ",
|
||||
".#+++++++++++$. ",
|
||||
".###+++++++$$$. ",
|
||||
"..####+++$$$$.. ",
|
||||
"% ..####$$$.. % ",
|
||||
" % ..##$.. % ",
|
||||
" % ... % ",
|
||||
" % % ",
|
||||
" ",
|
||||
" "};
|
After Width: | Height: | Size: 692 B |
|
@ -110,7 +110,9 @@ class MyApp < MyGlade
|
|||
# Actions for OpCodes/Stats
|
||||
#
|
||||
def on_stats_activate
|
||||
MsfOpcode::Stats.new()
|
||||
t_run = Thread.new do
|
||||
MsfOpcode::Stats.new()
|
||||
end
|
||||
end
|
||||
|
||||
#
|
||||
|
|
|
@ -9,7 +9,7 @@ class MyModuleTree < MyGlade
|
|||
|
||||
@@completion = []
|
||||
|
||||
CATEGORY, MODULE, ADV, APP = *(0..4).to_a
|
||||
PIX, CATEGORY, MODULE, ADV, APP = *(0..5).to_a
|
||||
|
||||
include Msf::Ui::Gtk2::MyControls
|
||||
|
||||
|
@ -19,7 +19,8 @@ class MyModuleTree < MyGlade
|
|||
@treeview1 = treeview
|
||||
@treeview1.enable_search = true
|
||||
|
||||
@model = Gtk::TreeStore.new(String, # Module name
|
||||
@model = Gtk::TreeStore.new( Gdk::Pixbuf, # pixbuf
|
||||
String, # Module name
|
||||
Object, # Exploit?
|
||||
TrueClass, # ADV?
|
||||
String # Appartenance
|
||||
|
@ -35,11 +36,18 @@ class MyModuleTree < MyGlade
|
|||
@buffer = MyModuleView.new(buff)
|
||||
|
||||
# Renderer Module
|
||||
#renderer1 = Gtk::CellRendererPixbuf.new
|
||||
renderer1 = Gtk::CellRendererText.new
|
||||
renderer_pix = Gtk::CellRendererPixbuf.new
|
||||
renderer_module = Gtk::CellRendererText.new
|
||||
|
||||
column1 = Gtk::TreeViewColumn.new("Modules", renderer1, 'text' => CATEGORY)
|
||||
column1.sort_column_id = CATEGORY
|
||||
column_module = Gtk::TreeViewColumn.new
|
||||
column_module.pack_start(renderer_pix, false)
|
||||
column_module.set_cell_data_func(renderer_pix) do |column, cell, model, iter|
|
||||
cell.pixbuf = iter[PIX]
|
||||
end
|
||||
column_module.pack_start(renderer_module, true)
|
||||
column_module.set_cell_data_func(renderer_module) do |column, cell, model, iter|
|
||||
cell.text = iter[CATEGORY]
|
||||
end
|
||||
|
||||
#set model to treeview
|
||||
@treeview1.set_size_request(380, -1)
|
||||
|
@ -50,7 +58,7 @@ class MyModuleTree < MyGlade
|
|||
@selection = @treeview1.selection
|
||||
@treeview1.selection.mode = Gtk::SELECTION_BROWSE
|
||||
|
||||
@treeview1.append_column(column1)
|
||||
@treeview1.append_column(column_module)
|
||||
|
||||
# Signals
|
||||
@treeview1.signal_connect('cursor-changed') do |widget, event|
|
||||
|
@ -127,7 +135,8 @@ class MyModuleTree < MyGlade
|
|||
|
||||
# Add Parent "Standard (nbr exploits)"
|
||||
iter = @model.append(nil)
|
||||
iter.set_value(CATEGORY, "Standard (#{framework.stats.num_exploits.to_s})")
|
||||
iter.set_value(PIX, driver.get_icon("bug.png"))
|
||||
iter.set_value(CATEGORY, "Exploits (#{framework.stats.num_exploits.to_s})")
|
||||
iter.set_value(MODULE, nil)
|
||||
iter.set_value(ADV, true)
|
||||
|
||||
|
@ -145,6 +154,7 @@ class MyModuleTree < MyGlade
|
|||
|
||||
# Add Parent "Auxiliary (nbr auxiliary)"
|
||||
iter = @model.append(nil)
|
||||
iter.set_value(PIX, driver.get_icon("zoom.png"))
|
||||
iter.set_value(CATEGORY, "Auxiliary (#{framework.stats.num_auxiliary.to_s})")
|
||||
iter.set_value(MODULE, nil)
|
||||
iter.set_value(ADV, true)
|
||||
|
@ -163,6 +173,7 @@ class MyModuleTree < MyGlade
|
|||
|
||||
# Add Parent "Payloads (nbr payloads)"
|
||||
iter = @model.append(nil)
|
||||
iter.set_value(PIX, driver.get_icon("bomb.png"))
|
||||
iter.set_value(CATEGORY, "Payloads (#{framework.stats.num_payloads.to_s})")
|
||||
iter.set_value(MODULE, nil)
|
||||
iter.set_value(ADV, true)
|
||||
|
@ -181,6 +192,7 @@ class MyModuleTree < MyGlade
|
|||
|
||||
# Add Parent "Nops (nbr nops)"
|
||||
iter = @model.append(nil)
|
||||
iter.set_value(PIX, driver.get_icon("encoders.png"))
|
||||
iter.set_value(CATEGORY, "NOPs (#{framework.stats.num_nops.to_s})")
|
||||
iter.set_value(MODULE, nil)
|
||||
iter.set_value(ADV, true)
|
||||
|
@ -199,6 +211,7 @@ class MyModuleTree < MyGlade
|
|||
|
||||
# Add Parent "Encoders (nbr encoders)"
|
||||
iter = @model.append(nil)
|
||||
iter.set_value(PIX, driver.get_icon("encoders.png"))
|
||||
iter.set_value(CATEGORY, "Encoders (#{framework.stats.num_encoders.to_s})")
|
||||
iter.set_value(MODULE, nil)
|
||||
iter.set_value(ADV, true)
|
||||
|
|
|
@ -4,6 +4,8 @@ module Gtk2
|
|||
|
||||
require 'rex/exploitation/opcodedb'
|
||||
|
||||
require 'rexml/document'
|
||||
|
||||
##
|
||||
# Gtk2 Interface for msfopcode
|
||||
##
|
||||
|
@ -318,10 +320,10 @@ class MsfOpcode
|
|||
# Display all supported locales
|
||||
#
|
||||
def create_locales
|
||||
@collect_locales['english'] = Gtk::CheckButton.new("For english locale")
|
||||
@collect_locales['french'] = Gtk::CheckButton.new("For french locale")
|
||||
@collect_locales['italian'] = Gtk::CheckButton.new("For italian locale")
|
||||
@collect_locales['german'] = Gtk::CheckButton.new("For german locale")
|
||||
@collect_locales['english'] = Gtk::CheckButton.new("English")
|
||||
@collect_locales['french'] = Gtk::CheckButton.new("French")
|
||||
@collect_locales['italian'] = Gtk::CheckButton.new("Italian")
|
||||
@collect_locales['german'] = Gtk::CheckButton.new("German")
|
||||
@table_locale.attach_defaults(@collect_locales['english'], 0, 1, 1, 2)
|
||||
@table_locale.attach_defaults(@collect_locales['french'], 0, 1, 2, 3)
|
||||
@table_locale.attach_defaults(@collect_locales['italian'], 1, 2, 1, 2)
|
||||
|
@ -332,10 +334,10 @@ class MsfOpcode
|
|||
# Display all supported platforms
|
||||
#
|
||||
def create_platforms
|
||||
@collect_platforms['NT'] = Gtk::CheckButton.new("For NT platform")
|
||||
@collect_platforms['2000'] = Gtk::CheckButton.new("For 2000 platform")
|
||||
@collect_platforms['XP'] = Gtk::CheckButton.new("For XP platform")
|
||||
@collect_platforms['2003'] = Gtk::CheckButton.new("For 2003 platform")
|
||||
@collect_platforms['NT'] = Gtk::CheckButton.new("Windows NT")
|
||||
@collect_platforms['2000'] = Gtk::CheckButton.new("Windows 2000")
|
||||
@collect_platforms['XP'] = Gtk::CheckButton.new("Windows XP")
|
||||
@collect_platforms['2003'] = Gtk::CheckButton.new("Windows 2003")
|
||||
@table_platforms.attach_defaults(@collect_platforms['NT'], 0, 1, 1, 2)
|
||||
@table_platforms.attach_defaults(@collect_platforms['2000'], 0, 1, 2, 3)
|
||||
@table_platforms.attach_defaults(@collect_platforms['XP'], 1, 2, 1, 2)
|
||||
|
@ -387,7 +389,25 @@ class MsfOpcode
|
|||
|
||||
# Perform an XML request
|
||||
modules = $client.modules(@filter)
|
||||
puts $client.last_xml
|
||||
|
||||
display($client.last_xml)
|
||||
|
||||
end
|
||||
|
||||
#
|
||||
# Display the matched modules
|
||||
#
|
||||
def display(xml)
|
||||
|
||||
# Load XML
|
||||
doc = REXML::Document.new(xml)
|
||||
|
||||
doc.elements.each("Array/Hash/Entry[@name='name']") do |element|
|
||||
puts element.text
|
||||
end
|
||||
|
||||
# puts doc.elements["Array/Hash/Entry[@name='name']"].text
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|