1:/* 2: * 3: *!!! This applications released under the GPL !!! 4: * 5: * This program is distributed in the hope that it will be useful, 6: * but WITHOUT ANY WARRANTY; without even the implied warranty of 7: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 8: * GNU General Public License for more details. 9: * 10: * You should have received a copy of the GNU General Public License 11: * along with this program; if not, write to the Free Software 12: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 13: * 14: */ 15:package jnemesis; 16: 17:import java.io.*; 18:import java.util.*; 19:import javax.swing.*; 20:import javax.swing.event.*; 21:/** 22: * Created on April 11, 2004, 12:23 AM 23: * 24: * A graphical frontend to the nemesis packet injection utility 25: * This is the source of the beta build on Thu Aug 5 20:30:41 CDT 2004. 26: * ICMP and the queue do not function, no properties file support. 27: * 28: * Build system information follows: 29: * 30: * CPU: AMD Athlon(TM) XP 2800+ (2071.203Mhz) 31: * Memory: 1024M (est.) 32: * JRE: build 1.4.2_04-b05 33: * System ID: Linux home.fragtheweak.net 2.6.6-1.435.2.3 34: * 35: * Copyright (C) 2004 Florian Hines 36: * @author Florian Hines <pandemic@syn-recon.net||fhines@blackopscode.com> 37: * @version 1.0 38: */ 39:public class jnemesis extends javax.swing.JFrame { 40: 41: /** Creates new form jnemesis */ 42: public jnemesis() { 43: loadConfig(); 44: initComponents(); 45: try{ 46: tcpHelp.setPage("file://" + installDir + "/help/nemesis-tcp.html"); 47: } 48: catch (IOException e) 49: { 50: tcpHelp.setText("Help unavailable - error \n" + e); 51: } 52: try{ 53: udpHelp.setPage("file://" + installDir + "/help/nemesis-udp.html"); 54: } 55: catch (IOException e) 56: { 57: udpHelp.setText("Help unavailable - error \n" + e); 58: } 59: try{ 60: icmpHelp.setPage("file://" + installDir + "/help/nemesis-icmp.html"); 61: } 62: catch (IOException e) 63: { 64: icmpHelp.setText("Help unavailable - error \n" + e); 65: } 66: } 67: 68: private void initComponents() {//GEN-BEGIN:initComponents 69: jLabel4 = new javax.swing.JLabel(); 70: fileChooser = new javax.swing.JFileChooser(); 71: masterPanel = new javax.swing.JPanel(); 72: jtabbedPane1 = new javax.swing.JTabbedPane(); 73: tcpPanel = new javax.swing.JPanel(); 74: jPanel1 = new javax.swing.JPanel(); 75: srcPrtFlag1 = new javax.swing.JRadioButton(); 76: srcPrtField1 = new javax.swing.JTextField(); 77: dstPrtFlag1 = new javax.swing.JRadioButton(); 78: dstPrtField1 = new javax.swing.JTextField(); 79: tcpFlag1 = new javax.swing.JRadioButton(); 80: tcpFlagsCBox1 = new javax.swing.JComboBox(); 81: windowFlag1 = new javax.swing.JRadioButton(); 82: winSizeField1 = new javax.swing.JTextField(); 83: seqFlag1 = new javax.swing.JRadioButton(); 84: seqField1 = new javax.swing.JTextField(); 85: ackNumFlag1 = new javax.swing.JRadioButton(); 86: ackNumField1 = new javax.swing.JTextField(); 87: urgOffFlag1 = new javax.swing.JRadioButton(); 88: urgOffField1 = new javax.swing.JTextField(); 89: tcpOptBox1 = new javax.swing.JCheckBox(); 90: tcpOptField1 = new javax.swing.JTextField(); 91: tcpOpFileChooser1 = new javax.swing.JButton(); 92: payloadBox1 = new javax.swing.JCheckBox(); 93: payloadField1 = new javax.swing.JTextField(); 94: payloadFileChooser = new javax.swing.JButton(); 95: jPanel2 = new javax.swing.JPanel(); 96: srcIpFlag = new javax.swing.JRadioButton(); 97: srcIpField = new javax.swing.JTextField(); 98: dstIpFlag = new javax.swing.JRadioButton(); 99: dstIpField = new javax.swing.JTextField(); 100: ipIdFlag = new javax.swing.JRadioButton(); 101: ipIdField = new javax.swing.JTextField(); 102: ttlFlag = new javax.swing.JRadioButton(); 103: ttlField = new javax.swing.JTextField(); 104: tosFlag = new javax.swing.JRadioButton(); 105: tosField = new javax.swing.JTextField(); 106: fragOffSetFlag = new javax.swing.JRadioButton(); 107: fragOffSetField = new javax.swing.JTextField(); 108: ipOptFileBox = new javax.swing.JCheckBox(); 109: ipOptFileField = new javax.swing.JTextField(); 110: ipOptionsFileChooser = new javax.swing.JButton(); 111: jPanel3 = new javax.swing.JPanel(); 112: ethDevFlag = new javax.swing.JRadioButton(); 113: ethDevField = new javax.swing.JTextField(); 114: srcMacFlag = new javax.swing.JRadioButton(); 115: srcMacField = new javax.swing.JTextField(); 116: dstMacFlag = new javax.swing.JRadioButton(); 117: dstMacField = new javax.swing.JTextField(); 118: udpPanel = new javax.swing.JPanel(); 119: jPanel4 = new javax.swing.JPanel(); 120: jPanel7 = new javax.swing.JPanel(); 121: srcPrtFlag2 = new javax.swing.JRadioButton(); 122: srcPrtField2 = new javax.swing.JTextField(); 123: dstPrtFlag2 = new javax.swing.JRadioButton(); 124: dstPrtField2 = new javax.swing.JTextField(); 125: jPanel12 = new javax.swing.JPanel(); 126: payloadBox2 = new javax.swing.JCheckBox(); 127: payloadField2 = new javax.swing.JTextField(); 128: payloadFileChooser1 = new javax.swing.JButton(); 129: jPanel5 = new javax.swing.JPanel(); 130: srcIpFlag1 = new javax.swing.JRadioButton(); 131: srcIpField1 = new javax.swing.JTextField(); 132: dstIpFlag1 = new javax.swing.JRadioButton(); 133: dstIpField1 = new javax.swing.JTextField(); 134: ipIdFlag1 = new javax.swing.JRadioButton(); 135: ipIdField1 = new javax.swing.JTextField(); 136: ttlFlag1 = new javax.swing.JRadioButton(); 137: ttlField1 = new javax.swing.JTextField(); 138: tosFlag1 = new javax.swing.JRadioButton(); 139: tosField1 = new javax.swing.JTextField(); 140: fragOffSetFlag1 = new javax.swing.JRadioButton(); 141: fragOffSetField1 = new javax.swing.JTextField(); 142: ipOptFileBox1 = new javax.swing.JCheckBox(); 143: ipOptFileField1 = new javax.swing.JTextField(); 144: ipOptionsFileChooser1 = new javax.swing.JButton(); 145: jPanel6 = new javax.swing.JPanel(); 146: ethDevFlag1 = new javax.swing.JRadioButton(); 147: ethDevField1 = new javax.swing.JTextField(); 148: srcMacFlag1 = new javax.swing.JRadioButton(); 149: srcMacField1 = new javax.swing.JTextField(); 150: dstMacFlag1 = new javax.swing.JRadioButton(); 151: dstMacField1 = new javax.swing.JTextField(); 152: icmpPanel = new javax.swing.JPanel(); 153: jPanel8 = new javax.swing.JPanel(); 154: jTabbedPane2 = new javax.swing.JTabbedPane(); 155: jPanel11 = new javax.swing.JPanel(); 156: icmpCodeFlag1 = new javax.swing.JRadioButton(); 157: icmpCodeField1 = new javax.swing.JTextField(); 158: icmpIDFlag1 = new javax.swing.JRadioButton(); 159: icmpIDField1 = new javax.swing.JTextField(); 160: icmpTypeFlag1 = new javax.swing.JRadioButton(); 161: icmpTypeField1 = new javax.swing.JTextField(); 162: prefGatewayFlag1 = new javax.swing.JRadioButton(); 163: prefGatewayField1 = new javax.swing.JTextField(); 164: icmpMaskFlag1 = new javax.swing.JRadioButton(); 165: icmpMaskField1 = new javax.swing.JTextField(); 166: icmpModeFlag1 = new javax.swing.JRadioButton(); 167: icmpModeCBox1 = new javax.swing.JComboBox(); 168: icmpSeqNumFlag1 = new javax.swing.JRadioButton(); 169: icmpSeqNumField1 = new javax.swing.JTextField(); 170: payloadBox3 = new javax.swing.JCheckBox(); 171: payloadField3 = new javax.swing.JTextField(); 172: payloadFileChooser2 = new javax.swing.JButton(); 173: jPanel13 = new javax.swing.JPanel(); 174: icmpTRRTTFlag1 = new javax.swing.JRadioButton(); 175: icmpTRRTTField1 = new javax.swing.JTextField(); 176: icmpTRTTFlag1 = new javax.swing.JRadioButton(); 177: icmpTRTTField1 = new javax.swing.JTextField(); 178: icmpTRRRTFlag1 = new javax.swing.JRadioButton(); 179: icmpTRRRTField1 = new javax.swing.JTextField(); 180: jPanel14 = new javax.swing.JPanel(); 181: icmpDstIPFlag1 = new javax.swing.JRadioButton(); 182: icmpDstIPField1 = new javax.swing.JTextField(); 183: icmpSrcIPFlag1 = new javax.swing.JRadioButton(); 184: icmpSrcIPField1 = new javax.swing.JTextField(); 185: icmpFragOpsFlag1 = new javax.swing.JRadioButton(); 186: icmpFragOpsField1 = new javax.swing.JTextField(); 187: icmpIPTosFlag1 = new javax.swing.JRadioButton(); 188: icmpIPTosField1 = new javax.swing.JTextField(); 189: icmpIPTtlFlag1 = new javax.swing.JRadioButton(); 190: icmpIPTtlField1 = new javax.swing.JTextField(); 191: icmpIPOptsBox = new javax.swing.JCheckBox(); 192: icmpIPOptsPayloadField = new javax.swing.JTextField(); 193: payloadFileChooser3 = new javax.swing.JButton(); 194: jPanel9 = new javax.swing.JPanel(); 195: srcIpFlag2 = new javax.swing.JRadioButton(); 196: srcIpField2 = new javax.swing.JTextField(); 197: dstIpFlag2 = new javax.swing.JRadioButton(); 198: dstIpField2 = new javax.swing.JTextField(); 199: ipIdFlag2 = new javax.swing.JRadioButton(); 200: ipIdField2 = new javax.swing.JTextField(); 201: ttlFlag2 = new javax.swing.JRadioButton(); 202: ttlField2 = new javax.swing.JTextField(); 203: tosFlag2 = new javax.swing.JRadioButton(); 204: tosField2 = new javax.swing.JTextField(); 205: fragOffSetFlag2 = new javax.swing.JRadioButton(); 206: fragOffSetField2 = new javax.swing.JTextField(); 207: ipOptFileBox2 = new javax.swing.JCheckBox(); 208: ipOptFileField2 = new javax.swing.JTextField(); 209: ipOptionsFileChooser2 = new javax.swing.JButton(); 210: jPanel10 = new javax.swing.JPanel(); 211: ethDevFlag2 = new javax.swing.JRadioButton(); 212: ethDevField2 = new javax.swing.JTextField(); 213: srcMacFlag2 = new javax.swing.JRadioButton(); 214: srcMacField2 = new javax.swing.JTextField(); 215: dstMacFlag2 = new javax.swing.JRadioButton(); 216: dstMacField2 = new javax.swing.JTextField(); 217: queuePanel = new javax.swing.JPanel(); 218: jScrollPane1 = new javax.swing.JScrollPane(); 219: queuedList = new javax.swing.JList(queuedPackets); 220: jPanel16 = new javax.swing.JPanel(); 221: injectNext = new javax.swing.JButton(); 222: injectAll = new javax.swing.JButton(); 223: rmSelected = new javax.swing.JButton(); 224: rmAll = new javax.swing.JButton(); 225: saveQueue = new javax.swing.JButton(); 226: statusPane = new javax.swing.JScrollPane(); 227: injectionResult = new javax.swing.JTextArea(); 228: jPanel15 = new javax.swing.JPanel(); 229: help = new javax.swing.JTabbedPane(); 230: jScrollPane2 = new javax.swing.JScrollPane(); 231: tcpHelp = new javax.swing.JEditorPane(); 232: jScrollPane3 = new javax.swing.JScrollPane(); 233: udpHelp = new javax.swing.JEditorPane(); 234: jScrollPane4 = new javax.swing.JScrollPane(); 235: icmpHelp = new javax.swing.JEditorPane(); 236: jPanel17 = new javax.swing.JPanel(); 237: jLabel2 = new javax.swing.JLabel(); 238: jLabel3 = new javax.swing.JLabel(); 239: jLabel5 = new javax.swing.JLabel(); 240: controlPanel = new javax.swing.JPanel(); 241: injectButton = new javax.swing.JButton(); 242: queuePacket = new javax.swing.JButton(); 243: jLabel1 = new javax.swing.JLabel(); 244: statusField = new javax.swing.JTextField(); 245: 246: jLabel4.setText("jLabel4"); 247: 248: setTitle("jNemesis 1.0"); 249: setResizable(false); 250: addWindowListener(new java.awt.event.WindowAdapter() { 251: public void windowClosing(java.awt.event.WindowEvent evt) { 252: exitForm(evt); 253: } 254: }); 255: 256: masterPanel.setLayout(new java.awt.BorderLayout()); 257: 258: masterPanel.setMaximumSize(new java.awt.Dimension(575, 375)); 259: masterPanel.setMinimumSize(new java.awt.Dimension(575, 375)); 260: masterPanel.setPreferredSize(new java.awt.Dimension(575, 375)); 261: jtabbedPane1.setFont(new java.awt.Font("Dialog", 0, 12)); 262: tcpPanel.setLayout(new java.awt.BorderLayout()); 263: 264: jPanel1.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 3)); 265: 266: 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))); 267: jPanel1.setMaximumSize(new java.awt.Dimension(32767, 200)); 268: jPanel1.setMinimumSize(new java.awt.Dimension(10, 150)); 269: jPanel1.setPreferredSize(new java.awt.Dimension(10, 150)); 270: srcPrtFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); 271: srcPrtFlag1.setText("-x <src port>"); 272: srcPrtFlag1.setToolTipText("Source Port Flag"); 273: srcPrtFlag1.addActionListener(new java.awt.event.ActionListener() { 274: public void actionPerformed(java.awt.event.ActionEvent evt) { 275: srcPrtFlag1ActionPerformed(evt); 276: } 277: }); 278: 279: jPanel1.add(srcPrtFlag1); 280: 281: srcPrtField1.setEditable(false); 282: srcPrtField1.setToolTipText("Enter the source port"); 283: srcPrtField1.setMinimumSize(new java.awt.Dimension(35, 20)); 284: srcPrtField1.setPreferredSize(new java.awt.Dimension(48, 20)); 285: jPanel1.add(srcPrtField1); 286: 287: dstPrtFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); 288: dstPrtFlag1.setText("-y <dst port>"); 289: dstPrtFlag1.setToolTipText("Destination Port Flag"); 290: dstPrtFlag1.addActionListener(new java.awt.event.ActionListener() { 291: public void actionPerformed(java.awt.event.ActionEvent evt) { 292: dstPrtFlag1ActionPerformed(evt); 293: } 294: }); 295: 296: jPanel1.add(dstPrtFlag1); 297: 298: dstPrtField1.setEditable(false); 299: dstPrtField1.setToolTipText("Enter Destination Port"); 300: dstPrtField1.setMinimumSize(new java.awt.Dimension(35, 20)); 301: dstPrtField1.setPreferredSize(new java.awt.Dimension(48, 20)); 302: jPanel1.add(dstPrtField1); 303: 304: tcpFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); 305: tcpFlag1.setText("-f <TCP Flags>"); 306: tcpFlag1.setToolTipText("TCP Flag Options"); 307: tcpFlag1.addActionListener(new java.awt.event.ActionListener() { 308: public void actionPerformed(java.awt.event.ActionEvent evt) { 309: tcpFlag1ActionPerformed(evt); 310: } 311: }); 312: 313: jPanel1.add(tcpFlag1); 314: 315: tcpFlagsCBox1.setMaximumRowCount(6); 316: tcpFlagsCBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "NONE", "-fS (SYN)", "-fA (ACK)", "-fR (RST)", "-fP (PSH)", "-fF (FIN)", "-fU (URG)" })); 317: tcpFlagsCBox1.setToolTipText("Possible TCP Flags"); 318: tcpFlagsCBox1.setEnabled(false); 319: jPanel1.add(tcpFlagsCBox1); 320: 321: windowFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); 322: windowFlag1.setText("-w <window size>"); 323: windowFlag1.setToolTipText("Window Size"); 324: windowFlag1.addActionListener(new java.awt.event.ActionListener() { 325: public void actionPerformed(java.awt.event.ActionEvent evt) { 326: windowFlag1ActionPerformed(evt); 327: } 328: }); 329: 330: jPanel1.add(windowFlag1); 331: 332: winSizeField1.setEditable(false); 333: winSizeField1.setToolTipText("Enter the Window Size"); 334: winSizeField1.setMinimumSize(new java.awt.Dimension(45, 20)); 335: winSizeField1.setPreferredSize(new java.awt.Dimension(45, 20)); 336: jPanel1.add(winSizeField1); 337: 338: seqFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); 339: seqFlag1.setText("-s <SEQ Number>"); 340: seqFlag1.setToolTipText("Seq Number Flag"); 341: seqFlag1.addActionListener(new java.awt.event.ActionListener() { 342: public void actionPerformed(java.awt.event.ActionEvent evt) { 343: seqFlag1ActionPerformed(evt); 344: } 345: }); 346: 347: jPanel1.add(seqFlag1); 348: 349: seqField1.setEditable(false); 350: seqField1.setToolTipText("Enter The Seq Number"); 351: seqField1.setMinimumSize(new java.awt.Dimension(35, 20)); 352: seqField1.setPreferredSize(new java.awt.Dimension(35, 20)); 353: jPanel1.add(seqField1); 354: 355: ackNumFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); 356: ackNumFlag1.setText("-a"); 357: ackNumFlag1.setToolTipText("Ack Number Flag"); 358: ackNumFlag1.addActionListener(new java.awt.event.ActionListener() { 359: public void actionPerformed(java.awt.event.ActionEvent evt) { 360: ackNumFlag1ActionPerformed(evt); 361: } 362: }); 363: 364: jPanel1.add(ackNumFlag1); 365: 366: ackNumField1.setEditable(false); 367: ackNumField1.setToolTipText("Enter Ack Number"); 368: ackNumField1.setMinimumSize(new java.awt.Dimension(40, 20)); 369: ackNumField1.setPreferredSize(new java.awt.Dimension(40, 20)); 370: jPanel1.add(ackNumField1); 371: 372: urgOffFlag1.setFont(new java.awt.Font("Dialog", 0, 12)); 373: urgOffFlag1.setText("-u"); 374: urgOffFlag1.setToolTipText("UP Offset Flag"); 375: urgOffFlag1.addActionListener(new java.awt.event.ActionListener() { 376: public void actionPerformed(java.awt.event.ActionEvent evt) { 377: urgOffFlag1ActionPerformed(evt); 378: } 379: }); 380: 381: jPanel1.add(urgOffFlag1); 382: 383: urgOffField1.setEditable(false); 384: urgOffField1.setToolTipText("Urgent Pointer Offset"); 385: urgOffField1.setMinimumSize(new java.awt.Dimension(40, 20)); 386: urgOffField1.setPreferredSize(new java.awt.Dimension(40, 20)); 387: jPanel1.add(urgOffField1); 388: 389: tcpOptBox1.setFont(new java.awt.Font("Dialog", 0, 12)); 390: tcpOptBox1.setText("-o <TCP Options File>"); 391: tcpOptBox1.setToolTipText("TCP Options File"); 392: tcpOptBox1.addActionListener(new java.awt.event.ActionListener() { 393: public void actionPerformed(java.awt.event.ActionEvent evt) { 394: tcpOptBox1ActionPerformed(evt); 395: } 396: }); 397: 398: jPanel1.add(tcpOptBox1); 399: 400: tcpOptField1.setEditable(false); 401: tcpOptField1.setToolTipText("path/to/tcp/options/file"); 402: tcpOptField1.setMinimumSize(new java.awt.Dimension(100, 20)); 403: tcpOptField1.setPreferredSize(new java.awt.Dimension(250, 20)); 404: jPanel1.add(tcpOptField1); 405: 406: tcpOpFileChooser1.setText("../"); 407: tcpOpFileChooser1.addActionListener(new java.awt.event.ActionListener() { 408: public void actionPerformed(java.awt.event.ActionEvent evt) { 409: tcpOpFileChooser1ActionPerformed(evt); 410: } 411: }); 412: 413: jPanel1.add(tcpOpFileChooser1); 414: 415: payloadBox1.setFont(new java.awt.Font("Dialog", 0, 12)); 416: payloadBox1.setText("-P <Payload File> "); 417: payloadBox1.setToolTipText("Payload File"); 418: payloadBox1.addActionListener(new java.awt.event.ActionListener() { 419: public void actionPerformed(java.awt.event.ActionEvent evt) { 420: payloadBox1ActionPerformed(evt); 421: } 422: }); 423: 424: jPanel1.add(payloadBox1); 425: 426: payloadField1.setEditable(false); 427: payloadField1.setToolTipText("path/to/payload/file"); 428: payloadField1.setMinimumSize(new java.awt.Dimension(200, 20)); 429: payloadField1.setPreferredSize(new java.awt.Dimension(250, 20)); 430: jPanel1.add(payloadField1); 431: 432: payloadFileChooser.setText("../"); 433: payloadFileChooser.addActionListener(new java.awt.event.ActionListener() { 434: public void actionPerformed(java.awt.event.ActionEvent evt) { 435: payloadFileChooserActionPerformed(evt); 436: } 437: }); 438: 439: jPanel1.add(payloadFileChooser); 440: 441: tcpPanel.add(jPanel1, java.awt.BorderLayout.NORTH); 442: 443: jPanel2.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 3)); 444: 445: 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))); 446: jPanel2.setMaximumSize(new java.awt.Dimension(32767, 86)); 447: jPanel2.setMinimumSize(new java.awt.Dimension(10, 86)); 448: jPanel2.setPreferredSize(new java.awt.Dimension(10, 86)); 449: srcIpFlag.setFont(new java.awt.Font("Dialog", 0, 12)); 450: srcIpFlag.setText("-S <src ip>"); 451: srcIpFlag.addActionListener(new java.awt.event.ActionListener() { 452: public void actionPerformed(java.awt.event.ActionEvent evt) { 453: srcIpFlagActionPerformed(evt); 454: } 455: }); 456: 457: jPanel2.add(srcIpFlag); 458: 459: srcIpField.setEditable(false); 460: srcIpField.setToolTipText("Enter The Source IP Address"); 461: srcIpField.setMinimumSize(new java.awt.Dimension(97, 20)); 462: srcIpField.setPreferredSize(new java.awt.Dimension(100, 20)); 463: jPanel2.add(srcIpField); 464: 465: dstIpFlag.setFont(new java.awt.Font("Dialog", 0, 12)); 466: dstIpFlag.setText("-D <dst ip>"); 467: dstIpFlag.addActionListener(new java.awt.event.ActionListener() { 468: public void actionPerformed(java.awt.event.ActionEvent evt) { 469: dstIpFlagActionPerformed(evt); 470: } 471: }); 472: 473: jPanel2.add(dstIpFlag); 474: 475: dstIpField.setEditable(false); 476: dstIpField.setToolTipText("Enter The Destination IP Address"); 477: dstIpField.setMinimumSize(new java.awt.Dimension(97, 20)); 478: dstIpField.setPreferredSize(new java.awt.Dimension(100, 20)); 479: jPanel2.add(dstIpField); 480: 481: ipIdFlag.setFont(new java.awt.Font("Dialog", 0, 12)); 482: ipIdFlag.setText("-I <ip id>"); 483: ipIdFlag.addActionListener(new java.awt.event.ActionListener() { 484: public void actionPerformed(java.awt.event.ActionEvent evt) { 485: ipIdFlagActionPerformed(evt); 486: } 487: }); 488: 489: jPanel2.add(ipIdFlag); 490: 491: ipIdField.setEditable(false); 492: ipIdField.setToolTipText("Enter the IP ID number"); 493: ipIdField.setMinimumSize(new java.awt.Dimension(32, 20)); 494: ipIdField.setPreferredSize(new java.awt.Dimension(32, 20)); 495: jPanel2.add(ipIdField); 496: 497: ttlFlag.setFont(new java.awt.Font("Dialog", 0, 12)); 498: ttlFlag.setText(" -T <ttl>"); 499: ttlFlag.addActionListener(new java.awt.event.ActionListener() { 500: public void actionPerformed(java.awt.event.ActionEvent evt) { 501: ttlFlagActionPerformed(evt); 502: } 503: }); 504: 505: jPanel2.add(ttlFlag); 506: 507: ttlField.setEditable(false); 508: ttlField.setMinimumSize(new java.awt.Dimension(60, 20)); 509: ttlField.setPreferredSize(new java.awt.Dimension(40, 20)); 510: jPanel2.add(ttlField); 511: 512: tosFlag.setFont(new java.awt.Font("Dialog", 0, 12)); 513: tosFlag.setText("-t <tos>"); 514: tosFlag.addActionListener(new java.awt.event.ActionListener() { 515: public void actionPerformed(java.awt.event.ActionEvent evt) { 516: tosFlagActionPerformed(evt); 517: } 518: }); 519: 520: jPanel2.add(tosFlag); 521: 522: tosField.setEditable(false); 523: tosField.setToolTipText("Enter TOS"); 524: tosField.setMinimumSize(new java.awt.Dimension(50, 20)); 525: tosField.setPreferredSize(new java.awt.Dimension(50, 20)); 526: jPanel2.add(tosField); 527: 528: fragOffSetFlag.setFont(new java.awt.Font("Dialog", 0, 12)); 529: fragOffSetFlag.setText("-F <frag offset>"); 530: fragOffSetFlag.addActionListener(new java.awt.event.ActionListener() { 531: public void actionPerformed(java.awt.event.ActionEvent evt) { 532: fragOffSetFlagActionPerformed(evt); 533: } 534: }); 535: 536: jPanel2.add(fragOffSetFlag); 537: 538: fragOffSetField.setEditable(false); 539: fragOffSetField.setToolTipText("Enter the fragmentation off set"); 540: fragOffSetField.setMinimumSize(new java.awt.Dimension(50, 20)); 541: fragOffSetField.setPreferredSize(new java.awt.Dimension(50, 20)); 542: jPanel2.add(fragOffSetField); 543: 544: ipOptFileBox.setFont(new java.awt.Font("Dialog", 0, 12)); 545: ipOptFileBox.setText("-O <IP Options File>"); 546: ipOptFileBox.addActionListener(new java.awt.event.ActionListener() { 547: public void actionPerformed(java.awt.event.ActionEvent evt) { 548: ipOptFileBoxActionPerformed(evt); 549: } 550: }); 551: 552: jPanel2.add(ipOptFileBox); 553: 554: ipOptFileField.setEditable(false); 555: ipOptFileField.setToolTipText("/path/to/ip/options/file"); 556: ipOptFileField.setPreferredSize(new java.awt.Dimension(250, 20)); 557: jPanel2.add(ipOptFileField); 558: 559: ipOptionsFileChooser.setFont(new java.awt.Font("Dialog", 0, 12)); 560: ipOptionsFileChooser.setText("../"); 561: ipOptionsFileChooser.addActionListener(new java.awt.event.ActionListener() { 562: public void actionPerformed(java.awt.event.ActionEvent evt) { 563: ipOptionsFileChooserActionPerformed(evt); 564: } 565: }); 566: 567: jPanel2.add(ipOptionsFileChooser); 568: 569: tcpPanel.add(jPanel2, java.awt.BorderLayout.CENTER); 570: 571: jPanel3.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 2)); 572: 573: 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))); 574: jPanel3.setMaximumSize(new java.awt.Dimension(32767, 52)); 575: jPanel3.setMinimumSize(new java.awt.Dimension(10, 52)); 576: jPanel3.setPreferredSize(new java.awt.Dimension(10, 52)); 577: ethDevFlag.setFont(new java.awt.Font("Dialog", 0, 12)); 578: ethDevFlag.setText("-d <Ethernet Device>"); 579: ethDevFlag.addActionListener(new java.awt.event.ActionListener() { 580: public void actionPerformed(java.awt.event.ActionEvent evt) { 581: ethDevFlagActionPerformed(evt); 582: } 583: }); 584: 585: jPanel3.add(ethDevFlag); 586: 587: ethDevField.setEditable(false); 588: ethDevField.setToolTipText("Enter the ethernet device you want to use"); 589: ethDevField.setMinimumSize(new java.awt.Dimension(63, 20)); 590: ethDevField.setPreferredSize(new java.awt.Dimension(63, 20)); 591: jPanel3.add(ethDevField); 592: 593: srcMacFlag.setFont(new java.awt.Font("Dialog", 0, 12)); 594: srcMacFlag.setText("-H"); 595: srcMacFlag.setToolTipText("Source Mac Address"); 596: srcMacFlag.addActionListener(new java.awt.event.ActionListener() { 597: public void actionPerformed(java.awt.event.ActionEvent evt) { 598: srcMacFlagActionPerformed(evt); 599: } 600: }); 601: 602: jPanel3.add(srcMacFlag); 603: 604: srcMacField.setEditable(false); 605: srcMacField.setToolTipText("Source Mac Address"); 606: srcMacField.setMinimumSize(new java.awt.Dimension(100, 20)); 607: srcMacField.setPreferredSize(new java.awt.Dimension(100, 20)); 608: jPanel3.add(srcMacField); 609: 610: dstMacFlag.setFont(new java.awt.Font("Dialog", 0, 12)); 611: dstMacFlag.setText("-M"); 612: dstMacFlag.setToolTipText("Destination Mac Address"); 613: dstMacFlag.addActionListener(new java.awt.event.ActionListener() { 614: public void actionPerformed(java.awt.event.ActionEvent evt) { 615: dstMacFlagActionPerformed(evt); 616: } 617: }); 618: 619: jPanel3.add(dstMacFlag); 620: 621: dstMacField.setEditable(false); 622: dstMacField.setToolTipText("Destination Mac Address"); 623: dstMacField.setMinimumSize(new java.awt.Dimension(100, 20)); 624: dstMacField.setPreferredSize(new java.awt.Dimension(100, 20)); 625: jPanel3.add(dstMacField); 626: 627: tcpPanel.add(jPanel3, java.awt.BorderLayout.SOUTH); 628: 629: jtabbedPane1.addTab("TCP", tcpPanel); 630: 631: udpPanel.setLayout(new java.awt.BorderLayout()); 632: 633: jPanel4.setLayout(new java.awt.BorderLayout()); 634: 635: 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))); 636: jPanel4.setMaximumSize(new java.awt.Dimension(32767, 150)); 637: jPanel4.setMinimumSize(new java.awt.Dimension(20, 150)); 638: jPanel4.setPreferredSize(new java.awt.Dimension(20, 150)); 639: jPanel7.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 2)); 640: 641: srcPrtFlag2.setFont(new java.awt.Font("Dialog", 0, 12)); 642: srcPrtFlag2.setText("-x <src port>"); 643: srcPrtFlag2.setToolTipText("Source Port Flag"); 644: srcPrtFlag2.addActionListener(new java.awt.event.ActionListener() { 645: public void actionPerformed(java.awt.event.ActionEvent evt) { 646: srcPrtFlag2ActionPerformed(evt); 647: } 648: }); 649: 650: jPanel7.add(srcPrtFlag2); 651: 652: srcPrtField2.setEditable(false); 653: srcPrtField2.setToolTipText("Enter the source port"); 654: srcPrtField2.setMinimumSize(new java.awt.Dimension(35, 20)); 655: srcPrtField2.setPreferredSize(new java.awt.Dimension(48, 20)); 656: jPanel7.add(srcPrtField2); 657: 658: dstPrtFlag2.setFont(new java.awt.Font("Dialog", 0, 12)); 659: dstPrtFlag2.setText("-y <dst port>"); 660: dstPrtFlag2.setToolTipText("Destination Port Flag"); 661: dstPrtFlag2.addActionListener(new java.awt.event.ActionListener() { 662: public void actionPerformed(java.awt.event.ActionEvent evt) { 663: dstPrtFlag2ActionPerformed(evt); 664: } 665: }); 666: 667: jPanel7.add(dstPrtFlag2); 668: 669: dstPrtField2.setEditable(false); 670: dstPrtField2.setToolTipText("Enter Destination Port"); 671: dstPrtField2.setMinimumSize(new java.awt.Dimension(35, 20)); 672: dstPrtField2.setPreferredSize(new java.awt.Dimension(48, 20)); 673: jPanel7.add(dstPrtField2); 674: 675: jPanel4.add(jPanel7, java.awt.BorderLayout.NORTH); 676: 677: jPanel12.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 2)); 678: 679: payloadBox2.setFont(new java.awt.Font("Dialog", 0, 12)); 680: payloadBox2.setText("-P <Payload File> "); 681: payloadBox2.setToolTipText("Payload File"); 682: payloadBox2.addActionListener(new java.awt.event.ActionListener() { 683: public void actionPerformed(java.awt.event.ActionEvent evt) { 684: payloadBox2ActionPerformed(evt); 685: } 686: }); 687: 688: jPanel12.add(payloadBox2); 689: 690: payloadField2.setEditable(false); 691: payloadField2.setToolTipText("path/to/payload/file"); 692: