From a1f71fa994f63329cac3e81fbad7bb8852ea86b3 Mon Sep 17 00:00:00 2001 From: HD Moore Date: Sun, 13 Dec 2009 05:30:34 +0000 Subject: [PATCH] Fixes #683. This triggers when running on ruby 1.9 and is probably one of many like this and one of the reasons this interface is not maintained. However, since you wen to the effort of reporting it, the least we can do is fix it ;) git-svn-id: file:///home/svn/framework3/trunk@7838 4d416f70-5f16-0410-b530-b9f4589650da --- lib/msf/ui/gtk2/frame/modules_view.rb | 35 ++++++++++++++------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/lib/msf/ui/gtk2/frame/modules_view.rb b/lib/msf/ui/gtk2/frame/modules_view.rb index 786701823d..5ae3e975bd 100644 --- a/lib/msf/ui/gtk2/frame/modules_view.rb +++ b/lib/msf/ui/gtk2/frame/modules_view.rb @@ -8,11 +8,11 @@ module Gtk2 # TODO: Add a pixmap for platform # class MyModuleView - + module TagHref attr_accessor :href end - + def initialize(buffer) @buffer = buffer end @@ -23,22 +23,22 @@ module Gtk2 help_intro = %Q{ This interface can be used in either wizard-mode or console-mode. To start the - wizard, browse to a module in the list above, and double-click its name. To + wizard, browse to a module in the list above, and double-click its name. To view the source code of a module, right-click its name and select the View Code - option. If you prefer to work in a msfconsole interface instead, select the + option. If you prefer to work in a msfconsole interface instead, select the Console option from the Window menu (or just press Control+O). Have fun! } - @buffer.insert_with_tags(start, "\nWelcome to the Metasploit Framework GUI!\n\n", "black_center") - @buffer.insert_with_tags(start, help_intro.gsub(/\s+/, " ").strip, "black_wrap") + @buffer.insert_with_tags(start, "\nWelcome to the Metasploit Framework GUI!\n\n", "black_center") + @buffer.insert_with_tags(start, help_intro.gsub(/\s+/, " ").strip, "black_wrap") end def insert_module(obj) @buffer.delete(*@buffer.bounds) start = @buffer.get_iter_at_offset(0) - + credit = [ *obj.author ].map {|a| "#{a.name} (#{a.email})" }.join(" and ") - + # The description goes first desc = "" obj.description.each_line do |line| @@ -51,15 +51,15 @@ module Gtk2 end end desc.strip! - - if(desc.length > 0 and not (desc[-1] >= 0x21 and desc[-1] <= 0x2e) ) + + if(desc.length > 0 and not (desc[-1,1].unpack("C")[0] >= 0x21 and desc[-1,1].unpack("C")[0] <= 0x2e) ) desc << "." end - + @buffer.insert_with_tags(start, "Module: ", "_") @buffer.insert_with_tags(start, "#{obj.fullname}\n\n", "black_wrap") - - @buffer.insert_with_tags(start, + + @buffer.insert_with_tags(start, desc + " This #{obj.type} module was written by #{credit}\n\n", "black_wrap" ) @@ -75,16 +75,17 @@ module Gtk2 'left_margin' => 25 }) tag.extend(TagHref) - tag.href = ref.to_s + tag.href = ref.to_s @buffer.insert_with_tags(start, ref.to_s + "\n", tag) end - + @buffer.insert_with_tags(start, "\n") end - + end end end end -end \ No newline at end of file +end +