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