Fix issues with showing popups on exit, and make it clear why start/connect fails on bad creds.

git-svn-id: file:///home/svn/framework3/trunk@12914 4d416f70-5f16-0410-b530-b9f4589650da
This commit is contained in:
Matt Weeks 2011-06-11 22:25:14 +00:00
parent 74c25c7fc9
commit 2ea3e5ee0f
18 changed files with 70 additions and 71 deletions

Binary file not shown.

View File

@ -7,7 +7,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
/**
@ -253,9 +252,9 @@ public class DbConnectDialog extends OptionsDialog {
Map res = (Map)rpcConn.execute("db.connect",opts);
success = "success".equals(res.get("result"));
if(!success)
JOptionPane.showMessageDialog(myParent, res);
MsfguiApp.showMessage(myParent, res);
}catch(MsfException mex){
JOptionPane.showMessageDialog(myParent, mex);
MsfguiApp.showMessage(myParent, mex);
}
setVisible(false);
}//GEN-LAST:event_connectButtonActionPerformed

View File

@ -14,7 +14,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.locks.ReentrantLock;
import javax.swing.JOptionPane;
import org.jdesktop.swingworker.SwingWorker;
/**
@ -55,7 +54,7 @@ public class InteractWindow extends MsfFrame implements ClipboardOwner {
if(autoCommands.get(0).toString().startsWith("use"))
rpcConn.execute(cmdPrefix + "write", session.get("id"), data);
} catch (MsfException ex) {
JOptionPane.showMessageDialog(null, ex);
MsfguiApp.showMessage(null, ex);
}
for(Object cmd : autoCommands) {
try {
@ -155,7 +154,7 @@ public class InteractWindow extends MsfFrame implements ClipboardOwner {
publish(received);
} catch (MsfException ex) {
if(!ex.getMessage().equals("unknown session"))
JOptionPane.showMessageDialog(null, ex);
MsfguiApp.showMessage(null, ex);
if(!ex.getMessage().contains("timed out")) // on timeout, just retry
timerCommand.setCharAt(0, STOP_POLLING);
}
@ -231,7 +230,7 @@ public class InteractWindow extends MsfFrame implements ClipboardOwner {
inputField.setText("");
currentCommand = 0;
} catch (MsfException ex) {
JOptionPane.showMessageDialog(null, ex);
MsfguiApp.showMessage(null, ex);
}
}
/** This method is called from within the constructor to
@ -370,7 +369,7 @@ public class InteractWindow extends MsfFrame implements ClipboardOwner {
outputArea.append("backgrounding session...\n");
}
} catch (MsfException ex) {
JOptionPane.showMessageDialog(null, ex);
MsfguiApp.showMessage(null, ex);
}
}
}//GEN-LAST:event_inputFieldKeyPressed

View File

@ -935,7 +935,6 @@
</Properties>
<AuxValues>
<AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="false"/>
<AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="2"/>
</AuxValues>
</Component>
<Component class="javax.swing.JLabel" name="statusAnimationLabel">
@ -945,7 +944,7 @@
</Properties>
<AuxValues>
<AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="false"/>
<AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="2"/>
<AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="1"/>
</AuxValues>
</Component>
<Component class="javax.swing.JProgressBar" name="progressBar">

View File

@ -143,6 +143,7 @@ public class MainFrame extends FrameView {
rpcConn.execute("auth.logout");
else
return false;
MsfguiApp.shuttingDown = true;
} catch (Exception ex) {
}
return true;
@ -356,7 +357,7 @@ nameloop: for (int i = 0; i < names.length; i++) {
for (Object console : consoles)
registerConsole((Map)console,false, "");
}catch (MsfException mex){
JOptionPane.showMessageDialog(getFrame(), mex);
MsfguiApp.showMessage(getFrame(), mex);
}
}
@ -389,6 +390,7 @@ nameloop: for (int i = 0; i < names.length; i++) {
};
//Exploits and auxiliary get modulepopups; payloads get payloadpopups duh
setMessage("Getting exploits");
statusAnimationLabel.setText("");
expandList((List) ((Map)rpcConn.execute("module.exploits")).get("modules"), exploitsMenu, moduleFactory, "exploit");
setProgress(0.3f);
setMessage("Getting auxiliary modules");
@ -1213,9 +1215,9 @@ nameloop: for (int i = 0; i < names.length; i++) {
try{
java.awt.Desktop.getDesktop().browse(new URI("http://www.metasploit.com/framework/support"));
} catch (IOException ex){
JOptionPane.showMessageDialog(this.getFrame(), "Can't open browser. See http://www.metasploit.com/framework/support");
MsfguiApp.showMessage(this.getFrame(), "Can't open browser. See http://www.metasploit.com/framework/support");
} catch ( URISyntaxException usx){
JOptionPane.showMessageDialog(this.getFrame(), "Can't find the URL. This really should never happen. Report this bug.");
MsfguiApp.showMessage(this.getFrame(), "Can't find the URL. This really should never happen. Report this bug.");
}
}//GEN-LAST:event_onlineHelpMenuActionPerformed
@ -1230,7 +1232,7 @@ nameloop: for (int i = 0; i < names.length; i++) {
java.awt.Desktop.getDesktop().browse(new URI("file://"+MsfguiLog.defaultLog.save(
MsfguiApp.cleanBackslashes(MsfguiApp.fileChooser.getSelectedFile().getAbsolutePath()))));
}catch (Exception ex){
JOptionPane.showMessageDialog(getFrame(), "Problem "+ex);
MsfguiApp.showMessage(getFrame(), "Problem "+ex);
}
}
}//GEN-LAST:event_logGenerateMenuItemActionPerformed
@ -1250,7 +1252,7 @@ nameloop: for (int i = 0; i < names.length; i++) {
Map res = (Map)rpcConn.execute("console.create");
registerConsole(res, true, "");
}catch(MsfException mex){
JOptionPane.showMessageDialog(getFrame(), mex);
MsfguiApp.showMessage(getFrame(), mex);
}
}//GEN-LAST:event_newConsoleItemActionPerformed
@ -1319,9 +1321,9 @@ nameloop: for (int i = 0; i < names.length; i++) {
argHash.put("data", Base64.encode(data));
rpcConn.execute("db.import_"+type,argHash);
} catch (MsfException mex) {
JOptionPane.showMessageDialog(getFrame(), mex);
MsfguiApp.showMessage(getFrame(), mex);
} catch (IOException iex) {
JOptionPane.showMessageDialog(getFrame(), iex);
MsfguiApp.showMessage(getFrame(), iex);
}
}//GEN-LAST:event_importItemActionPerformed
@ -1329,16 +1331,16 @@ nameloop: for (int i = 0; i < names.length; i++) {
try {
rpcConn.execute("db.disconnect");
} catch (MsfException mex) {
JOptionPane.showMessageDialog(getFrame(), mex);
MsfguiApp.showMessage(getFrame(), mex);
}
}//GEN-LAST:event_disconnectItemActionPerformed
private void loadPlugin(String plugin){
try {
rpcConn.execute("plugin.load",plugin, new HashMap());
JOptionPane.showMessageDialog(getFrame(), "Plugin "+plugin+" loaded.");
MsfguiApp.showMessage(getFrame(), "Plugin "+plugin+" loaded.");
} catch (MsfException mex) {
JOptionPane.showMessageDialog(getFrame(), mex);
MsfguiApp.showMessage(getFrame(), mex);
}
}
private void otherPluginItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_otherPluginItemActionPerformed
@ -1380,7 +1382,7 @@ nameloop: for (int i = 0; i < names.length; i++) {
return;
rpcConn.execute("plugin.unload",plugin);
} catch (MsfException mex) {
JOptionPane.showMessageDialog(getFrame(), mex);
MsfguiApp.showMessage(getFrame(), mex);
}
}//GEN-LAST:event_unloadPluginItemActionPerformed
@ -1402,7 +1404,7 @@ nameloop: for (int i = 0; i < names.length; i++) {
map.put(colNames[i], tab.getValueAt(row,i));
rpcConn.execute("db.del_"+name,map);
} catch (MsfException mex) {
JOptionPane.showMessageDialog(getFrame(), mex);
MsfguiApp.showMessage(getFrame(), mex);
}
}//delete then readd
reAddQuery(tab,name+"s",colNames);
@ -1447,7 +1449,7 @@ nameloop: for (int i = 0; i < names.length; i++) {
MsfguiApp.getPropertiesNode().put("workspace", MsfguiApp.workspace);
reloadDb();
} catch (MsfException mex) {
JOptionPane.showMessageDialog(getFrame(), mex);
MsfguiApp.showMessage(getFrame(), mex);
}
}//GEN-LAST:event_currWorkspaceItemActionPerformed
@ -1460,7 +1462,7 @@ nameloop: for (int i = 0; i < names.length; i++) {
rpcConn.execute("db.set_workspace", name);
reloadDb();
} catch (MsfException mex) {
JOptionPane.showMessageDialog(getFrame(), mex);
MsfguiApp.showMessage(getFrame(), mex);
}
}//GEN-LAST:event_addWorkspaceItemActionPerformed
@ -1480,7 +1482,7 @@ nameloop: for (int i = 0; i < names.length; i++) {
reloadDb();
}
} catch (MsfException mex) {
JOptionPane.showMessageDialog(getFrame(), mex);
MsfguiApp.showMessage(getFrame(), mex);
}
}//GEN-LAST:event_delWorkspaceItemActionPerformed
@ -1558,9 +1560,9 @@ nameloop: for (int i = 0; i < names.length; i++) {
"db_export -f "+type+" "+MsfguiApp.escapeBackslashes(
MsfguiApp.fileChooser.getSelectedFile().getCanonicalPath())));
} catch (MsfException mex) {
JOptionPane.showMessageDialog(getFrame(), mex);
MsfguiApp.showMessage(getFrame(), mex);
} catch (IOException iex) {
JOptionPane.showMessageDialog(getFrame(), iex);
MsfguiApp.showMessage(getFrame(), iex);
}
}//GEN-LAST:event_dbExportItemActionPerformed
@ -1602,7 +1604,7 @@ nameloop: for (int i = 0; i < names.length; i++) {
addSessionItem("Stop",jobPopupMenu,new RpcAction() {
public void action() throws Exception {
if(!((Map)rpcConn.execute("job.stop", clickedJob)).get("result").equals("success"))
JOptionPane.showMessageDialog(null, "stop failed.");
MsfguiApp.showMessage(null, "stop failed.");
}
});
jobsList.addMouseListener( new PopupMouseListener() {
@ -1904,7 +1906,7 @@ nameloop: for (int i = 0; i < names.length; i++) {
private javax.swing.JMenuItem socketLoggerItem;
private javax.swing.JMenuItem soundItem;
private javax.swing.JMenuItem startRpcMenuItem;
private javax.swing.JLabel statusAnimationLabel;
public javax.swing.JLabel statusAnimationLabel;
private javax.swing.JLabel statusMessageLabel;
private javax.swing.JPanel statusPanel;
public javax.swing.JTabbedPane tabbedPane;

View File

@ -93,7 +93,7 @@ public class MeterpFileBrowser extends MsfFrame {
tempFile.delete();
} catch (IOException iox){
tempIcon = null;
JOptionPane.showMessageDialog(null, "Cannot create temp file. Weird.");
MsfguiApp.showMessage(null, "Cannot create temp file. Weird.");
}
fileIcon = tempIcon;
tempFile.delete();
@ -167,7 +167,7 @@ public class MeterpFileBrowser extends MsfFrame {
try{
rpcConn.execute("session.meterpreter_run_single", session.get("id"), cmd);
} catch (Exception ex) {
JOptionPane.showMessageDialog(this, ex);
MsfguiApp.showMessage(this, ex);
}
}
/** Handles click events, like popup menu and double-click navigation */
@ -221,7 +221,7 @@ public class MeterpFileBrowser extends MsfFrame {
try {
Map received = (Map) rpcConn.execute("session.meterpreter_read", session.get("id"));
if (! received.get("encoding").equals("base64")) {
JOptionPane.showMessageDialog(null, "uhoh. encoding changed. Time to update msfgui?");
MsfguiApp.showMessage(null, "uhoh. encoding changed. Time to update msfgui?");
return;
}
byte[] decodedBytes = Base64.decode(received.get("data").toString());
@ -264,7 +264,7 @@ public class MeterpFileBrowser extends MsfFrame {
ex.printStackTrace();
if(ex.getMessage().equals("unknown session"))
readTimer.stop();
JOptionPane.showMessageDialog(null, ex);
MsfguiApp.showMessage(null, ex);
}
}
@ -516,7 +516,7 @@ public class MeterpFileBrowser extends MsfFrame {
DraggableTabbedPane.show(interactPane);
}catch (NullPointerException nex){//cancelled
}catch (Exception ex){
JOptionPane.showMessageDialog(null, ex);
MsfguiApp.showMessage(null, ex);
}
}//GEN-LAST:event_recSearchDownloadButtonActionPerformed

View File

@ -12,7 +12,6 @@ import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFormattedTextField;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
@ -193,7 +192,7 @@ public abstract class ModuleInfoWindow extends MsfFrame {
}
}
} catch (MsfException ex) {
JOptionPane.showMessageDialog(rootPane, ex);
MsfguiApp.showMessage(rootPane, ex);
}
updateSizes(this);
}
@ -279,7 +278,7 @@ public abstract class ModuleInfoWindow extends MsfFrame {
} else { // Non-console; just fire away
Map info = (Map) rpcConn.execute("module.execute",moduleType, fullName,hash);
if (!info.get("result").equals("success"))
JOptionPane.showMessageDialog(rootPane, info);
MsfguiApp.showMessage(rootPane, info);
}
MsfguiApp.addRecentModule(java.util.Arrays.asList(new Object[]{moduleType, fullName, hash}), rpcConn, parentFrame);
}

View File

@ -15,7 +15,6 @@ import javax.swing.GroupLayout.SequentialGroup;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JMenu;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.event.TreeSelectionEvent;
@ -126,7 +125,7 @@ public class ModulePopup extends ModuleInfoWindow implements TreeSelectionListen
//Targets
Map targetsMap = (Map) info.get("targets");
if(targetsMap == null){
JOptionPane.showMessageDialog(this, "No Targets. ??");
MsfguiApp.showMessage(this, "No Targets. ??");
}else{
String defaultTarget="";
if(info.get("default_target") != null)
@ -154,7 +153,7 @@ public class ModulePopup extends ModuleInfoWindow implements TreeSelectionListen
showOptions();
}
} catch (MsfException ex) {
JOptionPane.showMessageDialog(rootPane, ex);
MsfguiApp.showMessage(rootPane, ex);
}
reGroup();
updateSizes(mainPanel);
@ -213,7 +212,7 @@ public class ModulePopup extends ModuleInfoWindow implements TreeSelectionListen
payloadTree.setRootVisible(false);
payloadTree.revalidate();
} catch (MsfException ex) {
JOptionPane.showMessageDialog(rootPane, ex);
MsfguiApp.showMessage(rootPane, ex);
}
}
@ -235,7 +234,7 @@ public class ModulePopup extends ModuleInfoWindow implements TreeSelectionListen
//Add exploit only options
if(moduleType.equals("exploit")){
if(payload.length() <= 0){
JOptionPane.showMessageDialog(rootPane, "You must select a payload");
MsfguiApp.showMessage(rootPane, "You must select a payload");
return;
}
hash.put("PAYLOAD",payload.toString());
@ -249,7 +248,7 @@ public class ModulePopup extends ModuleInfoWindow implements TreeSelectionListen
this.setVisible(false);
this.dispose();
} catch (MsfException ex) {
JOptionPane.showMessageDialog(rootPane, ex);
MsfguiApp.showMessage(rootPane, ex);
}
}

