/* * jnemesis.java * * Created on April 11, 2004, 12:23 AM * * A graphical frontend to the nemesis packet injection utility * This is the source of the beta build on Thu Aug 5 20:30:41 CDT 2004. * ICMP and the queue do not function, no properties file support. * * Build system information follows: * * CPU: AMD Athlon(TM) XP 2800+ (2071.203Mhz) * Memory: 1024M (est.) * JRE: build 1.4.2_04-b05 * System ID: Linux home.fragtheweak.net 2.6.6-1.435.2.3 */ /* * *!!! This applications released under the GPL !!! * */ import java.io.*; import java.util.*; import javax.swing.*; /** * @author Florian Hines */ public class jnemesis extends javax.swing.JFrame { /** Creates new form jnemesis */ public jnemesis() { initComponents(); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ private void initComponents() {//GEN-BEGIN:initComponents jPopupMenu1 = new javax.swing.JPopupMenu(); masterPanel = new javax.swing.JPanel(); jtabbedPane1 = new javax.swing.JTabbedPane(); tcpPanel = new javax.swing.JPanel(); jPanel1 = new javax.swing.JPanel(); srcPrtFlag1 = new javax.swing.JRadioButton(); srcPrtField1 = new javax.swing.JTextField(); dstPrtFlag1 = new javax.swing.JRadioButton(); dstPrtField1 = new javax.swing.JTextField(); tcpFlag1 = new javax.swing.JRadioButton(); tcpFlagsCBox1 = new javax.swing.JComboBox(); windowFlag1 = new javax.swing.JRadioButton(); winSizeField1 = new javax.swing.JTextField(); seqFlag1 = new javax.swing.JRadioButton(); seqField1 = new javax.swing.JTextField(); ackNumFlag1 = new javax.swing.JRadioButton(); ackNumField1 = new javax.swing.JTextField(); urgOffFlag1 = new javax.swing.JRadioButton(); urgOffField1 = new javax.swing.JTextField(); tcpOptBox1 = new javax.swing.JCheckBox(); tcpOptField1 = new javax.swing.JTextField(); tcpOpFileChooser1 = new javax.swing.JButton(); payloadBox1 = new javax.swing.JCheckBox(); payloadField1 = new javax.swing.JTextField(); payloadFileChooser = new javax.swing.JButton(); jPanel2 = new javax.swing.JPanel(); srcIpFlag = new javax.swing.JRadioButton(); srcIpField = new javax.swing.JTextField(); dstIpFlag = new javax.swing.JRadioButton(); dstIpField = new javax.swing.JTextField(); ipIdFlag = new javax.swing.JRadioButton(); ipIdField = new javax.swing.JTextField(); ttlFlag = new javax.swing.JRadioButton(); ttlField = new javax.swing.JTextField(); tosFlag = new javax.swing.JRadioButton(); tosField = new javax.swing.JTextField(); fragOffSetFlag = new javax.swing.JRadioButton(); fragOffSetField = new javax.swing.JTextField(); ipOptFileBox = new javax.swing.JCheckBox(); ipOptFileField = new javax.swing.JTextField(); ipOptionsFileChooser = new javax.swing.JButton(); jPanel3 = new javax.swing.JPanel(); ethDevFlag = new javax.swing.JRadioButton(); ethDevField = new javax.swing.JTextField(); srcMacFlag = new javax.swing.JRadioButton(); srcMacField = new javax.swing.JTextField(); dstMacFlag = new javax.swing.JRadioButton(); dstMacField = new javax.swing.JTextField(); udpPanel = new javax.swing.JPanel(); jPanel4 = new javax.swing.JPanel(); jPanel7 = new javax.swing.JPanel(); srcPrtFlag2 = new javax.swing.JRadioButton(); srcPrtField2 = new javax.swing.JTextField(); dstPrtFlag2 = new javax.swing.JRadioButton(); dstPrtField2 = new javax.swing.JTextField(); jPanel12 = new javax.swing.JPanel(); payloadBox2 = new javax.swing.JCheckBox(); payloadField2 = new javax.swing.JTextField(); payloadFileChooser1 = new javax.swing.JButton(); jPanel5 = new javax.swing.JPanel(); srcIpFlag1 = new javax.swing.JRadioButton(); srcIpField1 = new javax.swing.JTextField(); dstIpFlag1 = new javax.swing.JRadioButton(); dstIpField1 = new javax.swing.JTextField(); ipIdFlag1 = new javax.swing.JRadioButton(); ipIdField1 = new javax.swing.JTextField(); ttlFlag1 = new javax.swing.JRadioButton(); ttlField1 = new javax.swing.JTextField(); tosFlag1 = new javax.swing.JRadioButton(); tosField1 = new javax.swing.JTextField(); fragOffSetFlag1 = new javax.swing.JRadioButton(); fragOffSetField1 = new javax.swing.JTextField(); ipOptFileBox1 = new javax.swing.JCheckBox(); ipOptFileField1 = new javax.swing.JTextField(); ipOptionsFileChooser1 = new javax.swing.JButton(); jPanel6 = new javax.swing.JPanel(); ethDevFlag1 = new javax.swing.JRadioButton(); ethDevField1 = new javax.swing.JTextField(); srcMacFlag1 = new javax.swing.JRadioButton(); srcMacField1 = new javax.swing.JTextField(); dstMacFlag1 = new javax.swing.JRadioButton(); dstMacField1 = new javax.swing.JTextField(); icmpPanel = new javax.swing.JPanel(); jPanel8 = new javax.swing.JPanel(); jTabbedPane2 = new javax.swing.JTabbedPane(); jPanel11 = new javax.swing.JPanel(); icmpCodeFlag1 = new javax.swing.JRadioButton(); icmpCodeField1 = new javax.swing.JTextField(); icmpIDFlag1 = new javax.swing.JRadioButton(); icmpIDField1 = new javax.swing.JTextField(); icmpTypeFlag1 = new javax.swing.JRadioButton(); icmpTypeField1 = new javax.swing.JTextField(); prefGatewayFlag1 = new javax.swing.JRadioButton(); prefGatewayField1 = new javax.swing.JTextField(); icmpMaskFlag1 = new javax.swing.JRadioButton(); icmpMaskField1 = new javax.swing.JTextField(); icmpModeFlag1 = new javax.swing.JRadioButton(); icmpModeCBox1 = new javax.swing.JComboBox(); icmpSeqNumFlag1 = new javax.swing.JRadioButton(); icmpSeqNumField1 = new javax.swing.JTextField(); payloadBox3 = new javax.swing.JCheckBox(); payloadField3 = new javax.swing.JTextField(); payloadFileChooser2 = new javax.swing.JButton(); jPanel13 = new javax.swing.JPanel(); icmpTRRTTFlag1 = new javax.swing.JRadioButton(); icmpTRRTTField1 = new javax.swing.JTextField(); icmpTRTTFlag1 = new javax.swing.JRadioButton(); icmpTRTTField1 = new javax.swing.JTextField(); icmpTRRRTFlag1 = new javax.swing.JRadioButton(); icmpTRRRTField1 = new javax.swing.JTextField(); jPanel14 = new javax.swing.JPanel(); icmpDstIPFlag1 = new javax.swing.JRadioButton(); icmpDstIPField1 = new javax.swing.JTextField(); icmpSrcIPFlag1 = new javax.swing.JRadioButton(); icmpSrcIPField1 = new javax.swing.JTextField(); icmpFragOpsFlag1 = new javax.swing.JRadioButton(); icmpFragOpsField1 = new javax.swing.JTextField(); icmpIPTosFlag1 = new javax.swing.JRadioButton(); icmpIPTosField1 = new javax.swing.JTextField(); icmpIPTtlFlag1 = new javax.swing.JRadioButton(); icmpIPTtlField1 = new javax.swing.JTextField(); icmpIPOptsBox = new javax.swing.JCheckBox(); icmpIPOptsPayloadField = new javax.swing.JTextField(); payloadFileChooser3 = new javax.swing.JButton(); jPanel9 = new javax.swing.JPanel(); srcIpFlag2 = new javax.swing.JRadioButton(); srcIpField2 = new javax.swing.JTextField(); dstIpFlag2 = new javax.swing.JRadioButton(); dstIpField2 = new javax.swing.JTextField(); ipIdFlag2 = new javax.swing.JRadioButton(); ipIdField2 = new javax.swing.JTextField(); ttlFlag2 = new javax.swing.JRadioButton(); ttlField2 = new javax.swing.JTextField(); tosFlag2 = new javax.swing.JRadioButton(); tosField2 = new javax.swing.JTextField(); fragOffSetFlag2 = new javax.swing.JRadioButton(); fragOffSetField2 = new javax.swing.JTextField(); ipOptFileBox2 = new javax.swing.JCheckBox(); ipOptFileField2 = new javax.swing.JTextField(); ipOptionsFileChooser2 = new javax.swing.JButton(); jPanel10 = new javax.swing.JPanel(); ethDevFlag2 = new javax.swing.JRadioButton(); ethDevField2 = new javax.swing.JTextField(); srcMacFlag2 = new javax.swing.JRadioButton(); srcMacField2 = new javax.swing.JTextField(); dstMacFlag2 = new javax.swing.JRadioButton(); dstMacField2 = new javax.swing.JTextField(); queuePanel = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); queuedList = new javax.swing.JList(queuedPackets); jPanel16 = new javax.swing.JPanel(); injectNext = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jButton3 = new javax.swing.JButton(); jButton4 = new javax.swing.JButton(); jButton5 = new javax.swing.JButton(); statusPane = new javax.swing.JScrollPane(); injectionResult = new javax.swing.JTextArea(); jPanel15 = new javax.swing.JPanel(); controlPanel = new javax.swing.JPanel(); injectButton = new javax.swing.JButton(); queuePacket = new javax.swing.JButton(); jLabel1 = new javax.swing.JLabel(); statusField = new javax.swing.JTextField(); setTitle("jNemesis-Beta"); setResizable(false); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { exitForm(evt); } }); masterPanel.setLayout(new java.awt.BorderLayout()); masterPanel.setMaximumSize(new java.awt.Dimension(575, 375)); masterPanel.setMinimumSize(new java.awt.Dimension(575, 375)); masterPanel.setPreferredSize(new java.awt.Dimension(575, 375)); jtabbedPane1.setFont(new java.awt.Font("Dialog", 0, 12)); tcpPanel.setLayout(new java.awt.BorderLayout()); jPanel1.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 3)); jPanel1.setBorder(new javax.swing.border.TitledBorder(null, "TCP Options", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Lucida Sans", 0, 11))); jPanel1.setMaximumSize(new java.awt.Dimension(32767, 200)); jPanel1.setMinimumSize(new java.awt.Dimension(10, 150)); jPanel1.setPreferredSize(new java.awt.Dimension(10, 150)); srcPrtFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); srcPrtFlag1.setText("-x "); srcPrtFlag1.setToolTipText("Source Port Flag"); srcPrtFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { srcPrtFlag1ActionPerformed(evt); } }); jPanel1.add(srcPrtFlag1); srcPrtField1.setEditable(false); srcPrtField1.setToolTipText("Enter the source port"); srcPrtField1.setMinimumSize(new java.awt.Dimension(35, 20)); srcPrtField1.setPreferredSize(new java.awt.Dimension(48, 20)); jPanel1.add(srcPrtField1); dstPrtFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); dstPrtFlag1.setText("-y "); dstPrtFlag1.setToolTipText("Destination Port Flag"); dstPrtFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { dstPrtFlag1ActionPerformed(evt); } }); jPanel1.add(dstPrtFlag1); dstPrtField1.setEditable(false); dstPrtField1.setToolTipText("Enter Destination Port"); dstPrtField1.setMinimumSize(new java.awt.Dimension(35, 20)); dstPrtField1.setPreferredSize(new java.awt.Dimension(48, 20)); jPanel1.add(dstPrtField1); tcpFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); tcpFlag1.setText("-f "); tcpFlag1.setToolTipText("TCP Flag Options"); tcpFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { tcpFlag1ActionPerformed(evt); } }); jPanel1.add(tcpFlag1); tcpFlagsCBox1.setMaximumRowCount(6); tcpFlagsCBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "NONE", "-fS (SYN)", "-fA (ACK)", "-fR (RST)", "-fP (PSH)", "-fF (FIN)", "-fU (URG)" })); tcpFlagsCBox1.setToolTipText("Possible TCP Flags"); tcpFlagsCBox1.setEnabled(false); jPanel1.add(tcpFlagsCBox1); windowFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); windowFlag1.setText("-w "); windowFlag1.setToolTipText("Window Size"); windowFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { windowFlag1ActionPerformed(evt); } }); jPanel1.add(windowFlag1); winSizeField1.setEditable(false); winSizeField1.setToolTipText("Enter the Window Size"); winSizeField1.setMinimumSize(new java.awt.Dimension(45, 20)); winSizeField1.setPreferredSize(new java.awt.Dimension(45, 20)); jPanel1.add(winSizeField1); seqFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); seqFlag1.setText("-s "); seqFlag1.setToolTipText("Seq Number Flag"); seqFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { seqFlag1ActionPerformed(evt); } }); jPanel1.add(seqFlag1); seqField1.setEditable(false); seqField1.setToolTipText("Enter The Seq Number"); seqField1.setMinimumSize(new java.awt.Dimension(35, 20)); seqField1.setPreferredSize(new java.awt.Dimension(35, 20)); jPanel1.add(seqField1); ackNumFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); ackNumFlag1.setText("-a"); ackNumFlag1.setToolTipText("Ack Number Flag"); ackNumFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ackNumFlag1ActionPerformed(evt); } }); jPanel1.add(ackNumFlag1); ackNumField1.setEditable(false); ackNumField1.setToolTipText("Enter Ack Number"); ackNumField1.setMinimumSize(new java.awt.Dimension(40, 20)); ackNumField1.setPreferredSize(new java.awt.Dimension(40, 20)); jPanel1.add(ackNumField1); urgOffFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); urgOffFlag1.setText("-u"); urgOffFlag1.setToolTipText("UP Offset Flag"); urgOffFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { urgOffFlag1ActionPerformed(evt); } }); jPanel1.add(urgOffFlag1); urgOffField1.setEditable(false); urgOffField1.setToolTipText("Urgent Pointer Offset"); urgOffField1.setMinimumSize(new java.awt.Dimension(40, 20)); urgOffField1.setPreferredSize(new java.awt.Dimension(40, 20)); jPanel1.add(urgOffField1); tcpOptBox1.setFont(new java.awt.Font("Dialog", 0, 12)); tcpOptBox1.setText("-o "); tcpOptBox1.setToolTipText("TCP Options File"); tcpOptBox1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { tcpOptBox1ActionPerformed(evt); } }); jPanel1.add(tcpOptBox1); tcpOptField1.setEditable(false); tcpOptField1.setToolTipText("path/to/tcp/options/file"); tcpOptField1.setMinimumSize(new java.awt.Dimension(100, 20)); tcpOptField1.setPreferredSize(new java.awt.Dimension(250, 20)); jPanel1.add(tcpOptField1); tcpOpFileChooser1.setText("../"); jPanel1.add(tcpOpFileChooser1); payloadBox1.setFont(new java.awt.Font("Dialog", 0, 12)); payloadBox1.setText("-P "); payloadBox1.setToolTipText("Payload File"); payloadBox1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { payloadBox1ActionPerformed(evt); } }); jPanel1.add(payloadBox1); payloadField1.setEditable(false); payloadField1.setToolTipText("path/to/payload/file"); payloadField1.setMinimumSize(new java.awt.Dimension(200, 20)); payloadField1.setPreferredSize(new java.awt.Dimension(250, 20)); jPanel1.add(payloadField1); payloadFileChooser.setText("../"); jPanel1.add(payloadFileChooser); tcpPanel.add(jPanel1, java.awt.BorderLayout.NORTH); jPanel2.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 3)); jPanel2.setBorder(new javax.swing.border.TitledBorder(null, "IP Options", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Lucida Sans", 0, 11))); jPanel2.setMaximumSize(new java.awt.Dimension(32767, 86)); jPanel2.setMinimumSize(new java.awt.Dimension(10, 86)); jPanel2.setPreferredSize(new java.awt.Dimension(10, 86)); srcIpFlag.setFont(new java.awt.Font("Dialog", 0, 12)); srcIpFlag.setText("-S "); srcIpFlag.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { srcIpFlagActionPerformed(evt); } }); jPanel2.add(srcIpFlag); srcIpField.setEditable(false); srcIpField.setToolTipText("Enter The Source IP Address"); srcIpField.setMinimumSize(new java.awt.Dimension(97, 20)); srcIpField.setPreferredSize(new java.awt.Dimension(100, 20)); jPanel2.add(srcIpField); dstIpFlag.setFont(new java.awt.Font("Dialog", 0, 12)); dstIpFlag.setText("-D "); dstIpFlag.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { dstIpFlagActionPerformed(evt); } }); jPanel2.add(dstIpFlag); dstIpField.setEditable(false); dstIpField.setToolTipText("Enter The Destination IP Address"); dstIpField.setMinimumSize(new java.awt.Dimension(97, 20)); dstIpField.setPreferredSize(new java.awt.Dimension(100, 20)); jPanel2.add(dstIpField); ipIdFlag.setFont(new java.awt.Font("Dialog", 0, 12)); ipIdFlag.setText("-I "); ipIdFlag.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ipIdFlagActionPerformed(evt); } }); jPanel2.add(ipIdFlag); ipIdField.setEditable(false); ipIdField.setToolTipText("Enter the IP ID number"); ipIdField.setMinimumSize(new java.awt.Dimension(32, 20)); ipIdField.setPreferredSize(new java.awt.Dimension(32, 20)); jPanel2.add(ipIdField); ttlFlag.setFont(new java.awt.Font("Dialog", 0, 12)); ttlFlag.setText(" -T "); ttlFlag.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ttlFlagActionPerformed(evt); } }); jPanel2.add(ttlFlag); ttlField.setEditable(false); ttlField.setMinimumSize(new java.awt.Dimension(60, 20)); ttlField.setPreferredSize(new java.awt.Dimension(40, 20)); jPanel2.add(ttlField); tosFlag.setFont(new java.awt.Font("Dialog", 0, 12)); tosFlag.setText("-t "); tosFlag.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { tosFlagActionPerformed(evt); } }); jPanel2.add(tosFlag); tosField.setEditable(false); tosField.setToolTipText("Enter TOS"); tosField.setMinimumSize(new java.awt.Dimension(50, 20)); tosField.setPreferredSize(new java.awt.Dimension(50, 20)); jPanel2.add(tosField); fragOffSetFlag.setFont(new java.awt.Font("Dialog", 0, 12)); fragOffSetFlag.setText("-F "); fragOffSetFlag.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { fragOffSetFlagActionPerformed(evt); } }); jPanel2.add(fragOffSetFlag); fragOffSetField.setEditable(false); fragOffSetField.setToolTipText("Enter the fragmentation off set"); fragOffSetField.setMinimumSize(new java.awt.Dimension(50, 20)); fragOffSetField.setPreferredSize(new java.awt.Dimension(50, 20)); jPanel2.add(fragOffSetField); ipOptFileBox.setFont(new java.awt.Font("Dialog", 0, 12)); ipOptFileBox.setText("-O "); ipOptFileBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ipOptFileBoxActionPerformed(evt); } }); jPanel2.add(ipOptFileBox); ipOptFileField.setEditable(false); ipOptFileField.setToolTipText("/path/to/ip/options/file"); ipOptFileField.setPreferredSize(new java.awt.Dimension(250, 20)); jPanel2.add(ipOptFileField); ipOptionsFileChooser.setFont(new java.awt.Font("Dialog", 0, 12)); ipOptionsFileChooser.setText("../"); jPanel2.add(ipOptionsFileChooser); tcpPanel.add(jPanel2, java.awt.BorderLayout.CENTER); jPanel3.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 2)); jPanel3.setBorder(new javax.swing.border.TitledBorder(null, "Data Link Options", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Lucida Sans", 0, 11))); jPanel3.setMaximumSize(new java.awt.Dimension(32767, 52)); jPanel3.setMinimumSize(new java.awt.Dimension(10, 52)); jPanel3.setPreferredSize(new java.awt.Dimension(10, 52)); ethDevFlag.setFont(new java.awt.Font("Dialog", 0, 12)); ethDevFlag.setText("-d "); ethDevFlag.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ethDevFlagActionPerformed(evt); } }); jPanel3.add(ethDevFlag); ethDevField.setEditable(false); ethDevField.setToolTipText("Enter the ethernet device you want to use"); ethDevField.setMinimumSize(new java.awt.Dimension(63, 20)); ethDevField.setPreferredSize(new java.awt.Dimension(63, 20)); jPanel3.add(ethDevField); srcMacFlag.setFont(new java.awt.Font("Dialog", 0, 12)); srcMacFlag.setText("-H"); srcMacFlag.setToolTipText("Source Mac Address"); srcMacFlag.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { srcMacFlagActionPerformed(evt); } }); jPanel3.add(srcMacFlag); srcMacField.setEditable(false); srcMacField.setToolTipText("Source Mac Address"); srcMacField.setMinimumSize(new java.awt.Dimension(100, 20)); srcMacField.setPreferredSize(new java.awt.Dimension(100, 20)); jPanel3.add(srcMacField); dstMacFlag.setFont(new java.awt.Font("Dialog", 0, 12)); dstMacFlag.setText("-M"); dstMacFlag.setToolTipText("Destination Mac Address"); dstMacFlag.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { dstMacFlagActionPerformed(evt); } }); jPanel3.add(dstMacFlag); dstMacField.setEditable(false); dstMacField.setToolTipText("Destination Mac Address"); dstMacField.setMinimumSize(new java.awt.Dimension(100, 20)); dstMacField.setPreferredSize(new java.awt.Dimension(100, 20)); jPanel3.add(dstMacField); tcpPanel.add(jPanel3, java.awt.BorderLayout.SOUTH); jtabbedPane1.addTab("TCP", tcpPanel); udpPanel.setLayout(new java.awt.BorderLayout()); jPanel4.setLayout(new java.awt.BorderLayout()); jPanel4.setBorder(new javax.swing.border.TitledBorder(null, "UPD Options", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Lucida Sans", 0, 11))); jPanel4.setMaximumSize(new java.awt.Dimension(32767, 150)); jPanel4.setMinimumSize(new java.awt.Dimension(20, 150)); jPanel4.setPreferredSize(new java.awt.Dimension(20, 150)); jPanel7.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 2)); srcPrtFlag2.setFont(new java.awt.Font("Dialog", 0, 12)); srcPrtFlag2.setText("-x "); srcPrtFlag2.setToolTipText("Source Port Flag"); srcPrtFlag2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { srcPrtFlag2ActionPerformed(evt); } }); jPanel7.add(srcPrtFlag2); srcPrtField2.setEditable(false); srcPrtField2.setToolTipText("Enter the source port"); srcPrtField2.setMinimumSize(new java.awt.Dimension(35, 20)); srcPrtField2.setPreferredSize(new java.awt.Dimension(48, 20)); jPanel7.add(srcPrtField2); dstPrtFlag2.setFont(new java.awt.Font("Dialog", 0, 12)); dstPrtFlag2.setText("-y "); dstPrtFlag2.setToolTipText("Destination Port Flag"); dstPrtFlag2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { dstPrtFlag2ActionPerformed(evt); } }); jPanel7.add(dstPrtFlag2); dstPrtField2.setEditable(false); dstPrtField2.setToolTipText("Enter Destination Port"); dstPrtField2.setMinimumSize(new java.awt.Dimension(35, 20)); dstPrtField2.setPreferredSize(new java.awt.Dimension(48, 20)); jPanel7.add(dstPrtField2); jPanel4.add(jPanel7, java.awt.BorderLayout.NORTH); jPanel12.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 2)); payloadBox2.setFont(new java.awt.Font("Dialog", 0, 12)); payloadBox2.setText("-P "); payloadBox2.setToolTipText("Payload File"); payloadBox2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { payloadBox2ActionPerformed(evt); } }); jPanel12.add(payloadBox2); payloadField2.setEditable(false); payloadField2.setToolTipText("path/to/payload/file"); payloadField2.setMinimumSize(new java.awt.Dimension(200, 20)); payloadField2.setPreferredSize(new java.awt.Dimension(250, 20)); jPanel12.add(payloadField2); payloadFileChooser1.setText("../"); jPanel12.add(payloadFileChooser1); jPanel4.add(jPanel12, java.awt.BorderLayout.WEST); udpPanel.add(jPanel4, java.awt.BorderLayout.NORTH); jPanel5.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 3)); jPanel5.setBorder(new javax.swing.border.TitledBorder(null, "IP Options", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Lucida Sans", 0, 11))); jPanel5.setMaximumSize(new java.awt.Dimension(32767, 86)); jPanel5.setMinimumSize(new java.awt.Dimension(1228, 86)); jPanel5.setPreferredSize(new java.awt.Dimension(1460, 86)); srcIpFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); srcIpFlag1.setText("-S "); srcIpFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { srcIpFlag1ActionPerformed(evt); } }); jPanel5.add(srcIpFlag1); srcIpField1.setEditable(false); srcIpField1.setToolTipText("Enter The Source IP Address"); srcIpField1.setMinimumSize(new java.awt.Dimension(97, 20)); srcIpField1.setPreferredSize(new java.awt.Dimension(100, 20)); jPanel5.add(srcIpField1); dstIpFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); dstIpFlag1.setText("-D "); dstIpFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { dstIpFlag1ActionPerformed(evt); } }); jPanel5.add(dstIpFlag1); dstIpField1.setEditable(false); dstIpField1.setToolTipText("Enter The Destination IP Address"); dstIpField1.setMinimumSize(new java.awt.Dimension(97, 20)); dstIpField1.setPreferredSize(new java.awt.Dimension(100, 20)); jPanel5.add(dstIpField1); ipIdFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); ipIdFlag1.setText("-I "); ipIdFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ipIdFlag1ActionPerformed(evt); } }); jPanel5.add(ipIdFlag1); ipIdField1.setEditable(false); ipIdField1.setToolTipText("Enter the IP ID number"); ipIdField1.setMinimumSize(new java.awt.Dimension(32, 20)); ipIdField1.setPreferredSize(new java.awt.Dimension(32, 20)); jPanel5.add(ipIdField1); ttlFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); ttlFlag1.setText(" -T "); ttlFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ttlFlag1ActionPerformed(evt); } }); jPanel5.add(ttlFlag1); ttlField1.setEditable(false); ttlField1.setMinimumSize(new java.awt.Dimension(60, 20)); ttlField1.setPreferredSize(new java.awt.Dimension(40, 20)); jPanel5.add(ttlField1); tosFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); tosFlag1.setText("-t "); tosFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { tosFlag1ActionPerformed(evt); } }); jPanel5.add(tosFlag1); tosField1.setEditable(false); tosField1.setToolTipText("Enter TOS"); tosField1.setMinimumSize(new java.awt.Dimension(50, 20)); tosField1.setPreferredSize(new java.awt.Dimension(50, 20)); jPanel5.add(tosField1); fragOffSetFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); fragOffSetFlag1.setText("-F "); fragOffSetFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { fragOffSetFlag1ActionPerformed(evt); } }); jPanel5.add(fragOffSetFlag1); fragOffSetField1.setEditable(false); fragOffSetField1.setToolTipText("Enter the fragmentation off set"); fragOffSetField1.setMinimumSize(new java.awt.Dimension(50, 20)); fragOffSetField1.setPreferredSize(new java.awt.Dimension(50, 20)); jPanel5.add(fragOffSetField1); ipOptFileBox1.setFont(new java.awt.Font("Dialog", 0, 12)); ipOptFileBox1.setText("-O "); ipOptFileBox1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ipOptFileBox1ActionPerformed(evt); } }); jPanel5.add(ipOptFileBox1); ipOptFileField1.setEditable(false); ipOptFileField1.setToolTipText("/path/to/ip/options/file"); ipOptFileField1.setPreferredSize(new java.awt.Dimension(250, 20)); jPanel5.add(ipOptFileField1); ipOptionsFileChooser1.setFont(new java.awt.Font("Dialog", 0, 12)); ipOptionsFileChooser1.setText("../"); jPanel5.add(ipOptionsFileChooser1); udpPanel.add(jPanel5, java.awt.BorderLayout.CENTER); jPanel6.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 2)); jPanel6.setBorder(new javax.swing.border.TitledBorder(null, "Data Link Options", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Lucida Sans", 0, 11))); jPanel6.setMaximumSize(new java.awt.Dimension(32767, 52)); jPanel6.setMinimumSize(new java.awt.Dimension(545, 52)); jPanel6.setPreferredSize(new java.awt.Dimension(545, 52)); ethDevFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); ethDevFlag1.setText("-d "); ethDevFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ethDevFlag1ActionPerformed(evt); } }); jPanel6.add(ethDevFlag1); ethDevField1.setEditable(false); ethDevField1.setToolTipText("Enter the ethernet device you want to use"); ethDevField1.setMinimumSize(new java.awt.Dimension(63, 20)); ethDevField1.setPreferredSize(new java.awt.Dimension(63, 20)); jPanel6.add(ethDevField1); srcMacFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); srcMacFlag1.setText("-H"); srcMacFlag1.setToolTipText("Source Mac Address"); srcMacFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { srcMacFlag1ActionPerformed(evt); } }); jPanel6.add(srcMacFlag1); srcMacField1.setEditable(false); srcMacField1.setToolTipText("Source Mac Address"); srcMacField1.setMinimumSize(new java.awt.Dimension(100, 20)); srcMacField1.setPreferredSize(new java.awt.Dimension(100, 20)); jPanel6.add(srcMacField1); dstMacFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); dstMacFlag1.setText("-M"); dstMacFlag1.setToolTipText("Destination Mac Address"); dstMacFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { dstMacFlag1ActionPerformed(evt); } }); jPanel6.add(dstMacFlag1); dstMacField1.setEditable(false); dstMacField1.setToolTipText("Destination Mac Address"); dstMacField1.setMinimumSize(new java.awt.Dimension(100, 20)); dstMacField1.setPreferredSize(new java.awt.Dimension(100, 20)); jPanel6.add(dstMacField1); udpPanel.add(jPanel6, java.awt.BorderLayout.SOUTH); jtabbedPane1.addTab("UDP", udpPanel); icmpPanel.setLayout(new java.awt.BorderLayout()); jPanel8.setLayout(new java.awt.BorderLayout()); jPanel8.setMaximumSize(new java.awt.Dimension(32767, 150)); jPanel8.setMinimumSize(new java.awt.Dimension(20, 150)); jPanel8.setPreferredSize(new java.awt.Dimension(20, 150)); jTabbedPane2.setFont(new java.awt.Font("Dialog", 0, 12)); jPanel11.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 3)); icmpCodeFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); icmpCodeFlag1.setText("-c ICMP-code"); icmpCodeFlag1.setToolTipText("-c ICMP-code"); icmpCodeFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { icmpCodeFlag1ActionPerformed(evt); } }); jPanel11.add(icmpCodeFlag1); icmpCodeField1.setEditable(false); icmpCodeField1.setToolTipText("Specify ICMP-code within the ICMP header"); icmpCodeField1.setMaximumSize(new java.awt.Dimension(25, 2147483647)); icmpCodeField1.setMinimumSize(new java.awt.Dimension(25, 19)); icmpCodeField1.setPreferredSize(new java.awt.Dimension(25, 19)); jPanel11.add(icmpCodeField1); icmpIDFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); icmpIDFlag1.setText("-e ICMP-ID"); icmpIDFlag1.setToolTipText("-e ICMP-ID"); icmpIDFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { icmpIDFlag1ActionPerformed(evt); } }); jPanel11.add(icmpIDFlag1); icmpIDField1.setEditable(false); icmpIDField1.setToolTipText("Specify the ICMP-ID within the ICMP header."); icmpIDField1.setMaximumSize(new java.awt.Dimension(30, 2147483647)); icmpIDField1.setMinimumSize(new java.awt.Dimension(30, 19)); icmpIDField1.setPreferredSize(new java.awt.Dimension(30, 19)); jPanel11.add(icmpIDField1); icmpTypeFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); icmpTypeFlag1.setText("-i ICMP-type"); icmpTypeFlag1.setToolTipText("-i ICMP-type"); icmpTypeFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { icmpTypeFlag1ActionPerformed(evt); } }); jPanel11.add(icmpTypeFlag1); icmpTypeField1.setEditable(false); icmpTypeField1.setToolTipText("Specify the ICMP-type within the ICMP header."); icmpTypeField1.setMaximumSize(new java.awt.Dimension(25, 2147483647)); icmpTypeField1.setMinimumSize(new java.awt.Dimension(25, 19)); icmpTypeField1.setPreferredSize(new java.awt.Dimension(25, 19)); jPanel11.add(icmpTypeField1); prefGatewayFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); prefGatewayFlag1.setText("-G"); prefGatewayFlag1.setToolTipText("-G preferred-gateway"); prefGatewayFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { prefGatewayFlag1ActionPerformed(evt); } }); jPanel11.add(prefGatewayFlag1); prefGatewayField1.setEditable(false); prefGatewayField1.setToolTipText("Specify the preferred-gateway-IP-address for ICMP redirect injections."); prefGatewayField1.setMaximumSize(new java.awt.Dimension(110, 2147483647)); prefGatewayField1.setMinimumSize(new java.awt.Dimension(110, 19)); prefGatewayField1.setPreferredSize(new java.awt.Dimension(110, 19)); jPanel11.add(prefGatewayField1); icmpMaskFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); icmpMaskFlag1.setText("-m mask"); icmpMaskFlag1.setToolTipText("-m address-mask"); icmpMaskFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { icmpMaskFlag1ActionPerformed(evt); } }); jPanel11.add(icmpMaskFlag1); icmpMaskField1.setEditable(false); icmpMaskField1.setToolTipText("Specify the IP-address-mask for ICMP address mask packets."); icmpMaskField1.setMaximumSize(new java.awt.Dimension(40, 2147483647)); icmpMaskField1.setMinimumSize(new java.awt.Dimension(40, 19)); icmpMaskField1.setPreferredSize(new java.awt.Dimension(40, 19)); jPanel11.add(icmpMaskField1); icmpModeFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); icmpModeFlag1.setText("-q ICMP-injection-mode"); icmpModeFlag1.setToolTipText("-q ICMP-injection-mode"); icmpModeFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { icmpModeFlag1ActionPerformed(evt); } }); jPanel11.add(icmpModeFlag1); icmpModeCBox1.setFont(new java.awt.Font("Dialog", 0, 10)); icmpModeCBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "NONE", "-qE (ICMP echo)", "-qM (ICMP address mask)", "-qU (ICMP unreachable)", "-qX (ICMP time exceeded)", "-qR (ICMP redirect)", "-qT (ICMP timestamp)" })); icmpModeCBox1.setToolTipText("Specify the ICMP-injection-mode to use when injecting."); icmpModeCBox1.setMinimumSize(new java.awt.Dimension(140, 22)); icmpModeCBox1.setPreferredSize(new java.awt.Dimension(140, 22)); icmpModeCBox1.setEnabled(false); jPanel11.add(icmpModeCBox1); icmpSeqNumFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); icmpSeqNumFlag1.setText("-s"); icmpSeqNumFlag1.setToolTipText("-s ICMP-sequence-number"); icmpSeqNumFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { icmpSeqNumFlag1ActionPerformed(evt); } }); jPanel11.add(icmpSeqNumFlag1); icmpSeqNumField1.setEditable(false); icmpSeqNumField1.setToolTipText("Specify the ICMP-sequence-number within the ICMP header."); icmpSeqNumField1.setMaximumSize(new java.awt.Dimension(35, 2147483647)); icmpSeqNumField1.setMinimumSize(new java.awt.Dimension(35, 19)); icmpSeqNumField1.setPreferredSize(new java.awt.Dimension(35, 19)); jPanel11.add(icmpSeqNumField1); payloadBox3.setFont(new java.awt.Font("Dialog", 0, 12)); payloadBox3.setText("-P "); payloadBox3.setToolTipText("Payload File"); payloadBox3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { payloadBox3ActionPerformed(evt); } }); jPanel11.add(payloadBox3); payloadField3.setEditable(false); payloadField3.setToolTipText("path/to/payload/file"); payloadField3.setMinimumSize(new java.awt.Dimension(200, 20)); payloadField3.setPreferredSize(new java.awt.Dimension(250, 20)); jPanel11.add(payloadField3); payloadFileChooser2.setText("../"); jPanel11.add(payloadFileChooser2); jTabbedPane2.addTab("ICMP Options", jPanel11); jPanel13.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 3)); icmpTRRTTFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); icmpTRRTTFlag1.setText("-a ICMP-timestamp-request-reply-transmit-time"); icmpTRRTTFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { icmpTRRTTFlag1ActionPerformed(evt); } }); jPanel13.add(icmpTRRTTFlag1); icmpTRRTTField1.setEditable(false); icmpTRRTTField1.setToolTipText("Specify the ICMP-timestamp-request-reply-transmit-time within the ICMP timestamp header."); icmpTRRTTField1.setMinimumSize(new java.awt.Dimension(60, 19)); icmpTRRTTField1.setPreferredSize(new java.awt.Dimension(60, 19)); jPanel13.add(icmpTRRTTField1); icmpTRTTFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); icmpTRTTFlag1.setText("-o ICMP-timestamp-request-transmit-time"); icmpTRTTFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { icmpTRTTFlag1ActionPerformed(evt); } }); jPanel13.add(icmpTRTTFlag1); icmpTRTTField1.setEditable(false); icmpTRTTField1.setToolTipText("Specify the ICMP-timestamp-request-transmit-time within the ICMP timestamp header."); icmpTRTTField1.setMinimumSize(new java.awt.Dimension(60, 19)); icmpTRTTField1.setPreferredSize(new java.awt.Dimension(60, 19)); jPanel13.add(icmpTRTTField1); icmpTRRRTFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); icmpTRRRTFlag1.setText("-r ICMP-timestamp-request-reply-received-time"); icmpTRRRTFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { icmpTRRRTFlag1ActionPerformed(evt); } }); jPanel13.add(icmpTRRRTFlag1); icmpTRRRTField1.setEditable(false); icmpTRRRTField1.setToolTipText("Specify the ICMP-timestamp-request-reply-received-time within the ICMP timestamp header."); icmpTRRRTField1.setMinimumSize(new java.awt.Dimension(60, 19)); icmpTRRRTField1.setPreferredSize(new java.awt.Dimension(60, 19)); jPanel13.add(icmpTRRRTField1); jTabbedPane2.addTab("Timestamp Options", jPanel13); jPanel14.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 3)); icmpDstIPFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); icmpDstIPFlag1.setText("-b "); icmpDstIPFlag1.setToolTipText("-b original-destination-IP-address"); icmpDstIPFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { icmpDstIPFlag1ActionPerformed(evt); } }); jPanel14.add(icmpDstIPFlag1); icmpDstIPField1.setEditable(false); icmpDstIPField1.setToolTipText("Specify the original-destination-IP-address within an ICMP unreachable, redirect or time exceeded packet."); icmpDstIPField1.setMinimumSize(new java.awt.Dimension(100, 19)); icmpDstIPField1.setPreferredSize(new java.awt.Dimension(100, 19)); jPanel14.add(icmpDstIPField1); icmpSrcIPFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); icmpSrcIPFlag1.setText("-B "); icmpSrcIPFlag1.setToolTipText("-B original-source-IP-address"); icmpSrcIPFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { icmpSrcIPFlag1ActionPerformed(evt); } }); jPanel14.add(icmpSrcIPFlag1); icmpSrcIPField1.setEditable(false); icmpSrcIPField1.setToolTipText("Specify the original-source-IP-address within an ICMP unreachable, redirect or time exceeded packet."); icmpSrcIPField1.setMinimumSize(new java.awt.Dimension(100, 19)); icmpSrcIPField1.setPreferredSize(new java.awt.Dimension(100, 19)); jPanel14.add(icmpSrcIPField1); icmpFragOpsFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); icmpFragOpsFlag1.setText("-f "); icmpFragOpsFlag1.setToolTipText("-f original-fragmentation-options"); icmpFragOpsFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { icmpFragOpsFlag1ActionPerformed(evt); } }); jPanel14.add(icmpFragOpsFlag1); icmpFragOpsField1.setEditable(false); icmpFragOpsField1.setToolTipText("Specify the original-IP-fragmentation-options within an ICMP unreachable, redirect or time exceeded packet."); icmpFragOpsField1.setMinimumSize(new java.awt.Dimension(50, 19)); icmpFragOpsField1.setPreferredSize(new java.awt.Dimension(50, 19)); jPanel14.add(icmpFragOpsField1); icmpIPTosFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); icmpIPTosFlag1.setText("-j IP-TOS"); icmpIPTosFlag1.setToolTipText("-j original-IP-TOS"); icmpIPTosFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { icmpIPTosFlag1ActionPerformed(evt); } }); jPanel14.add(icmpIPTosFlag1); icmpIPTosField1.setEditable(false); icmpIPTosField1.setToolTipText("Specify the original-IP-type-of-service (TOS) within an ICMP unreachable, redirect or time exceeded packet."); icmpIPTosField1.setMinimumSize(new java.awt.Dimension(50, 19)); icmpIPTosField1.setPreferredSize(new java.awt.Dimension(50, 19)); jPanel14.add(icmpIPTosField1); icmpIPTtlFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); icmpIPTtlFlag1.setText("-J IP-TTL"); icmpIPTtlFlag1.setToolTipText("-J original-IP-TTL"); icmpIPTtlFlag1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { icmpIPTtlFlag1ActionPerformed(evt); } }); jPanel14.add(icmpIPTtlFlag1); icmpIPTtlField1.setEditable(false); icmpIPTtlField1.setToolTipText("Specify the original-IP-time-to-live (TTL) within an ICMP unreachable, redirect or time exceeded packet."); icmpIPTtlField1.setMinimumSize(new java.awt.Dimension(50, 19)); icmpIPTtlField1.setPreferredSize(new java.awt.Dimension(50, 19)); jPanel14.add(icmpIPTtlField1); icmpIPOptsBox.setFont(new java.awt.Font("Dialog", 0, 12)); icmpIPOptsBox.setText("-l "); icmpIPOptsBox.setToolTipText("-l original-IP-options-file"); icmpIPOptsBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { icmpIPOptsBoxActionPerformed(evt); } }); jPanel14.add(icmpIPOptsBox); icmpIPOptsPayloadField.setEditable(false); icmpIPOptsPayloadField.setToolTipText("path/to/ip-options/file"); icmpIPOptsPayloadField.setMinimumSize(new java.awt.Dimension(200, 20)); icmpIPOptsPayloadField.setPreferredSize(new java.awt.Dimension(250, 20)); jPanel14.add(icmpIPOptsPayloadField); payloadFileChooser3.setText("../"); jPanel14.add(payloadFileChooser3); jTabbedPane2.addTab("Original Datagram Options", jPanel14); jPanel8.add(jTabbedPane2, java.awt.BorderLayout.CENTER); icmpPanel.add(jPanel8, java.awt.BorderLayout.NORTH); jPanel9.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 3)); jPanel9.setBorder(new javax.swing.border.TitledBorder(null, "IP Options", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Lucida Sans", 0, 11))); jPanel9.setMaximumSize(new java.awt.Dimension(32767, 56)); jPanel9.setMinimumSize(new java.awt.Dimension(1228, 86)); jPanel9.setPreferredSize(new java.awt.Dimension(1460, 86)); srcIpFlag2.setFont(new java.awt.Font("Dialog", 0, 12)); srcIpFlag2.setText("-S "); srcIpFlag2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { srcIpFlag2ActionPerformed(evt); } }); jPanel9.add(srcIpFlag2); srcIpField2.setEditable(false); srcIpField2.setToolTipText("Enter The Source IP Address"); srcIpField2.setMinimumSize(new java.awt.Dimension(97, 20)); srcIpField2.setPreferredSize(new java.awt.Dimension(100, 20)); jPanel9.add(srcIpField2); dstIpFlag2.setFont(new java.awt.Font("Dialog", 0, 12)); dstIpFlag2.setText("-D "); dstIpFlag2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { dstIpFlag2ActionPerformed(evt); } }); jPanel9.add(dstIpFlag2); dstIpField2.setEditable(false); dstIpField2.setToolTipText("Enter The Destination IP Address"); dstIpField2.setMinimumSize(new java.awt.Dimension(97, 20)); dstIpField2.setPreferredSize(new java.awt.Dimension(100, 20)); jPanel9.add(dstIpField2); ipIdFlag2.setFont(new java.awt.Font("Dialog", 0, 12)); ipIdFlag2.setText("-I "); ipIdFlag2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ipIdFlag2ActionPerformed(evt); } }); jPanel9.add(ipIdFlag2); ipIdField2.setEditable(false); ipIdField2.setToolTipText("Enter the IP ID number"); ipIdField2.setMinimumSize(new java.awt.Dimension(32, 20)); ipIdField2.setPreferredSize(new java.awt.Dimension(32, 20)); jPanel9.add(ipIdField2); ttlFlag2.setFont(new java.awt.Font("Dialog", 0, 12)); ttlFlag2.setText(" -T "); ttlFlag2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ttlFlag2ActionPerformed(evt); } }); jPanel9.add(ttlFlag2); ttlField2.setEditable(false); ttlField2.setMinimumSize(new java.awt.Dimension(60, 20)); ttlField2.setPreferredSize(new java.awt.Dimension(40, 20)); jPanel9.add(ttlField2); tosFlag2.setFont(new java.awt.Font("Dialog", 0, 12)); tosFlag2.setText("-t "); tosFlag2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { tosFlag2ActionPerformed(evt); } }); jPanel9.add(tosFlag2); tosField2.setEditable(false); tosField2.setToolTipText("Enter TOS"); tosField2.setMinimumSize(new java.awt.Dimension(50, 20)); tosField2.setPreferredSize(new java.awt.Dimension(50, 20)); jPanel9.add(tosField2); fragOffSetFlag2.setFont(new java.awt.Font("Dialog", 0, 12)); fragOffSetFlag2.setText("-F "); fragOffSetFlag2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { fragOffSetFlag2ActionPerformed(evt); } }); jPanel9.add(fragOffSetFlag2); fragOffSetField2.setEditable(false); fragOffSetField2.setToolTipText("Enter the fragmentation off set"); fragOffSetField2.setMinimumSize(new java.awt.Dimension(50, 20)); fragOffSetField2.setPreferredSize(new java.awt.Dimension(50, 20)); jPanel9.add(fragOffSetField2); ipOptFileBox2.setFont(new java.awt.Font("Dialog", 0, 12)); ipOptFileBox2.setText("-O "); ipOptFileBox2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ipOptFileBox2ActionPerformed(evt); } }); jPanel9.add(ipOptFileBox2); ipOptFileField2.setEditable(false); ipOptFileField2.setToolTipText("/path/to/ip/options/file"); ipOptFileField2.setPreferredSize(new java.awt.Dimension(250, 20)); jPanel9.add(ipOptFileField2); ipOptionsFileChooser2.setFont(new java.awt.Font("Dialog", 0, 12)); ipOptionsFileChooser2.setText("../"); jPanel9.add(ipOptionsFileChooser2); icmpPanel.add(jPanel9, java.awt.BorderLayout.CENTER); jPanel10.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 2)); jPanel10.setBorder(new javax.swing.border.TitledBorder(null, "Data Link Options", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Lucida Sans", 0, 11))); jPanel10.setPreferredSize(new java.awt.Dimension(545, 52)); ethDevFlag2.setFont(new java.awt.Font("Dialog", 0, 12)); ethDevFlag2.setText("-d "); ethDevFlag2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ethDevFlag2ActionPerformed(evt); } }); jPanel10.add(ethDevFlag2); ethDevField2.setEditable(false); ethDevField2.setToolTipText("Enter the ethernet device you want to use"); ethDevField2.setMinimumSize(new java.awt.Dimension(63, 20)); ethDevField2.setPreferredSize(new java.awt.Dimension(63, 20)); jPanel10.add(ethDevField2); srcMacFlag2.setFont(new java.awt.Font("Dialog", 0, 12)); srcMacFlag2.setText("-H"); srcMacFlag2.setToolTipText("Source Mac Address"); srcMacFlag2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { srcMacFlag2ActionPerformed(evt); } }); jPanel10.add(srcMacFlag2); srcMacField2.setEditable(false); srcMacField2.setToolTipText("Source Mac Address"); srcMacField2.setMinimumSize(new java.awt.Dimension(100, 20)); srcMacField2.setPreferredSize(new java.awt.Dimension(100, 20)); jPanel10.add(srcMacField2); dstMacFlag2.setFont(new java.awt.Font("Dialog", 0, 12)); dstMacFlag2.setText("-M"); dstMacFlag2.setToolTipText("Destination Mac Address"); dstMacFlag2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { dstMacFlag2ActionPerformed(evt); } }); jPanel10.add(dstMacFlag2); dstMacField2.setEditable(false); dstMacField2.setToolTipText("Destination Mac Address"); dstMacField2.setMinimumSize(new java.awt.Dimension(100, 20)); dstMacField2.setPreferredSize(new java.awt.Dimension(100, 20)); jPanel10.add(dstMacField2); icmpPanel.add(jPanel10, java.awt.BorderLayout.SOUTH); jtabbedPane1.addTab("ICMP", icmpPanel); queuePanel.setLayout(new java.awt.BorderLayout()); queuedList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); jScrollPane1.setViewportView(queuedList); queuePanel.add(jScrollPane1, java.awt.BorderLayout.CENTER); injectNext.setText("Inject Next"); injectNext.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { injectNextActionPerformed(evt); } }); jPanel16.add(injectNext); jButton2.setText("Inject All"); jPanel16.add(jButton2); jButton3.setText("Remove Next"); jPanel16.add(jButton3); jButton4.setText("Remove All"); jPanel16.add(jButton4); jButton5.setText("Save"); jPanel16.add(jButton5); queuePanel.add(jPanel16, java.awt.BorderLayout.NORTH); jtabbedPane1.addTab("Packet Queue", queuePanel); statusPane.setVerticalScrollBarPolicy(javax.swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); injectionResult.setBackground(new java.awt.Color(0, 0, 0)); injectionResult.setForeground(new java.awt.Color(255, 255, 255)); statusPane.setViewportView(injectionResult); jtabbedPane1.addTab("Result", statusPane); jtabbedPane1.addTab("tab6", jPanel15); masterPanel.add(jtabbedPane1, java.awt.BorderLayout.CENTER); controlPanel.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT)); controlPanel.setMaximumSize(new java.awt.Dimension(32767, 35)); controlPanel.setMinimumSize(new java.awt.Dimension(10, 35)); controlPanel.setPreferredSize(new java.awt.Dimension(10, 35)); injectButton.setText("Inject Packet"); injectButton.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); injectButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { injectButtonActionPerformed(evt); } }); controlPanel.add(injectButton); queuePacket.setFont(new java.awt.Font("Dialog", 0, 12)); queuePacket.setText("Queue"); queuePacket.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { queuePacketActionPerformed(evt); } }); controlPanel.add(queuePacket); jLabel1.setFont(new java.awt.Font("Dialog", 0, 12)); jLabel1.setText("Status:"); controlPanel.add(jLabel1); statusField.setEditable(false); statusField.setText("READY"); statusField.setMinimumSize(new java.awt.Dimension(350, 19)); statusField.setPreferredSize(new java.awt.Dimension(320, 19)); controlPanel.add(statusField); masterPanel.add(controlPanel, java.awt.BorderLayout.SOUTH); getContentPane().add(masterPanel, java.awt.BorderLayout.CENTER); pack(); }//GEN-END:initComponents private void ipOptFileBox2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ipOptFileBox2ActionPerformed // TODO add your handling code here: if (ipOptFileBox2.isSelected() == true){ ipOptFileField2.setEditable(true); }else if (ipOptFileBox2.isSelected() == false){ ipOptFileField2.setEditable(false); } }//GEN-LAST:event_ipOptFileBox2ActionPerformed private void injectNextActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_injectNextActionPerformed // TODO add your handling code here: String currentlySelected = (String)queuedList.getSelectedValue(); System.out.println(currentlySelected + " is currently selected."); }//GEN-LAST:event_injectNextActionPerformed private void queuePacketActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_queuePacketActionPerformed // TODO add your handling code here: if (tcpPanel.isShowing() == true){ System.out.println("tcp panel is active"); parseNemesisArgsTCP(); setArgsTCP(); storePacket("tcp"); resetArgs(); } else if (udpPanel.isShowing() == true){ parseNemesisArgsUDP(); setArgsUDP(); storePacket("udp"); resetArgs(); } else if (icmpPanel.isShowing() == true){ //parseNemesisArgsUDP(); //setArgsUPD(); storePacket("icmp"); //resetArgsUDP(); } nemesisArgs = ""; }//GEN-LAST:event_queuePacketActionPerformed /*START ICMP TAB BUTTON ACTIONS */ private void icmpIPOptsBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpIPOptsBoxActionPerformed // TODO add your handling code here: if (ipOptFileBox1.isSelected() == true){ ipOptFileField1.setEditable(true); }else if (ipOptFileBox1.isSelected() == false){ ipOptFileField1.setEditable(false); } }//GEN-LAST:event_icmpIPOptsBoxActionPerformed private void icmpIPTtlFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpIPTtlFlag1ActionPerformed // TODO add your handling code here: if (icmpIPTtlFlag1.isSelected() == true){ icmpIPTtlField1.setEditable(true); }else if (icmpIPTtlFlag1.isSelected() == false){ icmpIPTtlField1.setEditable(false); } }//GEN-LAST:event_icmpIPTtlFlag1ActionPerformed private void icmpIPTosFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpIPTosFlag1ActionPerformed // TODO add your handling code here: if (icmpIPTosFlag1.isSelected() == true){ icmpIPTosField1.setEditable(true); }else if (icmpIPTosFlag1.isSelected() == false){ icmpIPTosField1.setEditable(false); } }//GEN-LAST:event_icmpIPTosFlag1ActionPerformed private void icmpFragOpsFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpFragOpsFlag1ActionPerformed // TODO add your handling code here: if (icmpFragOpsFlag1.isSelected() == true){ icmpFragOpsField1.setEditable(true); }else if (icmpFragOpsFlag1.isSelected() == false){ icmpFragOpsField1.setEditable(false); } }//GEN-LAST:event_icmpFragOpsFlag1ActionPerformed private void icmpSrcIPFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpSrcIPFlag1ActionPerformed // TODO add your handling code here: if (icmpSrcIPFlag1.isSelected() == true){ icmpSrcIPField1.setEditable(true); }else if (icmpSrcIPFlag1.isSelected() == false){ icmpSrcIPField1.setEditable(false); } }//GEN-LAST:event_icmpSrcIPFlag1ActionPerformed private void icmpDstIPFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpDstIPFlag1ActionPerformed // TODO add your handling code here: if (icmpDstIPFlag1.isSelected() == true){ icmpDstIPField1.setEditable(true); }else if (icmpDstIPFlag1.isSelected() == false){ icmpDstIPField1.setEditable(false); } }//GEN-LAST:event_icmpDstIPFlag1ActionPerformed private void icmpTRRRTFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpTRRRTFlag1ActionPerformed // TODO add your handling code here: if (icmpTRRRTFlag1.isSelected() == true){ icmpTRRRTField1.setEditable(true); }else if (icmpTRRRTFlag1.isSelected() == false){ icmpTRRRTField1.setEditable(false); } }//GEN-LAST:event_icmpTRRRTFlag1ActionPerformed private void icmpTRTTFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpTRTTFlag1ActionPerformed // TODO add your handling code here: if (icmpTRTTFlag1.isSelected() == true){ icmpTRTTField1.setEditable(true); }else if (icmpTRTTFlag1.isSelected() == false){ icmpTRTTField1.setEditable(false); } }//GEN-LAST:event_icmpTRTTFlag1ActionPerformed private void icmpTRRTTFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpTRRTTFlag1ActionPerformed // TODO add your handling code here: if (icmpTRRTTFlag1.isSelected() == true){ icmpTRRTTField1.setEditable(true); }else if (icmpTRRTTFlag1.isSelected() == false){ icmpTRRTTField1.setEditable(false); } }//GEN-LAST:event_icmpTRRTTFlag1ActionPerformed private void dstMacFlag2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dstMacFlag2ActionPerformed // TODO add your handling code here: if (dstMacFlag2.isSelected() == true){ dstMacField2.setEditable(true); }else if (dstMacFlag2.isSelected() == false){ dstMacField2.setEditable(false); } }//GEN-LAST:event_dstMacFlag2ActionPerformed private void srcMacFlag2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_srcMacFlag2ActionPerformed // TODO add your handling code here: if (srcMacFlag2.isSelected() == true){ srcMacField2.setEditable(true); }else if (srcMacFlag2.isSelected() == false){ srcMacField2.setEditable(false); } }//GEN-LAST:event_srcMacFlag2ActionPerformed private void ethDevFlag2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ethDevFlag2ActionPerformed // TODO add your handling code here: if (ethDevFlag2.isSelected() == true){ ethDevField2.setEditable(true); }else if (ethDevFlag2.isSelected() == false){ ethDevField2.setEditable(false); } }//GEN-LAST:event_ethDevFlag2ActionPerformed private void fragOffSetFlag2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fragOffSetFlag2ActionPerformed // TODO add your handling code here: if (fragOffSetFlag2.isSelected() == true){ fragOffSetField2.setEditable(true); }else if (fragOffSetFlag2.isSelected() == false){ fragOffSetField2.setEditable(false); } }//GEN-LAST:event_fragOffSetFlag2ActionPerformed private void tosFlag2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tosFlag2ActionPerformed // TODO add your handling code here: if (tosFlag2.isSelected() == true){ tosField2.setEditable(true); }else if (tosFlag2.isSelected() == false){ tosField2.setEditable(false); } }//GEN-LAST:event_tosFlag2ActionPerformed private void ttlFlag2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ttlFlag2ActionPerformed // TODO add your handling code here: if (ttlFlag2.isSelected() == true){ ttlField2.setEditable(true); }else if (tosFlag2.isSelected() == false){ ttlField2.setEditable(false); } }//GEN-LAST:event_ttlFlag2ActionPerformed private void ipIdFlag2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ipIdFlag2ActionPerformed // TODO add your handling code here: if (ipIdFlag2.isSelected() == true){ ipIdField2.setEditable(true); }else if (ipIdFlag2.isSelected() == false){ ipIdField2.setEditable(false); } }//GEN-LAST:event_ipIdFlag2ActionPerformed private void dstIpFlag2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dstIpFlag2ActionPerformed // TODO add your handling code here: if (dstIpFlag2.isSelected() == true){ dstIpField2.setEditable(true); }else if (dstIpFlag2.isSelected() == false){ dstIpField2.setEditable(false); } }//GEN-LAST:event_dstIpFlag2ActionPerformed private void srcIpFlag2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_srcIpFlag2ActionPerformed // TODO add your handling code here: if (srcIpFlag2.isSelected() == true){ srcIpField2.setEditable(true); }else if (srcIpFlag2.isSelected() == false){ srcIpField2.setEditable(false); } }//GEN-LAST:event_srcIpFlag2ActionPerformed private void payloadBox3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_payloadBox3ActionPerformed // TODO add your handling code here: if (payloadBox3.isSelected() == true){ payloadField3.setEditable(true); }else if (payloadBox3.isSelected() == false){ payloadField3.setEditable(false); } }//GEN-LAST:event_payloadBox3ActionPerformed private void icmpSeqNumFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpSeqNumFlag1ActionPerformed // TODO add your handling code here: if (icmpSeqNumFlag1.isSelected() == true){ icmpSeqNumField1.setEditable(true); }else if (icmpSeqNumFlag1.isSelected() == false){ icmpSeqNumField1.setEditable(false); } }//GEN-LAST:event_icmpSeqNumFlag1ActionPerformed private void icmpModeFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpModeFlag1ActionPerformed // TODO add your handling code here: if (icmpModeFlag1.isSelected() == true){ icmpModeCBox1.setEnabled(true); }else if (icmpModeFlag1.isSelected() == false){ icmpModeCBox1.setEnabled(false); } }//GEN-LAST:event_icmpModeFlag1ActionPerformed private void icmpMaskFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpMaskFlag1ActionPerformed // TODO add your handling code here: if (icmpMaskFlag1.isSelected() == true){ icmpMaskField1.setEditable(true); }else if (icmpMaskFlag1.isSelected() == false){ icmpMaskField1.setEditable(false); } }//GEN-LAST:event_icmpMaskFlag1ActionPerformed private void prefGatewayFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_prefGatewayFlag1ActionPerformed // TODO add your handling code here: if (prefGatewayFlag1.isSelected() == true){ prefGatewayField1.setEditable(true); }else if (prefGatewayFlag1.isSelected() == false){ prefGatewayField1.setEditable(false); } }//GEN-LAST:event_prefGatewayFlag1ActionPerformed private void icmpTypeFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpTypeFlag1ActionPerformed // TODO add your handling code here: if (icmpTypeFlag1.isSelected() == true){ icmpTypeField1.setEditable(true); }else if (icmpTypeFlag1.isSelected() == false){ icmpTypeField1.setEditable(false); } }//GEN-LAST:event_icmpTypeFlag1ActionPerformed private void icmpIDFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpIDFlag1ActionPerformed // TODO add your handling code here: if (icmpIDFlag1.isSelected() == true){ icmpIDField1.setEditable(true); }else if (icmpIDFlag1.isSelected() == false){ icmpIDField1.setEditable(false); } }//GEN-LAST:event_icmpIDFlag1ActionPerformed private void icmpCodeFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpCodeFlag1ActionPerformed // TODO add your handling code here: if (icmpCodeFlag1.isSelected() == true){ icmpCodeField1.setEditable(true); }else if (icmpCodeFlag1.isSelected() == false){ icmpCodeField1.setEditable(false); } }//GEN-LAST:event_icmpCodeFlag1ActionPerformed /* END ICMP TAB BUTTON ACTIONS */ /* START OF UDP TAB BUTTON ACTIONS */ private void dstMacFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dstMacFlag1ActionPerformed // TODO add your handling code here: if (dstMacFlag1.isSelected() == true){ dstMacField1.setEditable(true); }else if (dstMacFlag1.isSelected() == false){ dstMacField1.setEditable(false); } }//GEN-LAST:event_dstMacFlag1ActionPerformed private void srcMacFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_srcMacFlag1ActionPerformed // TODO add your handling code here: if (srcMacFlag1.isSelected() == true){ srcMacField1.setEditable(true); }else if (srcMacFlag1.isSelected() == false){ srcMacField1.setEditable(false); } }//GEN-LAST:event_srcMacFlag1ActionPerformed private void ethDevFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ethDevFlag1ActionPerformed // TODO add your handling code here: if (ethDevFlag1.isSelected() == true){ ethDevField1.setEditable(true); }else if (ethDevFlag1.isSelected() == false){ ethDevField1.setEditable(false); } }//GEN-LAST:event_ethDevFlag1ActionPerformed private void ipOptFileBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ipOptFileBox1ActionPerformed // TODO add your handling code here: if (ipOptFileBox1.isSelected() == true){ ipOptFileField1.setEditable(true); }else if (ipOptFileBox1.isSelected() == false){ ipOptFileField1.setEditable(false); } }//GEN-LAST:event_ipOptFileBox1ActionPerformed private void fragOffSetFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fragOffSetFlag1ActionPerformed // TODO add your handling code here: if (fragOffSetFlag1.isSelected() == true){ fragOffSetField1.setEditable(true); }else if (fragOffSetFlag1.isSelected() == false){ fragOffSetField1.setEditable(false); } }//GEN-LAST:event_fragOffSetFlag1ActionPerformed private void tosFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tosFlag1ActionPerformed // TODO add your handling code here: if (tosFlag1.isSelected() == true){ tosField1.setEditable(true); }else if (tosFlag1.isSelected() == false){ tosField1.setEditable(false); } }//GEN-LAST:event_tosFlag1ActionPerformed private void ttlFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ttlFlag1ActionPerformed // TODO add your handling code here: if (ttlFlag1.isSelected() == true){ ttlField1.setEditable(true); }else if (ttlFlag1.isSelected() == false){ ttlField1.setEditable(false); } }//GEN-LAST:event_ttlFlag1ActionPerformed private void ipIdFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ipIdFlag1ActionPerformed // TODO add your handling code here: if (ipIdFlag1.isSelected() == true){ ipIdField1.setEditable(true); }else if (ipIdFlag1.isSelected() == false){ ipIdField1.setEditable(false); } }//GEN-LAST:event_ipIdFlag1ActionPerformed private void dstIpFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dstIpFlag1ActionPerformed // TODO add your handling code here: if (dstIpFlag1.isSelected() == true){ dstIpField1.setEditable(true); }else if (dstIpFlag1.isSelected() == false){ dstIpField1.setEditable(false); } }//GEN-LAST:event_dstIpFlag1ActionPerformed private void srcIpFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_srcIpFlag1ActionPerformed // TODO add your handling code here: if (srcIpFlag1.isSelected() == true){ srcIpField1.setEditable(true); }else if (srcIpFlag1.isSelected() == false){ srcIpField1.setEditable(false); } }//GEN-LAST:event_srcIpFlag1ActionPerformed private void payloadBox2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_payloadBox2ActionPerformed // TODO add your handling code here: if (payloadBox2.isSelected() == true){ payloadField2.setEditable(true); }else if (payloadBox2.isSelected() == false){ payloadField2.setEditable(false); } }//GEN-LAST:event_payloadBox2ActionPerformed private void dstPrtFlag2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dstPrtFlag2ActionPerformed // TODO add your handling code here: if (dstPrtFlag2.isSelected() == true){ dstPrtField2.setEditable(true); }else if (dstPrtFlag2.isSelected() == false){ dstPrtField2.setEditable(false); } }//GEN-LAST:event_dstPrtFlag2ActionPerformed private void srcPrtFlag2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_srcPrtFlag2ActionPerformed // TODO add your handling code here: if (srcPrtFlag2.isSelected() == true){ srcPrtField2.setEditable(true); }else if (srcPrtFlag2.isSelected() == false){ srcPrtField2.setEditable(false); } }//GEN-LAST:event_srcPrtFlag2ActionPerformed /* END UDP TAB BUTTON ACTIONS */ private void injectButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_injectButtonActionPerformed // TODO add your handling code here: if (tcpPanel.isShowing() == true){ System.out.println("tcp panel is active"); parseNemesisArgsTCP(); setArgsTCP(); injectPacket("tcp"); resetArgs(); } else if (udpPanel.isShowing() == true){ parseNemesisArgsUDP(); setArgsUDP(); injectPacket("udp"); resetArgs(); } else if (icmpPanel.isShowing() == true){ //parseNemesisArgsUDP(); //setArgsUPD(); injectPacket("icmp"); //resetArgsUDP(); } nemesisArgs = ""; //injectPacket(); }//GEN-LAST:event_injectButtonActionPerformed /* START TCP TAB BUTTON ACTIONS */ private void dstMacFlagActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dstMacFlagActionPerformed // TODO add your handling code here: if (dstMacFlag.isSelected() == true){ dstMacField.setEditable(true); }else if (dstMacFlag.isSelected() == false){ dstMacField.setEditable(false); } }//GEN-LAST:event_dstMacFlagActionPerformed private void srcMacFlagActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_srcMacFlagActionPerformed // TODO add your handling code here: if (srcMacFlag.isSelected() == true){ srcMacField.setEditable(true); }else if (srcMacFlag.isSelected() == false){ srcMacField.setEditable(false); } }//GEN-LAST:event_srcMacFlagActionPerformed private void ethDevFlagActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ethDevFlagActionPerformed // TODO add your handling code here: if (ethDevFlag.isSelected() == true){ ethDevField.setEditable(true); }else if (ethDevFlag.isSelected() == false){ ethDevField.setEditable(false); } }//GEN-LAST:event_ethDevFlagActionPerformed private void ipOptFileBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ipOptFileBoxActionPerformed // TODO add your handling code here: if (ipOptFileBox.isSelected() == true){ ipOptFileField.setEditable(true); }else if (ipOptFileBox.isSelected() == false){ ipOptFileField.setEditable(false); } }//GEN-LAST:event_ipOptFileBoxActionPerformed private void fragOffSetFlagActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fragOffSetFlagActionPerformed // TODO add your handling code here: if (fragOffSetFlag.isSelected() == true){ fragOffSetField.setEditable(true); }else if (fragOffSetFlag.isSelected() == false){ fragOffSetField.setEditable(false); } }//GEN-LAST:event_fragOffSetFlagActionPerformed private void tosFlagActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tosFlagActionPerformed // TODO add your handling code here: if (tosFlag.isSelected() == true){ tosField.setEditable(true); }else if (tosFlag.isSelected() == false){ tosField.setEditable(false); } }//GEN-LAST:event_tosFlagActionPerformed private void ttlFlagActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ttlFlagActionPerformed // TODO add your handling code here: if (ttlFlag.isSelected() == true){ ttlField.setEditable(true); }else if (ttlFlag.isSelected() == false){ ttlField.setEditable(false); } }//GEN-LAST:event_ttlFlagActionPerformed private void ipIdFlagActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ipIdFlagActionPerformed // TODO add your handling code here: if (ipIdFlag.isSelected() == true){ ipIdField.setEditable(true); }else if (ipIdFlag.isSelected() == false){ ipIdField.setEditable(false); } }//GEN-LAST:event_ipIdFlagActionPerformed private void dstIpFlagActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dstIpFlagActionPerformed // TODO add your handling code here: if (dstIpFlag.isSelected() == true){ dstIpField.setEditable(true); }else if (dstIpFlag.isSelected() == false){ dstIpField.setEditable(false); } }//GEN-LAST:event_dstIpFlagActionPerformed private void srcIpFlagActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_srcIpFlagActionPerformed // TODO add your handling code here: if (srcIpFlag.isSelected() == true){ srcIpField.setEditable(true); }else if (srcIpFlag.isSelected() == false){ srcIpField.setEditable(false); } }//GEN-LAST:event_srcIpFlagActionPerformed private void payloadBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_payloadBox1ActionPerformed // TODO add your handling code here: if (payloadBox1.isSelected() == true){ payloadField1.setEditable(true); }else if (payloadBox1.isSelected() == false){ payloadField1.setEditable(false); } }//GEN-LAST:event_payloadBox1ActionPerformed private void tcpOptBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tcpOptBox1ActionPerformed // TODO add your handling code here: if (tcpOptBox1.isSelected() == true){ tcpOptField1.setEditable(true); }else if (tcpOptBox1.isSelected() == false){ tcpOptField1.setEditable(false); } }//GEN-LAST:event_tcpOptBox1ActionPerformed private void urgOffFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_urgOffFlag1ActionPerformed // TODO add your handling code here: if (urgOffFlag1.isSelected() == true){ urgOffField1.setEditable(true); }else if (urgOffFlag1.isSelected() == false){ urgOffField1.setEditable(false); } }//GEN-LAST:event_urgOffFlag1ActionPerformed private void ackNumFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ackNumFlag1ActionPerformed // TODO add your handling code here: if (ackNumFlag1.isSelected() == true){ ackNumField1.setEditable(true); }else if (ackNumFlag1.isSelected() == false){ ackNumField1.setEditable(false); } }//GEN-LAST:event_ackNumFlag1ActionPerformed private void seqFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_seqFlag1ActionPerformed // TODO add your handling code here: if (seqFlag1.isSelected() == true){ seqField1.setEditable(true); }else if (seqFlag1.isSelected() == false){ seqField1.setEditable(false); } }//GEN-LAST:event_seqFlag1ActionPerformed private void windowFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_windowFlag1ActionPerformed // TODO add your handling code here: if (windowFlag1.isSelected() == true){ winSizeField1.setEditable(true); }else if (windowFlag1.isSelected() == false){ winSizeField1.setEditable(false); } }//GEN-LAST:event_windowFlag1ActionPerformed private void tcpFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tcpFlag1ActionPerformed // TODO add your handling code here: if (tcpFlag1.isSelected() == true){ tcpFlagsCBox1.setEnabled(true); }else if (tcpFlag1.isSelected() == false){ tcpFlagsCBox1.setEnabled(false); } }//GEN-LAST:event_tcpFlag1ActionPerformed private void dstPrtFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dstPrtFlag1ActionPerformed // TODO add your handling code here: if (dstPrtFlag1.isSelected() == true){ dstPrtField1.setEditable(true); }else if (dstPrtFlag1.isSelected() == false){ dstPrtField1.setEditable(false); } }//GEN-LAST:event_dstPrtFlag1ActionPerformed private void srcPrtFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_srcPrtFlag1ActionPerformed // TODO add your handling code here: if (srcPrtFlag1.isSelected() == true){ srcPrtField1.setEditable(true); }else if (srcPrtFlag1.isSelected() == false){ srcPrtField1.setEditable(false); } }//GEN-LAST:event_srcPrtFlag1ActionPerformed /* END TCP TAB BUTTON ACTIONS*/ /** Exit the Application */ private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm System.exit(0); }//GEN-LAST:event_exitForm /** * @param args the command line arguments */ public static void main(String args[]) { new jnemesis().show(); } public void parseNemesisArgsTCP() { // get source port if (srcPrtFlag1.isSelected() == true && srcPrtField1.getText().length() > 0){ sourcePort = srcPrtField1.getText(); } // get dest port if (dstPrtFlag1.isSelected() == true && dstPrtField1.getText().length() > 0){ destinationPort = srcPrtField1.getText(); } // get tcp flag if (tcpFlag1.isSelected() == true && tcpFlagsCBox1.getSelectedIndex() != 0){ /* Get index of current selection parse through and assign right flag */ int index = tcpFlagsCBox1.getSelectedIndex(); if (index == 1) tcpFlag = "-fS"; else if (index == 2) tcpFlag = "-fA"; else if (index == 3) tcpFlag = "-fR"; else if (index == 4) tcpFlag = "-fP"; else if (index == 5) tcpFlag = "-fF"; } // get window size if (windowFlag1.isSelected() == true && winSizeField1.getText().length() > 0){ windowSize = winSizeField1.getText(); } // get ack seq num if (seqFlag1.isSelected() == true && seqField1.getText().length() > 0){ seqNumber = seqField1.getText(); } // get ack number if (ackNumFlag1.isSelected() == true && ackNumField1.getText().length() > 0){ ackNumber = ackNumField1.getText(); } // get urg off set if (urgOffFlag1.isSelected() == true && urgOffField1.getText().length() > 0){ upOffSet = urgOffField1.getText(); } // get tcp opt file if (tcpOptBox1.isSelected() == true && tcpOptField1.getText().length() > 0){ tcpOptionsFile = tcpOptField1.getText(); } // get payload file if (payloadBox1.isSelected() == true && payloadField1.getText().length() > 0){ payloadFile = payloadField1.getText(); } // get src ip if (srcIpFlag.isSelected() == true && srcIpField.getText().length() > 0){ sourceIp = srcIpField.getText(); } // get dest ip if (dstIpFlag.isSelected() == true && dstIpField.getText().length() > 0){ destinationIp = dstIpField.getText(); } // get ipid if (ipIdFlag.isSelected() == true && ipIdField.getText().length() > 0){ ipId = ipIdField.getText(); } // get ttl if (ttlFlag.isSelected() == true && ttlField.getText().length() > 0){ timeToLive = ttlField.getText(); } // get tos if (tosFlag.isSelected() == true && tosField.getText().length() > 0){ tos = tosField.getText(); } // get fragmentation of set if (fragOffSetFlag.isSelected() == true && fragOffSetField.getText().length() > 0){ fragOffSet = fragOffSetField.getText(); } // get ip options file if (ipOptFileBox.isSelected() == true && ipOptFileField.getText().length() > 0){ ipOptionsFile = ipOptFileField.getText(); } // get ethernet device to be used if (ethDevFlag.isSelected() == true && ethDevField.getText().length() > 0){ ethernetDevice = ethDevField.getText(); } // Get srouce mac address if (srcMacFlag.isSelected() == true && srcMacField.getText().length() > 0){ sourceMacAddress = srcMacField.getText(); } // Get destination Mac Address if (dstMacFlag.isSelected() == true && dstMacField.getText().length() > 0){ destinationMacAddress = dstMacField.getText(); } } public void parseNemesisArgsUDP() { // get source port if (srcPrtFlag2.isSelected() == true && srcPrtField2.getText().length() > 0){ sourcePort = srcPrtField2.getText(); } // get dest port if (dstPrtFlag2.isSelected() == true && dstPrtField2.getText().length() > 0){ destinationPort = srcPrtField2.getText(); } // get payload file if (payloadBox2.isSelected() == true && payloadField2.getText().length() > 0){ payloadFile = payloadField2.getText(); } // get src ip if (srcIpFlag1.isSelected() == true && srcIpField1.getText().length() > 0){ sourceIp = srcIpField1.getText(); } // get dest ip if (dstIpFlag1.isSelected() == true && dstIpField1.getText().length() > 0){ destinationIp = dstIpField1.getText(); } // get ipid if (ipIdFlag1.isSelected() == true && ipIdField1.getText().length() > 0){ ipId = ipIdField1.getText(); } // get ttl if (ttlFlag1.isSelected() == true && ttlField1.getText().length() > 0){ timeToLive = ttlField1.getText(); } // get tos if (tosFlag1.isSelected() == true && tosField1.getText().length() > 0){ tos = tosField1.getText(); } // get fragmentation of set if (fragOffSetFlag1.isSelected() == true && fragOffSetField1.getText().length() > 0){ fragOffSet = fragOffSetField1.getText(); } // get ip options file if (ipOptFileBox1.isSelected() == true && ipOptFileField1.getText().length() > 0){ ipOptionsFile = ipOptFileField1.getText(); } // get ethernet device to be used if (ethDevFlag1.isSelected() == true && ethDevField1.getText().length() > 0){ ethernetDevice = ethDevField1.getText(); } // Get srouce mac address if (srcMacFlag1.isSelected() == true && srcMacField1.getText().length() > 0){ sourceMacAddress = srcMacField1.getText(); } // Get destination Mac Address if (dstMacFlag1.isSelected() == true && dstMacField1.getText().length() > 0){ destinationMacAddress = dstMacField1.getText(); } } public void parseNemesisArgsICMP() { if (dstMacFlag1.isSelected() == true && dstMacField1.getText().length() > 0){ destinationMacAddress = dstMacField1.getText(); } } private void setArgsTCP() { if (sourcePort.equals("default") != true) { nemesisArgs = nemesisArgs + " -x " + sourcePort; } if (destinationPort.equals("default") != true) { nemesisArgs = nemesisArgs + " -y " + destinationPort; } if (tcpFlag.equals("default") != true) { nemesisArgs = nemesisArgs + " " + tcpFlag; } if (windowSize.equals("default") != true) { nemesisArgs = nemesisArgs + " -w " + windowSize; } if (seqNumber.equals("default") != true) { nemesisArgs = nemesisArgs + " -s " + seqNumber; } if (ackNumber.equals("default") != true) { nemesisArgs = nemesisArgs + " -a " + ackNumber; } if (upOffSet.equals("default") != true) { nemesisArgs = nemesisArgs + " -u " + upOffSet; } if (tcpOptionsFile.equals("default") != true) { nemesisArgs = nemesisArgs + " -o " + tcpOptionsFile; } if (payloadFile.equals("default") != true) { nemesisArgs = nemesisArgs + " -P " + payloadFile; } if (sourceIp.equals("default") != true) { nemesisArgs = nemesisArgs + " -S " + sourceIp; } if (destinationIp.equals("default") != true) { nemesisArgs = nemesisArgs + " -D " + destinationIp; } if (ipId.equals("default") != true) { nemesisArgs = nemesisArgs + " -I " + ipId; } if (timeToLive.equals("default") != true) { nemesisArgs = nemesisArgs + " -T " + timeToLive; } if (tos.equals("default") != true) { nemesisArgs = nemesisArgs + " -t " + tos; } if (fragOffSet.equals("default") != true) { nemesisArgs = nemesisArgs + " -F " + fragOffSet; } if (ipOptionsFile.equals("default") != true) { nemesisArgs = nemesisArgs + " -O " + ipOptionsFile; } if (ethernetDevice.equals("default") != true) { nemesisArgs = nemesisArgs + " -d " + ethernetDevice; } if (sourceMacAddress.equals("default") != true) { nemesisArgs = nemesisArgs + " -H " + sourceMacAddress; } if (destinationMacAddress.equals("default") != true) { nemesisArgs = nemesisArgs + " -M " + destinationMacAddress; } } private void resetArgs() { sourcePort= "default"; destinationPort= "default"; tcpFlag= "default"; windowSize= "default"; seqNumber= "default"; ackNumber= "default"; upOffSet= "default"; tcpOptionsFile= "default"; payloadFile= "default"; sourceIp= "default"; destinationIp= "default"; ipId= "default"; timeToLive= "default"; tos= "default"; fragOffSet= "default"; ipOptionsFile= "default"; ethernetDevice= "default"; sourceMacAddress= "default"; destinationMacAddress= "default"; icmpipOptFile1= "default"; //ipOptField1 icmpipOptFile2= "default"; //ipOptField2 icmpIPTtl= "default"; //icmpIPTtlField1 icmpIPTos= "default"; //icmpIPTosField1 icmpFragOps= "default"; //icmpFragOpsField1 icmpSrcIP= "default"; //icmpSrcIPField1 icmpDstIP= "default"; //icmpDstIPField1 icmpTRRRT= "default"; //icmpTRRRTField1 icmpTRTT= "default"; //icmpTRTTField1 icmpTRRTT= "default"; //icmpTRRTTField1 icmpdstMac= "default"; //dstMacField2 icmpsrcMac= "default"; //srcMacField2 icmpethDev= "default"; //ethDevField2 icmpfragOffSet= "default"; //fragOffSetField2 icmptos= "default"; //tosField2 icmpttl= "default"; //ttlField2 icmpipId= "default"; //ipIdField2 icmpdstIp= "default"; //dstIpField2 icmpsrcIp= "default"; //srcIpField2 icmpPayloadFile= "default"; //payloadField3 icmpSeqNum= "default"; //icmpSeqNumField1 icmpMode= "default"; //icmpModeCBox1 icmpMask= "default"; //icmpMaskField1 icmpprefGateway= "default"; //prefGatewayField1 icmpType= "default"; //icmpTypeField1 icmpID= "default"; //icmpIDField1 icmpCode= "default"; //icmpCodeField1 } private void setArgsUDP() { if (sourcePort.equals("default") != true) { nemesisArgs = nemesisArgs + " -x " + sourcePort; } if (destinationPort.equals("default") != true) { nemesisArgs = nemesisArgs + " -y " + destinationPort; } if (payloadFile.equals("default") != true) { nemesisArgs = nemesisArgs + " -P " + payloadFile; } if (sourceIp.equals("default") != true) { nemesisArgs = nemesisArgs + " -S " + sourceIp; } if (destinationIp.equals("default") != true) { nemesisArgs = nemesisArgs + " -D " + destinationIp; } if (ipId.equals("default") != true) { nemesisArgs = nemesisArgs + " -I " + ipId; } if (timeToLive.equals("default") != true) { nemesisArgs = nemesisArgs + " -T " + timeToLive; } if (tos.equals("default") != true) { nemesisArgs = nemesisArgs + " -t " + tos; } if (fragOffSet.equals("default") != true) { nemesisArgs = nemesisArgs + " -F " + fragOffSet; } if (ipOptionsFile.equals("default") != true) { nemesisArgs = nemesisArgs + " -O " + ipOptionsFile; } if (ethernetDevice.equals("default") != true) { nemesisArgs = nemesisArgs + " -d " + ethernetDevice; } if (sourceMacAddress.equals("default") != true) { nemesisArgs = nemesisArgs + " -H " + sourceMacAddress; } if (destinationMacAddress.equals("default") != true) { nemesisArgs = nemesisArgs + " -M " + destinationMacAddress; } } public void storePacket(String injectionType) { String nemesisPath ="/usr/local/bin/nemesis";//hardcoded for testing String command = new String(nemesisPath + " " + injectionType + " -vv" + nemesisArgs); queuedPackets.addElement(command); currentQueue++; } private void injectPacket(String injectionType) { String nemesisPath ="/usr/local/bin/nemesis";//hardcoded for testing DataInputStream is = null; try { Runtime r = Runtime.getRuntime(); String command = new String(nemesisPath + " " + injectionType + " -vv" + nemesisArgs); System.out.println("command: "+command); Process p = r.exec(command); is = new DataInputStream(p.getInputStream()); p.waitFor(); int nemesisExitCode = p.exitValue(); if ( nemesisExitCode == 0){ statusField.setBackground(new java.awt.Color(0,0,255)); statusField.setText("Injected Packet Successfully!!"); } else { statusField.setBackground(new java.awt.Color(255,0,0)); statusField.setText("Packet Injection Failed!!"); } } catch (Exception ex) { } /* Now catch the result and sent it to the info pane */ String outPut = "Nemesis output\n-------------------"; try {String responseLine; while ((responseLine = is.readLine()) != null) { outPut = outPut + "\n" + responseLine.trim(); injectionResult.setText(outPut); } /* Clean up everything, close iostream */ is.close(); } catch (IOException e) { System.err.println("Couldn't get I/O for the connection"); } } private void configCheck() { } // Start of custom variable declarations DefaultListModel queuedPackets = new DefaultListModel(); //Start of icmp interface var's private String icmpipOptFile1= "default"; //ipOptField1 private String icmpipOptFile2= "default"; //ipOptField2 private String icmpIPTtl= "default"; //icmpIPTtlField1 private String icmpIPTos= "default"; //icmpIPTosField1 private String icmpFragOps= "default"; //icmpFragOpsField1 private String icmpSrcIP= "default"; //icmpSrcIPField1 private String icmpDstIP= "default"; //icmpDstIPField1 private String icmpTRRRT= "default"; //icmpTRRRTField1 private String icmpTRTT= "default"; //icmpTRTTField1 private String icmpTRRTT= "default"; //icmpTRRTTField1 private String icmpdstMac= "default"; //dstMacField2 private String icmpsrcMac= "default"; //srcMacField2 private String icmpethDev= "default"; //ethDevField2 private String icmpfragOffSet= "default"; //fragOffSetField2 private String icmptos= "default"; //tosField2 private String icmpttl= "default"; //ttlField2 private String icmpipId= "default"; //ipIdField2 private String icmpdstIp= "default"; //dstIpField2 private String icmpsrcIp= "default"; //srcIpField2 private String icmpPayloadFile= "default"; //payloadField3 private String icmpSeqNum= "default"; //icmpSeqNumField1 private String icmpMode= "default"; //icmpModeCBox1 private String icmpMask= "default"; //icmpMaskField1 private String icmpprefGateway= "default"; //prefGatewayField1 private String icmpType= "default"; //icmpTypeField1 private String icmpID= "default"; //icmpIDField1 private String icmpCode= "default"; //icmpCodeField1 //end icmp interface vars //start tcp/udp shared interface vars private int currentQueue = 0; private String nemesisArgs=""; private String sourcePort= "default"; private String destinationPort= "default"; private String tcpFlag= "default"; private String windowSize= "default"; private String seqNumber= "default"; private String ackNumber= "default"; private String upOffSet= "default"; private String tcpOptionsFile= "default"; private String payloadFile= "default"; private String sourceIp= "default"; private String destinationIp= "default"; private String ipId= "default"; private String timeToLive= "default"; private String tos= "default"; private String fragOffSet= "default"; private String ipOptionsFile= "default"; private String ethernetDevice= "default"; private String sourceMacAddress= "default"; private String destinationMacAddress= "default"; //End of custom variables // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JTextField ackNumField1; private javax.swing.JRadioButton ackNumFlag1; private javax.swing.JPanel controlPanel; private javax.swing.JTextField dstIpField; private javax.swing.JTextField dstIpField1; private javax.swing.JTextField dstIpField2; private javax.swing.JRadioButton dstIpFlag; private javax.swing.JRadioButton dstIpFlag1; private javax.swing.JRadioButton dstIpFlag2; private javax.swing.JTextField dstMacField; private javax.swing.JTextField dstMacField1; private javax.swing.JTextField dstMacField2; private javax.swing.JRadioButton dstMacFlag; private javax.swing.JRadioButton dstMacFlag1; private javax.swing.JRadioButton dstMacFlag2; private javax.swing.JTextField dstPrtField1; private javax.swing.JTextField dstPrtField2; private javax.swing.JRadioButton dstPrtFlag1; private javax.swing.JRadioButton dstPrtFlag2; private javax.swing.JTextField ethDevField; private javax.swing.JTextField ethDevField1; private javax.swing.JTextField ethDevField2; private javax.swing.JRadioButton ethDevFlag; private javax.swing.JRadioButton ethDevFlag1; private javax.swing.JRadioButton ethDevFlag2; private javax.swing.JTextField fragOffSetField; private javax.swing.JTextField fragOffSetField1; private javax.swing.JTextField fragOffSetField2; private javax.swing.JRadioButton fragOffSetFlag; private javax.swing.JRadioButton fragOffSetFlag1; private javax.swing.JRadioButton fragOffSetFlag2; private javax.swing.JTextField icmpCodeField1; private javax.swing.JRadioButton icmpCodeFlag1; private javax.swing.JTextField icmpDstIPField1; private javax.swing.JRadioButton icmpDstIPFlag1; private javax.swing.JTextField icmpFragOpsField1; private javax.swing.JRadioButton icmpFragOpsFlag1; private javax.swing.JTextField icmpIDField1; private javax.swing.JRadioButton icmpIDFlag1; private javax.swing.JCheckBox icmpIPOptsBox; private javax.swing.JTextField icmpIPOptsPayloadField; private javax.swing.JTextField icmpIPTosField1; private javax.swing.JRadioButton icmpIPTosFlag1; private javax.swing.JTextField icmpIPTtlField1; private javax.swing.JRadioButton icmpIPTtlFlag1; private javax.swing.JTextField icmpMaskField1; private javax.swing.JRadioButton icmpMaskFlag1; private javax.swing.JComboBox icmpModeCBox1; private javax.swing.JRadioButton icmpModeFlag1; private javax.swing.JPanel icmpPanel; private javax.swing.JTextField icmpSeqNumField1; private javax.swing.JRadioButton icmpSeqNumFlag1; private javax.swing.JTextField icmpSrcIPField1; private javax.swing.JRadioButton icmpSrcIPFlag1; private javax.swing.JTextField icmpTRRRTField1; private javax.swing.JRadioButton icmpTRRRTFlag1; private javax.swing.JTextField icmpTRRTTField1; private javax.swing.JRadioButton icmpTRRTTFlag1; private javax.swing.JTextField icmpTRTTField1; private javax.swing.JRadioButton icmpTRTTFlag1; private javax.swing.JTextField icmpTypeField1; private javax.swing.JRadioButton icmpTypeFlag1; private javax.swing.JButton injectButton; private javax.swing.JButton injectNext; private javax.swing.JTextArea injectionResult; private javax.swing.JTextField ipIdField; private javax.swing.JTextField ipIdField1; private javax.swing.JTextField ipIdField2; private javax.swing.JRadioButton ipIdFlag; private javax.swing.JRadioButton ipIdFlag1; private javax.swing.JRadioButton ipIdFlag2; private javax.swing.JCheckBox ipOptFileBox; private javax.swing.JCheckBox ipOptFileBox1; private javax.swing.JCheckBox ipOptFileBox2; private javax.swing.JTextField ipOptFileField; private javax.swing.JTextField ipOptFileField1; private javax.swing.JTextField ipOptFileField2; private javax.swing.JButton ipOptionsFileChooser; private javax.swing.JButton ipOptionsFileChooser1; private javax.swing.JButton ipOptionsFileChooser2; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JButton jButton4; private javax.swing.JButton jButton5; private javax.swing.JLabel jLabel1; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel10; private javax.swing.JPanel jPanel11; private javax.swing.JPanel jPanel12; private javax.swing.JPanel jPanel13; private javax.swing.JPanel jPanel14; private javax.swing.JPanel jPanel15; private javax.swing.JPanel jPanel16; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel4; private javax.swing.JPanel jPanel5; private javax.swing.JPanel jPanel6; private javax.swing.JPanel jPanel7; private javax.swing.JPanel jPanel8; private javax.swing.JPanel jPanel9; private javax.swing.JPopupMenu jPopupMenu1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTabbedPane jTabbedPane2; private javax.swing.JTabbedPane jtabbedPane1; private javax.swing.JPanel masterPanel; private javax.swing.JCheckBox payloadBox1; private javax.swing.JCheckBox payloadBox2; private javax.swing.JCheckBox payloadBox3; private javax.swing.JTextField payloadField1; private javax.swing.JTextField payloadField2; private javax.swing.JTextField payloadField3; private javax.swing.JButton payloadFileChooser; private javax.swing.JButton payloadFileChooser1; private javax.swing.JButton payloadFileChooser2; private javax.swing.JButton payloadFileChooser3; private javax.swing.JTextField prefGatewayField1; private javax.swing.JRadioButton prefGatewayFlag1; private javax.swing.JButton queuePacket; private javax.swing.JPanel queuePanel; private javax.swing.JList queuedList; private javax.swing.JTextField seqField1; private javax.swing.JRadioButton seqFlag1; private javax.swing.JTextField srcIpField; private javax.swing.JTextField srcIpField1; private javax.swing.JTextField srcIpField2; private javax.swing.JRadioButton srcIpFlag; private javax.swing.JRadioButton srcIpFlag1; private javax.swing.JRadioButton srcIpFlag2; private javax.swing.JTextField srcMacField; private javax.swing.JTextField srcMacField1; private javax.swing.JTextField srcMacField2; private javax.swing.JRadioButton srcMacFlag; private javax.swing.JRadioButton srcMacFlag1; private javax.swing.JRadioButton srcMacFlag2; private javax.swing.JTextField srcPrtField1; private javax.swing.JTextField srcPrtField2; private javax.swing.JRadioButton srcPrtFlag1; private javax.swing.JRadioButton srcPrtFlag2; private javax.swing.JTextField statusField; private javax.swing.JScrollPane statusPane; private javax.swing.JRadioButton tcpFlag1; private javax.swing.JComboBox tcpFlagsCBox1; private javax.swing.JButton tcpOpFileChooser1; private javax.swing.JCheckBox tcpOptBox1; private javax.swing.JTextField tcpOptField1; private javax.swing.JPanel tcpPanel; private javax.swing.JTextField tosField; private javax.swing.JTextField tosField1; private javax.swing.JTextField tosField2; private javax.swing.JRadioButton tosFlag; private javax.swing.JRadioButton tosFlag1; private javax.swing.JRadioButton tosFlag2; private javax.swing.JTextField ttlField; private javax.swing.JTextField ttlField1; private javax.swing.JTextField ttlField2; private javax.swing.JRadioButton ttlFlag; private javax.swing.JRadioButton ttlFlag1; private javax.swing.JRadioButton ttlFlag2; private javax.swing.JPanel udpPanel; private javax.swing.JTextField urgOffField1; private javax.swing.JRadioButton urgOffFlag1; private javax.swing.JTextField winSizeField1; private javax.swing.JRadioButton windowFlag1; // End of variables declaration//GEN-END:variables }