# # $Id$ # $Revision$ # module Msf ### # # This plugin is a simple editor command, designed to make it easy to edit modules in the console. # ### class Plugin::Editor < Msf::Plugin ### # # This class implements a single edit command. # ### class EditorCommandDispatcher include Msf::Ui::Console::CommandDispatcher # # The dispatcher's name. # def name "Editor" end # # Returns the hash of commands supported by this dispatcher. # def commands { "edit" => "A handy editor commmand" } end # # This method handles the edit command. # def cmd_edit(*args) print_line ("Launching editor...") e = Rex::Compat.getenv("EDITOR") || "vi" if (not active_module) or (not (path = active_module.file_path)) print_line("Error: No active module selected") return nil end ret = system(e + " " + path) if not ret print_line("Failed to execute your editor (#{e})") end ret end end def initialize(framework, opts) super # console dispatcher commands. add_console_dispatcher(EditorCommandDispatcher) end def cleanup remove_console_dispatcher('Editor') end def name "editor" end def desc "Simple Editor Plugin" end protected end end