View File

@ -5,7 +5,6 @@ import java.awt.Component;
import java.awt.HeadlessException;
import java.util.Map;
import javax.swing.JComponent;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import javax.swing.UIManager.LookAndFeelInfo;
import javax.swing.plaf.ColorUIResource;
@ -72,7 +71,7 @@ public class MsfFrame extends javax.swing.JFrame{
props.put("LnF", newLnF);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
MsfguiApp.showMessage(null, e);
e.printStackTrace();
}
}

View File

@ -40,6 +40,7 @@ public class MsfguiApp extends SingleFrameApplication {
public static String workspace = "default";
public static final String confFilename = System.getProperty("user.home")+File.separatorChar+".msf3"+File.separatorChar+"msfgui";
public static MainFrame mainFrame;
public static boolean shuttingDown = false;
static{ //get saved properties file
Map props;
@ -60,6 +61,10 @@ public class MsfguiApp extends SingleFrameApplication {
}
});
}
public static void showMessage(java.awt.Component parent, Object message){
if(!shuttingDown)
JOptionPane.showMessageDialog(parent, message);
}
/**
* Saves the properties node as an XML file specified by confFilename
@ -257,7 +262,7 @@ public class MsfguiApp extends SingleFrameApplication {
temp.delete();
return path;
}catch(IOException ex){
JOptionPane.showMessageDialog(null, "Cannot create temp file. This is a bad and unexpected error. What is wrong with your system?!");
MsfguiApp.showMessage(null, "Cannot create temp file. This is a bad and unexpected error. What is wrong with your system?!");
return null;
}
}
@ -270,7 +275,7 @@ public class MsfguiApp extends SingleFrameApplication {
temp.delete();
return path;
}catch(IOException ex){
JOptionPane.showMessageDialog(null, "Cannot create temp file. This is a bad and unexpected error. What is wrong with your system?!");
MsfguiApp.showMessage(null, "Cannot create temp file. This is a bad and unexpected error. What is wrong with your system?!");
return null;
}
}

View File

@ -2,7 +2,6 @@ package msfgui;
import java.io.File;
import java.util.Map;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
/**
@ -44,7 +43,7 @@ public class OpenConnectionDialog extends javax.swing.JDialog {
*/
public static RpcConnection getConnection(MainFrame mainframe) {
if(mainframe.rpcConn != null){
JOptionPane.showMessageDialog(mainframe.getFrame(), "You are already connected!\n"
MsfguiApp.showMessage(mainframe.getFrame(), "You are already connected!\n"
+ "Exit before making a new connection.");
throw new RuntimeException("Already connected");
}
@ -58,8 +57,9 @@ public class OpenConnectionDialog extends javax.swing.JDialog {
boolean ssl = Boolean.parseBoolean(info.get("ssl").toString());
return new RpcConnection(username, password.toCharArray(), host, port, ssl);
} catch (MsfException mex) {
if(mex.getMessage().contains("Authentication Error"))
System.err.println("Error authenticating; wrong saved credentials.");
if(mex.getMessage().toLowerCase().contains("authentication error"))
mainframe.statusAnimationLabel.setText("Error authenticating; msfrpcd is running "
+"but you did not enter the right credentials.");
} catch (NullPointerException nex) {//generated when attributes dont exist.
}
//Darn. open the gui anyway
@ -331,7 +331,7 @@ public class OpenConnectionDialog extends javax.swing.JDialog {
return;
MsfguiApp.getPropertiesNode().put("commandPrefix",
MsfguiApp.fileChooser.getCurrentDirectory().getPath()+File.separator);
JOptionPane.showMessageDialog(this, "Will now try running \n"
MsfguiApp.showMessage(this, "Will now try running \n"
+MsfguiApp.getPropertiesNode().get("commandPrefix")+"msfrpcd\n"
+"and "+ MsfguiApp.getPropertiesNode().get("commandPrefix")+"ruby /msf3/msfrpcd\n"
+ "when starting new daemon. Note: for the second to work on Windows,\n"

View File

@ -13,7 +13,6 @@ import javax.swing.GroupLayout;
import javax.swing.GroupLayout.ParallelGroup;
import javax.swing.GroupLayout.SequentialGroup;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
/**
* Popup for generating payloads and starting handlers.
@ -533,9 +532,9 @@ public class PayloadPopup extends ModuleInfoWindow {
}
outputPane.append("\n\nruby\n"+rubyHex);
} catch (MsfException ex) {
JOptionPane.showMessageDialog(this, ex);
MsfguiApp.showMessage(this, ex);
} catch (IOException ex) {
JOptionPane.showMessageDialog(this, ex);
MsfguiApp.showMessage(this, ex);
}
}//GEN-LAST:event_generateButtonActionPerformed

View File

@ -2,7 +2,6 @@ package msfgui;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JOptionPane;
/**
* Convenient handler for showing popup windows from mouse clicks
@ -22,7 +21,7 @@ public abstract class PopupMouseListener extends MouseAdapter{
if(e.getClickCount() == 2)
doubleClicked(e);
}catch(MsfException xre){
JOptionPane.showMessageDialog(null, "action failed " + xre);
MsfguiApp.showMessage(null, "action failed " + xre);
}
}
public void doubleClicked (MouseEvent e) throws MsfException{//empty by default

View File

@ -8,7 +8,6 @@ import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.util.Map;
import java.util.concurrent.locks.ReentrantLock;
import javax.swing.JOptionPane;
import javax.swing.Timer;
import javax.swing.table.DefaultTableModel;
@ -81,7 +80,7 @@ public class ProcessList extends MsfFrame {
try {
Map received = (Map) rpcConn.execute("session.meterpreter_read", session.get("id"));
if (!received.get("encoding").equals("base64")) {
JOptionPane.showMessageDialog(null, "uhoh. encoding changed. Time to update msfgui?");
MsfguiApp.showMessage(null, "uhoh. encoding changed. Time to update msfgui?");
return;
}
byte[] decodedBytes = Base64.decode(received.get("data").toString());
@ -108,7 +107,7 @@ public class ProcessList extends MsfFrame {
ex.printStackTrace();
if (ex.getMessage().equals("unknown session"))
readTimer.stop();
JOptionPane.showMessageDialog(null, ex.getMessage());
MsfguiApp.showMessage(null, ex.getMessage());
}
}
});
@ -120,7 +119,7 @@ public class ProcessList extends MsfFrame {
try {
rpcConn.execute("session.meterpreter_run_single", session.get("id"),cmd);
} catch (Exception ex) {
JOptionPane.showMessageDialog(this, ex);
MsfguiApp.showMessage(this, ex);
if (ex.getMessage().equals("unknown session"))
return true;
}

View File

@ -3,7 +3,6 @@ package msfgui;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Map;
import javax.swing.JOptionPane;
/**
* Provides an ActionListener for running a meterpreter script on each selected session. Each time
@ -34,7 +33,7 @@ public class RpcAction implements ActionListener {
action(session);
}catch(Exception ex){
if(!ex.getMessage().equals("cancelled")){
JOptionPane.showMessageDialog(null, "Error in RPC call: "+ex);
MsfguiApp.showMessage(null, "Error in RPC call: "+ex);
ex.printStackTrace();
}
}

View File

@ -20,7 +20,6 @@ import java.util.Random;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import javax.swing.JOptionPane;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
@ -377,7 +376,7 @@ public class RpcConnection {
/** Attempts to start msfrpcd and connect to it.*/
public static Task startRpcConn(final MainFrame mainFrame){
if(mainFrame.rpcConn != null){
JOptionPane.showMessageDialog(mainFrame.getFrame(), "You are already connected!\n"
MsfguiApp.showMessage(mainFrame.getFrame(), "You are already connected!\n"
+ "Exit before making a new connection.");
throw new RuntimeException("Already connected");
}
@ -420,6 +419,11 @@ public class RpcConnection {
connected = true;
break;
} catch (MsfException mex) {
if(mex.getMessage().toLowerCase().contains("authentication error")){
mex.printStackTrace();
setMessage("Cannot connect to started msfrpcd.");
throw mex;
}
}
try {
Thread.sleep(200); //Wait for msfrpcd to be ready

View File

@ -8,7 +8,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.swing.DefaultListModel;
import javax.swing.JOptionPane;
/**
* Window for searching for modules by name or details
@ -269,7 +268,7 @@ public class SearchWindow extends MsfFrame {
mod.addElement(modInfo[1]+" - "+Rank.toString(info.get("rank")));
}
} catch (MsfException ex) {
JOptionPane.showMessageDialog(rootPane, ex);
MsfguiApp.showMessage(rootPane, ex);
}
}
}//GEN-LAST:event_searchButtonActionPerformed

View File

@ -6,7 +6,6 @@ import java.net.DatagramSocket;
import java.net.SocketException;
import java.util.Map;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import javax.swing.SwingWorker;
/**
@ -169,11 +168,11 @@ public class WebcamFrame extends MsfFrame {
};
sw.execute();
} catch(NumberFormatException nex){
JOptionPane.showMessageDialog(this, "Please enter a valid delay interval between frames!");
MsfguiApp.showMessage(this, "Please enter a valid delay interval between frames!");
} catch(MsfException mex) {
JOptionPane.showMessageDialog(this, mex);
MsfguiApp.showMessage(this, mex);
} catch (SocketException sox) {
JOptionPane.showMessageDialog(this, sox);
MsfguiApp.showMessage(this, sox);
}
}//GEN-LAST:event_startButtonActionPerformed