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:        payloadField2.setMinimumSize(new java.awt.Dimension(200, 20));
 693:        payloadField2.setPreferredSize(new java.awt.Dimension(250, 20));
 694:        jPanel12.add(payloadField2);
 695:
 696:        payloadFileChooser1.setText("../");
 697:        payloadFileChooser1.addActionListener(new java.awt.event.ActionListener() {
 698:            public void actionPerformed(java.awt.event.ActionEvent evt) {
 699:                payloadFileChooser1ActionPerformed(evt);
 700:            }
 701:        });
 702:
 703:        jPanel12.add(payloadFileChooser1);
 704:
 705:        jPanel4.add(jPanel12, java.awt.BorderLayout.WEST);
 706:
 707:        udpPanel.add(jPanel4, java.awt.BorderLayout.NORTH);
 708:
 709:        jPanel5.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 3));
 710:
 711:        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)));
 712:        jPanel5.setMaximumSize(new java.awt.Dimension(32767, 86));
 713:        jPanel5.setMinimumSize(new java.awt.Dimension(1228, 86));
 714:        jPanel5.setPreferredSize(new java.awt.Dimension(1460, 86));
 715:        srcIpFlag1.setFont(new java.awt.Font("Dialog", 0, 12));
 716:        srcIpFlag1.setText("-S <src ip>");
 717:        srcIpFlag1.addActionListener(new java.awt.event.ActionListener() {
 718:            public void actionPerformed(java.awt.event.ActionEvent evt) {
 719:                srcIpFlag1ActionPerformed(evt);
 720:            }
 721:        });
 722:
 723:        jPanel5.add(srcIpFlag1);
 724:
 725:        srcIpField1.setEditable(false);
 726:        srcIpField1.setToolTipText("Enter The Source IP Address");
 727:        srcIpField1.setMinimumSize(new java.awt.Dimension(97, 20));
 728:        srcIpField1.setPreferredSize(new java.awt.Dimension(100, 20));
 729:        jPanel5.add(srcIpField1);
 730:
 731:        dstIpFlag1.setFont(new java.awt.Font("Dialog", 0, 12));
 732:        dstIpFlag1.setText("-D <dst ip>");
 733:        dstIpFlag1.addActionListener(new java.awt.event.ActionListener() {
 734:            public void actionPerformed(java.awt.event.ActionEvent evt) {
 735:                dstIpFlag1ActionPerformed(evt);
 736:            }
 737:        });
 738:
 739:        jPanel5.add(dstIpFlag1);
 740:
 741:        dstIpField1.setEditable(false);
 742:        dstIpField1.setToolTipText("Enter The Destination IP Address");
 743:        dstIpField1.setMinimumSize(new java.awt.Dimension(97, 20));
 744:        dstIpField1.setPreferredSize(new java.awt.Dimension(100, 20));
 745:        jPanel5.add(dstIpField1);
 746:
 747:        ipIdFlag1.setFont(new java.awt.Font("Dialog", 0, 12));
 748:        ipIdFlag1.setText("-I <ip id>");
 749:        ipIdFlag1.addActionListener(new java.awt.event.ActionListener() {
 750:            public void actionPerformed(java.awt.event.ActionEvent evt) {
 751:                ipIdFlag1ActionPerformed(evt);
 752:            }
 753:        });
 754:
 755:        jPanel5.add(ipIdFlag1);
 756:
 757:        ipIdField1.setEditable(false);
 758:        ipIdField1.setToolTipText("Enter the IP ID number");
 759:        ipIdField1.setMinimumSize(new java.awt.Dimension(32, 20));
 760:        ipIdField1.setPreferredSize(new java.awt.Dimension(32, 20));
 761:        jPanel5.add(ipIdField1);
 762:
 763:        ttlFlag1.setFont(new java.awt.Font("Dialog", 0, 12));
 764:        ttlFlag1.setText(" -T <ttl>");
 765:        ttlFlag1.addActionListener(new java.awt.event.ActionListener() {
 766:            public void actionPerformed(java.awt.event.ActionEvent evt) {
 767:                ttlFlag1ActionPerformed(evt);
 768:            }
 769:        });
 770:
 771:        jPanel5.add(ttlFlag1);
 772:
 773:        ttlField1.setEditable(false);
 774:        ttlField1.setMinimumSize(new java.awt.Dimension(60, 20));
 775:        ttlField1.setPreferredSize(new java.awt.Dimension(40, 20));
 776:        jPanel5.add(ttlField1);
 777:
 778:        tosFlag1.setFont(new java.awt.Font("Dialog", 0, 12));
 779:        tosFlag1.setText("-t <tos>");
 780:        tosFlag1.addActionListener(new java.awt.event.ActionListener() {
 781:            public void actionPerformed(java.awt.event.ActionEvent evt) {
 782:                tosFlag1ActionPerformed(evt);
 783:            }
 784:        });
 785:
 786:        jPanel5.add(tosFlag1);
 787:
 788:        tosField1.setEditable(false);
 789:        tosField1.setToolTipText("Enter TOS");
 790:        tosField1.setMinimumSize(new java.awt.Dimension(50, 20));
 791:        tosField1.setPreferredSize(new java.awt.Dimension(50, 20));
 792:        jPanel5.add(tosField1);
 793:
 794:        fragOffSetFlag1.setFont(new java.awt.Font("Dialog", 0, 12));
 795:        fragOffSetFlag1.setText("-F <frag offset>");
 796:        fragOffSetFlag1.addActionListener(new java.awt.event.ActionListener() {
 797:            public void actionPerformed(java.awt.event.ActionEvent evt) {
 798:                fragOffSetFlag1ActionPerformed(evt);
 799:            }
 800:        });
 801:
 802:        jPanel5.add(fragOffSetFlag1);
 803:
 804:        fragOffSetField1.setEditable(false);
 805:        fragOffSetField1.setToolTipText("Enter the fragmentation off set");
 806:        fragOffSetField1.setMinimumSize(new java.awt.Dimension(50, 20));
 807:        fragOffSetField1.setPreferredSize(new java.awt.Dimension(50, 20));
 808:        jPanel5.add(fragOffSetField1);
 809:
 810:        ipOptFileBox1.setFont(new java.awt.Font("Dialog", 0, 12));
 811:        ipOptFileBox1.setText("-O <IP Options File>");
 812:        ipOptFileBox1.addActionListener(new java.awt.event.ActionListener() {
 813:            public void actionPerformed(java.awt.event.ActionEvent evt) {
 814:                ipOptFileBox1ActionPerformed(evt);
 815:            }
 816:        });
 817:
 818:        jPanel5.add(ipOptFileBox1);
 819:
 820:        ipOptFileField1.setEditable(false);
 821:        ipOptFileField1.setToolTipText("/path/to/ip/options/file");
 822:        ipOptFileField1.setPreferredSize(new java.awt.Dimension(250, 20));
 823:        jPanel5.add(ipOptFileField1);
 824:
 825:        ipOptionsFileChooser1.setFont(new java.awt.Font("Dialog", 0, 12));
 826:        ipOptionsFileChooser1.setText("../");
 827:        ipOptionsFileChooser1.addActionListener(new java.awt.event.ActionListener() {
 828:            public void actionPerformed(java.awt.event.ActionEvent evt) {
 829:                ipOptionsFileChooser1ActionPerformed(evt);
 830:            }
 831:        });
 832:
 833:        jPanel5.add(ipOptionsFileChooser1);
 834:
 835:        udpPanel.add(jPanel5, java.awt.BorderLayout.CENTER);
 836:
 837:        jPanel6.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 2));
 838:
 839:        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)));
 840:        jPanel6.setMaximumSize(new java.awt.Dimension(32767, 52));
 841:        jPanel6.setMinimumSize(new java.awt.Dimension(545, 52));
 842:        jPanel6.setPreferredSize(new java.awt.Dimension(545, 52));
 843:        ethDevFlag1.setFont(new java.awt.Font("Dialog", 0, 12));
 844:        ethDevFlag1.setText("-d <Ethernet Device>");
 845:        ethDevFlag1.addActionListener(new java.awt.event.ActionListener() {
 846:            public void actionPerformed(java.awt.event.ActionEvent evt) {
 847:                ethDevFlag1ActionPerformed(evt);
 848:            }
 849:        });
 850:
 851:        jPanel6.add(ethDevFlag1);
 852:
 853:        ethDevField1.setEditable(false);
 854:        ethDevField1.setToolTipText("Enter the ethernet device you want to use");
 855:        ethDevField1.setMinimumSize(new java.awt.Dimension(63, 20));
 856:        ethDevField1.setPreferredSize(new java.awt.Dimension(63, 20));
 857:        jPanel6.add(ethDevField1);
 858:
 859:        srcMacFlag1.setFont(new java.awt.Font("Dialog", 0, 12));
 860:        srcMacFlag1.setText("-H");
 861:        srcMacFlag1.setToolTipText("Source Mac Address");
 862:        srcMacFlag1.addActionListener(new java.awt.event.ActionListener() {
 863:            public void actionPerformed(java.awt.event.ActionEvent evt) {
 864:                srcMacFlag1ActionPerformed(evt);
 865:            }
 866:        });
 867:
 868:        jPanel6.add(srcMacFlag1);
 869:
 870:        srcMacField1.setEditable(false);
 871:        srcMacField1.setToolTipText("Source Mac Address");
 872:        srcMacField1.setMinimumSize(new java.awt.Dimension(100, 20));
 873:        srcMacField1.setPreferredSize(new java.awt.Dimension(100, 20));
 874:        jPanel6.add(srcMacField1);
 875:
 876:        dstMacFlag1.setFont(new java.awt.Font("Dialog", 0, 12));
 877:        dstMacFlag1.setText("-M");
 878:        dstMacFlag1.setToolTipText("Destination Mac Address");
 879:        dstMacFlag1.addActionListener(new java.awt.event.ActionListener() {
 880:            public void actionPerformed(java.awt.event.ActionEvent evt) {
 881:                dstMacFlag1ActionPerformed(evt);
 882:            }
 883:        });
 884:
 885:        jPanel6.add(dstMacFlag1);
 886:
 887:        dstMacField1.setEditable(false);
 888:        dstMacField1.setToolTipText("Destination Mac Address");
 889:        dstMacField1.setMinimumSize(new java.awt.Dimension(100, 20));
 890:        dstMacField1.setPreferredSize(new java.awt.Dimension(100, 20));
 891:        jPanel6.add(dstMacField1);
 892:
 893:        udpPanel.add(jPanel6, java.awt.BorderLayout.SOUTH);
 894:
 895:        jtabbedPane1.addTab("UDP", udpPanel);
 896:
 897:        icmpPanel.setLayout(new java.awt.BorderLayout());
 898:
 899:        jPanel8.setLayout(new java.awt.BorderLayout());
 900:
 901:        jPanel8.setMaximumSize(new java.awt.Dimension(32767, 150));
 902:        jPanel8.setMinimumSize(new java.awt.Dimension(20, 150));
 903:        jPanel8.setPreferredSize(new java.awt.Dimension(20, 150));
 904:        jTabbedPane2.setFont(new java.awt.Font("Dialog", 0, 12));
 905:        jPanel11.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 3));
 906:
 907:        icmpCodeFlag1.setFont(new java.awt.Font("Dialog", 0, 12));
 908:        icmpCodeFlag1.setText("-c ICMP-code");
 909:        icmpCodeFlag1.setToolTipText("-c ICMP-code");
 910:        icmpCodeFlag1.addActionListener(new java.awt.event.ActionListener() {
 911:            public void actionPerformed(java.awt.event.ActionEvent evt) {
 912:                icmpCodeFlag1ActionPerformed(evt);
 913:            }
 914:        });
 915:
 916:        jPanel11.add(icmpCodeFlag1);
 917:
 918:        icmpCodeField1.setEditable(false);
 919:        icmpCodeField1.setToolTipText("Specify ICMP-code within the ICMP header");
 920:        icmpCodeField1.setMaximumSize(new java.awt.Dimension(25, 2147483647));
 921:        icmpCodeField1.setMinimumSize(new java.awt.Dimension(25, 19));
 922:        icmpCodeField1.setPreferredSize(new java.awt.Dimension(25, 19));
 923:        jPanel11.add(icmpCodeField1);
 924:
 925:        icmpIDFlag1.setFont(new java.awt.Font("Dialog", 0, 12));
 926:        icmpIDFlag1.setText("-e ICMP-ID");
 927:        icmpIDFlag1.setToolTipText("-e ICMP-ID");
 928:        icmpIDFlag1.addActionListener(new java.awt.event.ActionListener() {
 929:            public void actionPerformed(java.awt.event.ActionEvent evt) {
 930:                icmpIDFlag1ActionPerformed(evt);
 931:            }
 932:        });
 933:
 934:        jPanel11.add(icmpIDFlag1);
 935:
 936:        icmpIDField1.setEditable(false);
 937:        icmpIDField1.setToolTipText("Specify the ICMP-ID within the ICMP header.");
 938:        icmpIDField1.setMaximumSize(new java.awt.Dimension(30, 2147483647));
 939:        icmpIDField1.setMinimumSize(new java.awt.Dimension(30, 19));
 940:        icmpIDField1.setPreferredSize(new java.awt.Dimension(30, 19));
 941:        jPanel11.add(icmpIDField1);
 942:
 943:        icmpTypeFlag1.setFont(new java.awt.Font("Dialog", 0, 12));
 944:        icmpTypeFlag1.setText("-i ICMP-type");
 945:        icmpTypeFlag1.setToolTipText("-i ICMP-type");
 946:        icmpTypeFlag1.addActionListener(new java.awt.event.ActionListener() {
 947:            public void actionPerformed(java.awt.event.ActionEvent evt) {
 948:                icmpTypeFlag1ActionPerformed(evt);
 949:            }
 950:        });
 951:
 952:        jPanel11.add(icmpTypeFlag1);
 953:
 954:        icmpTypeField1.setEditable(false);
 955:        icmpTypeField1.setToolTipText("Specify the ICMP-type within the ICMP header.");
 956:        icmpTypeField1.setMaximumSize(new java.awt.Dimension(25, 2147483647));
 957:        icmpTypeField1.setMinimumSize(new java.awt.Dimension(25, 19));
 958:        icmpTypeField1.setPreferredSize(new java.awt.Dimension(25, 19));
 959:        jPanel11.add(icmpTypeField1);
 960:
 961:        prefGatewayFlag1.setFont(new java.awt.Font("Dialog", 0, 12));
 962:        prefGatewayFlag1.setText("-G");
 963:        prefGatewayFlag1.setToolTipText("-G preferred-gateway");
 964:        prefGatewayFlag1.addActionListener(new java.awt.event.ActionListener() {
 965:            public void actionPerformed(java.awt.event.ActionEvent evt) {
 966:                prefGatewayFlag1ActionPerformed(evt);
 967:            }
 968:        });
 969:
 970:        jPanel11.add(prefGatewayFlag1);
 971:
 972:        prefGatewayField1.setEditable(false);
 973:        prefGatewayField1.setToolTipText("Specify  the  preferred-gateway-IP-address  for  ICMP   redirect injections.");
 974:        prefGatewayField1.setMaximumSize(new java.awt.Dimension(110, 2147483647));
 975:        prefGatewayField1.setMinimumSize(new java.awt.Dimension(110, 19));
 976:        prefGatewayField1.setPreferredSize(new java.awt.Dimension(110, 19));
 977:        jPanel11.add(prefGatewayField1);
 978:
 979:        icmpMaskFlag1.setFont(new java.awt.Font("Dialog", 0, 12));
 980:        icmpMaskFlag1.setText("-m mask");
 981:        icmpMaskFlag1.setToolTipText("-m address-mask");
 982:        icmpMaskFlag1.addActionListener(new java.awt.event.ActionListener() {
 983:            public void actionPerformed(java.awt.event.ActionEvent evt) {
 984:                icmpMaskFlag1ActionPerformed(evt);
 985:            }
 986:        });
 987:
 988:        jPanel11.add(icmpMaskFlag1);
 989:
 990:        icmpMaskField1.setEditable(false);
 991:        icmpMaskField1.setToolTipText("Specify the IP-address-mask for ICMP address mask packets.");
 992:        icmpMaskField1.setMaximumSize(new java.awt.Dimension(40, 2147483647));
 993:        icmpMaskField1.setMinimumSize(new java.awt.Dimension(40, 19));
 994:        icmpMaskField1.setPreferredSize(new java.awt.Dimension(40, 19));
 995:        jPanel11.add(icmpMaskField1);
 996:
 997:        icmpModeFlag1.setFont(new java.awt.Font("Dialog", 0, 12));
 998:        icmpModeFlag1.setText("-q ICMP-injection-mode");
 999:        icmpModeFlag1.setToolTipText("-q ICMP-injection-mode");
1000:        icmpModeFlag1.addActionListener(new java.awt.event.ActionListener() {
1001:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1002:                icmpModeFlag1ActionPerformed(evt);
1003:            }
1004:        });
1005:
1006:        jPanel11.add(icmpModeFlag1);
1007:
1008:        icmpModeCBox1.setFont(new java.awt.Font("Dialog", 0, 10));
1009:        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)" }));
1010:        icmpModeCBox1.setToolTipText("Specify the ICMP-injection-mode to use  when  injecting.");
1011:        icmpModeCBox1.setMinimumSize(new java.awt.Dimension(140, 22));
1012:        icmpModeCBox1.setPreferredSize(new java.awt.Dimension(140, 22));
1013:        icmpModeCBox1.setEnabled(false);
1014:        jPanel11.add(icmpModeCBox1);
1015:
1016:        icmpSeqNumFlag1.setFont(new java.awt.Font("Dialog", 0, 12));
1017:        icmpSeqNumFlag1.setText("-s");
1018:        icmpSeqNumFlag1.setToolTipText("-s ICMP-sequence-number");
1019:        icmpSeqNumFlag1.addActionListener(new java.awt.event.ActionListener() {
1020:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1021:                icmpSeqNumFlag1ActionPerformed(evt);
1022:            }
1023:        });
1024:
1025:        jPanel11.add(icmpSeqNumFlag1);
1026:
1027:        icmpSeqNumField1.setEditable(false);
1028:        icmpSeqNumField1.setToolTipText("Specify the ICMP-sequence-number within the ICMP header.");
1029:        icmpSeqNumField1.setMaximumSize(new java.awt.Dimension(35, 2147483647));
1030:        icmpSeqNumField1.setMinimumSize(new java.awt.Dimension(35, 19));
1031:        icmpSeqNumField1.setPreferredSize(new java.awt.Dimension(35, 19));
1032:        jPanel11.add(icmpSeqNumField1);
1033:
1034:        payloadBox3.setFont(new java.awt.Font("Dialog", 0, 12));
1035:        payloadBox3.setText("-P <Payload File> ");
1036:        payloadBox3.setToolTipText("Payload File");
1037:        payloadBox3.addActionListener(new java.awt.event.ActionListener() {
1038:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1039:                payloadBox3ActionPerformed(evt);
1040:            }
1041:        });
1042:
1043:        jPanel11.add(payloadBox3);
1044:
1045:        payloadField3.setEditable(false);
1046:        payloadField3.setToolTipText("path/to/payload/file");
1047:        payloadField3.setMinimumSize(new java.awt.Dimension(200, 20));
1048:        payloadField3.setPreferredSize(new java.awt.Dimension(250, 20));
1049:        payloadField3.addActionListener(new java.awt.event.ActionListener() {
1050:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1051:                payloadField3ActionPerformed(evt);
1052:            }
1053:        });
1054:
1055:        jPanel11.add(payloadField3);
1056:
1057:        payloadFileChooser2.setText("../");
1058:        jPanel11.add(payloadFileChooser2);
1059:
1060:        jTabbedPane2.addTab("ICMP Options", jPanel11);
1061:
1062:        jPanel13.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 3));
1063:
1064:        icmpTRRTTFlag1.setFont(new java.awt.Font("Dialog", 0, 12));
1065:        icmpTRRTTFlag1.setText("-a ICMP-timestamp-request-reply-transmit-time");
1066:        icmpTRRTTFlag1.addActionListener(new java.awt.event.ActionListener() {
1067:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1068:                icmpTRRTTFlag1ActionPerformed(evt);
1069:            }
1070:        });
1071:
1072:        jPanel13.add(icmpTRRTTFlag1);
1073:
1074:        icmpTRRTTField1.setEditable(false);
1075:        icmpTRRTTField1.setToolTipText("Specify the ICMP-timestamp-request-reply-transmit-time  within the ICMP timestamp header.");
1076:        icmpTRRTTField1.setMinimumSize(new java.awt.Dimension(60, 19));
1077:        icmpTRRTTField1.setPreferredSize(new java.awt.Dimension(60, 19));
1078:        jPanel13.add(icmpTRRTTField1);
1079:
1080:        icmpTRTTFlag1.setFont(new java.awt.Font("Dialog", 0, 12));
1081:        icmpTRTTFlag1.setText("-o ICMP-timestamp-request-transmit-time");
1082:        icmpTRTTFlag1.addActionListener(new java.awt.event.ActionListener() {
1083:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1084:                icmpTRTTFlag1ActionPerformed(evt);
1085:            }
1086:        });
1087:
1088:        jPanel13.add(icmpTRTTFlag1);
1089:
1090:        icmpTRTTField1.setEditable(false);
1091:        icmpTRTTField1.setToolTipText("Specify the ICMP-timestamp-request-transmit-time  within the ICMP timestamp header.");
1092:        icmpTRTTField1.setMinimumSize(new java.awt.Dimension(60, 19));
1093:        icmpTRTTField1.setPreferredSize(new java.awt.Dimension(60, 19));
1094:        jPanel13.add(icmpTRTTField1);
1095:
1096:        icmpTRRRTFlag1.setFont(new java.awt.Font("Dialog", 0, 12));
1097:        icmpTRRRTFlag1.setText("-r ICMP-timestamp-request-reply-received-time");
1098:        icmpTRRRTFlag1.addActionListener(new java.awt.event.ActionListener() {
1099:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1100:                icmpTRRRTFlag1ActionPerformed(evt);
1101:            }
1102:        });
1103:
1104:        jPanel13.add(icmpTRRRTFlag1);
1105:
1106:        icmpTRRRTField1.setEditable(false);
1107:        icmpTRRRTField1.setToolTipText("Specify the ICMP-timestamp-request-reply-received-time within the ICMP timestamp header.");
1108:        icmpTRRRTField1.setMinimumSize(new java.awt.Dimension(60, 19));
1109:        icmpTRRRTField1.setPreferredSize(new java.awt.Dimension(60, 19));
1110:        jPanel13.add(icmpTRRRTField1);
1111:
1112:        jTabbedPane2.addTab("Timestamp Options", jPanel13);
1113:
1114:        jPanel14.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 3));
1115:
1116:        icmpDstIPFlag1.setFont(new java.awt.Font("Dialog", 0, 12));
1117:        icmpDstIPFlag1.setText("-b <dst IP address>");
1118:        icmpDstIPFlag1.setToolTipText("-b original-destination-IP-address");
1119:        icmpDstIPFlag1.addActionListener(new java.awt.event.ActionListener() {
1120:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1121:                icmpDstIPFlag1ActionPerformed(evt);
1122:            }
1123:        });
1124:
1125:        jPanel14.add(icmpDstIPFlag1);
1126:
1127:        icmpDstIPField1.setEditable(false);
1128:        icmpDstIPField1.setToolTipText("Specify  the  original-destination-IP-address  within  an   ICMP unreachable, redirect or time exceeded packet.");
1129:        icmpDstIPField1.setMinimumSize(new java.awt.Dimension(100, 19));
1130:        icmpDstIPField1.setPreferredSize(new java.awt.Dimension(100, 19));
1131:        jPanel14.add(icmpDstIPField1);
1132:
1133:        icmpSrcIPFlag1.setFont(new java.awt.Font("Dialog", 0, 12));
1134:        icmpSrcIPFlag1.setText("-B <src IP address>");
1135:        icmpSrcIPFlag1.setToolTipText("-B original-source-IP-address");
1136:        icmpSrcIPFlag1.addActionListener(new java.awt.event.ActionListener() {
1137:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1138:                icmpSrcIPFlag1ActionPerformed(evt);
1139:            }
1140:        });
1141:
1142:        jPanel14.add(icmpSrcIPFlag1);
1143:
1144:        icmpSrcIPField1.setEditable(false);
1145:        icmpSrcIPField1.setToolTipText("Specify  the  original-source-IP-address within an ICMP unreachable, redirect or time exceeded packet.");
1146:        icmpSrcIPField1.setMinimumSize(new java.awt.Dimension(100, 19));
1147:        icmpSrcIPField1.setPreferredSize(new java.awt.Dimension(100, 19));
1148:        jPanel14.add(icmpSrcIPField1);
1149:
1150:        icmpFragOpsFlag1.setFont(new java.awt.Font("Dialog", 0, 12));
1151:        icmpFragOpsFlag1.setText("-f <fragmentation options>");
1152:        icmpFragOpsFlag1.setToolTipText("-f original-fragmentation-options");
1153:        icmpFragOpsFlag1.addActionListener(new java.awt.event.ActionListener() {
1154:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1155:                icmpFragOpsFlag1ActionPerformed(evt);
1156:            }
1157:        });
1158:
1159:        jPanel14.add(icmpFragOpsFlag1);
1160:
1161:        icmpFragOpsField1.setEditable(false);
1162:        icmpFragOpsField1.setToolTipText("Specify the  original-IP-fragmentation-options  within  an  ICMP unreachable,  redirect or time exceeded packet.");
1163:        icmpFragOpsField1.setMinimumSize(new java.awt.Dimension(50, 19));
1164:        icmpFragOpsField1.setPreferredSize(new java.awt.Dimension(50, 19));
1165:        jPanel14.add(icmpFragOpsField1);
1166:
1167:        icmpIPTosFlag1.setFont(new java.awt.Font("Dialog", 0, 12));
1168:        icmpIPTosFlag1.setText("-j IP-TOS");
1169:        icmpIPTosFlag1.setToolTipText("-j original-IP-TOS");
1170:        icmpIPTosFlag1.addActionListener(new java.awt.event.ActionListener() {
1171:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1172:                icmpIPTosFlag1ActionPerformed(evt);
1173:            }
1174:        });
1175:
1176:        jPanel14.add(icmpIPTosFlag1);
1177:
1178:        icmpIPTosField1.setEditable(false);
1179:        icmpIPTosField1.setToolTipText("Specify the original-IP-type-of-service  (TOS)  within  an  ICMP unreachable, redirect or time exceeded packet.");
1180:        icmpIPTosField1.setMinimumSize(new java.awt.Dimension(50, 19));
1181:        icmpIPTosField1.setPreferredSize(new java.awt.Dimension(50, 19));
1182:        jPanel14.add(icmpIPTosField1);
1183:
1184:        icmpIPTtlFlag1.setFont(new java.awt.Font("Dialog", 0, 12));
1185:        icmpIPTtlFlag1.setText("-J IP-TTL");
1186:        icmpIPTtlFlag1.setToolTipText("-J original-IP-TTL");
1187:        icmpIPTtlFlag1.addActionListener(new java.awt.event.ActionListener() {
1188:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1189:                icmpIPTtlFlag1ActionPerformed(evt);
1190:            }
1191:        });
1192:
1193:        jPanel14.add(icmpIPTtlFlag1);
1194:
1195:        icmpIPTtlField1.setEditable(false);
1196:        icmpIPTtlField1.setToolTipText("Specify   the  original-IP-time-to-live  (TTL)  within  an  ICMP unreachable, redirect or time exceeded packet.");
1197:        icmpIPTtlField1.setMinimumSize(new java.awt.Dimension(50, 19));
1198:        icmpIPTtlField1.setPreferredSize(new java.awt.Dimension(50, 19));
1199:        jPanel14.add(icmpIPTtlField1);
1200:
1201:        icmpIPOptsBox.setFont(new java.awt.Font("Dialog", 0, 12));
1202:        icmpIPOptsBox.setText("-l <IP-options file>");
1203:        icmpIPOptsBox.setToolTipText("-l original-IP-options-file");
1204:        icmpIPOptsBox.addActionListener(new java.awt.event.ActionListener() {
1205:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1206:                icmpIPOptsBoxActionPerformed(evt);
1207:            }
1208:        });
1209:
1210:        jPanel14.add(icmpIPOptsBox);
1211:
1212:        icmpIPOptsPayloadField.setEditable(false);
1213:        icmpIPOptsPayloadField.setToolTipText("path/to/ip-options/file");
1214:        icmpIPOptsPayloadField.setMinimumSize(new java.awt.Dimension(200, 20));
1215:        icmpIPOptsPayloadField.setPreferredSize(new java.awt.Dimension(250, 20));
1216:        jPanel14.add(icmpIPOptsPayloadField);
1217:
1218:        payloadFileChooser3.setText("../");
1219:        payloadFileChooser3.addActionListener(new java.awt.event.ActionListener() {
1220:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1221:                payloadFileChooser3ActionPerformed(evt);
1222:            }
1223:        });
1224:
1225:        jPanel14.add(payloadFileChooser3);
1226:
1227:        jTabbedPane2.addTab("Original Datagram Options", jPanel14);
1228:
1229:        jPanel8.add(jTabbedPane2, java.awt.BorderLayout.CENTER);
1230:
1231:        icmpPanel.add(jPanel8, java.awt.BorderLayout.NORTH);
1232:
1233:        jPanel9.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 3));
1234:
1235:        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)));
1236:        jPanel9.setMaximumSize(new java.awt.Dimension(32767, 56));
1237:        jPanel9.setMinimumSize(new java.awt.Dimension(1228, 86));
1238:        jPanel9.setPreferredSize(new java.awt.Dimension(1460, 86));
1239:        srcIpFlag2.setFont(new java.awt.Font("Dialog", 0, 12));
1240:        srcIpFlag2.setText("-S <src ip>");
1241:        srcIpFlag2.addActionListener(new java.awt.event.ActionListener() {
1242:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1243:                srcIpFlag2ActionPerformed(evt);
1244:            }
1245:        });
1246:
1247:        jPanel9.add(srcIpFlag2);
1248:
1249:        srcIpField2.setEditable(false);
1250:        srcIpField2.setToolTipText("Enter The Source IP Address");
1251:        srcIpField2.setMinimumSize(new java.awt.Dimension(97, 20));
1252:        srcIpField2.setPreferredSize(new java.awt.Dimension(100, 20));
1253:        jPanel9.add(srcIpField2);
1254:
1255:        dstIpFlag2.setFont(new java.awt.Font("Dialog", 0, 12));
1256:        dstIpFlag2.setText("-D <dst ip>");
1257:        dstIpFlag2.addActionListener(new java.awt.event.ActionListener() {
1258:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1259:                dstIpFlag2ActionPerformed(evt);
1260:            }
1261:        });
1262:
1263:        jPanel9.add(dstIpFlag2);
1264:
1265:        dstIpField2.setEditable(false);
1266:        dstIpField2.setToolTipText("Enter The Destination IP Address");
1267:        dstIpField2.setMinimumSize(new java.awt.Dimension(97, 20));
1268:        dstIpField2.setPreferredSize(new java.awt.Dimension(100, 20));
1269:        jPanel9.add(dstIpField2);
1270:
1271:        ipIdFlag2.setFont(new java.awt.Font("Dialog", 0, 12));
1272:        ipIdFlag2.setText("-I <ip id>");
1273:        ipIdFlag2.addActionListener(new java.awt.event.ActionListener() {
1274:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1275:                ipIdFlag2ActionPerformed(evt);
1276:            }
1277:        });
1278:
1279:        jPanel9.add(ipIdFlag2);
1280:
1281:        ipIdField2.setEditable(false);
1282:        ipIdField2.setToolTipText("Enter the IP ID number");
1283:        ipIdField2.setMinimumSize(new java.awt.Dimension(32, 20));
1284:        ipIdField2.setPreferredSize(new java.awt.Dimension(32, 20));
1285:        jPanel9.add(ipIdField2);
1286:
1287:        ttlFlag2.setFont(new java.awt.Font("Dialog", 0, 12));
1288:        ttlFlag2.setText(" -T <ttl>");
1289:        ttlFlag2.addActionListener(new java.awt.event.ActionListener() {
1290:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1291:                ttlFlag2ActionPerformed(evt);
1292:            }
1293:        });
1294:
1295:        jPanel9.add(ttlFlag2);
1296:
1297:        ttlField2.setEditable(false);
1298:        ttlField2.setMinimumSize(new java.awt.Dimension(60, 20));
1299:        ttlField2.setPreferredSize(new java.awt.Dimension(40, 20));
1300:        jPanel9.add(ttlField2);
1301:
1302:        tosFlag2.setFont(new java.awt.Font("Dialog", 0, 12));
1303:        tosFlag2.setText("-t <tos>");
1304:        tosFlag2.addActionListener(new java.awt.event.ActionListener() {
1305:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1306:                tosFlag2ActionPerformed(evt);
1307:            }
1308:        });
1309:
1310:        jPanel9.add(tosFlag2);
1311:
1312:        tosField2.setEditable(false);
1313:        tosField2.setToolTipText("Enter TOS");
1314:        tosField2.setMinimumSize(new java.awt.Dimension(50, 20));
1315:        tosField2.setPreferredSize(new java.awt.Dimension(50, 20));
1316:        jPanel9.add(tosField2);
1317:
1318:        fragOffSetFlag2.setFont(new java.awt.Font("Dialog", 0, 12));
1319:        fragOffSetFlag2.setText("-F <frag offset>");
1320:        fragOffSetFlag2.addActionListener(new java.awt.event.ActionListener() {
1321:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1322:                fragOffSetFlag2ActionPerformed(evt);
1323:            }
1324:        });
1325:
1326:        jPanel9.add(fragOffSetFlag2);
1327:
1328:        fragOffSetField2.setEditable(false);
1329:        fragOffSetField2.setToolTipText("Enter the fragmentation off set");
1330:        fragOffSetField2.setMinimumSize(new java.awt.Dimension(50, 20));
1331:        fragOffSetField2.setPreferredSize(new java.awt.Dimension(50, 20));
1332:        jPanel9.add(fragOffSetField2);
1333:
1334:        ipOptFileBox2.setFont(new java.awt.Font("Dialog", 0, 12));
1335:        ipOptFileBox2.setText("-O <IP Options File>");
1336:        ipOptFileBox2.addActionListener(new java.awt.event.ActionListener() {
1337:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1338:                ipOptFileBox2ActionPerformed(evt);
1339:            }
1340:        });
1341:
1342:        jPanel9.add(ipOptFileBox2);
1343:
1344:        ipOptFileField2.setEditable(false);
1345:        ipOptFileField2.setToolTipText("/path/to/ip/options/file");
1346:        ipOptFileField2.setPreferredSize(new java.awt.Dimension(250, 20));
1347:        jPanel9.add(ipOptFileField2);
1348:
1349:        ipOptionsFileChooser2.setFont(new java.awt.Font("Dialog", 0, 12));
1350:        ipOptionsFileChooser2.setText("../");
1351:        ipOptionsFileChooser2.addActionListener(new java.awt.event.ActionListener() {
1352:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1353:                ipOptionsFileChooser2ActionPerformed(evt);
1354:            }
1355:        });
1356:
1357:        jPanel9.add(ipOptionsFileChooser2);
1358:
1359:        icmpPanel.add(jPanel9, java.awt.BorderLayout.CENTER);
1360:
1361:        jPanel10.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 5, 2));
1362:
1363:        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)));
1364:        jPanel10.setPreferredSize(new java.awt.Dimension(545, 52));
1365:        ethDevFlag2.setFont(new java.awt.Font("Dialog", 0, 12));
1366:        ethDevFlag2.setText("-d <Ethernet Device>");
1367:        ethDevFlag2.addActionListener(new java.awt.event.ActionListener() {
1368:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1369:                ethDevFlag2ActionPerformed(evt);
1370:            }
1371:        });
1372:
1373:        jPanel10.add(ethDevFlag2);
1374:
1375:        ethDevField2.setEditable(false);
1376:        ethDevField2.setToolTipText("Enter the ethernet device you want to use");
1377:        ethDevField2.setMinimumSize(new java.awt.Dimension(63, 20));
1378:        ethDevField2.setPreferredSize(new java.awt.Dimension(63, 20));
1379:        jPanel10.add(ethDevField2);
1380:
1381:        srcMacFlag2.setFont(new java.awt.Font("Dialog", 0, 12));
1382:        srcMacFlag2.setText("-H");
1383:        srcMacFlag2.setToolTipText("Source Mac Address");
1384:        srcMacFlag2.addActionListener(new java.awt.event.ActionListener() {
1385:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1386:                srcMacFlag2ActionPerformed(evt);
1387:            }
1388:        });
1389:
1390:        jPanel10.add(srcMacFlag2);
1391:
1392:        srcMacField2.setEditable(false);
1393:        srcMacField2.setToolTipText("Source Mac Address");
1394:        srcMacField2.setMinimumSize(new java.awt.Dimension(100, 20));
1395:        srcMacField2.setPreferredSize(new java.awt.Dimension(100, 20));
1396:        jPanel10.add(srcMacField2);
1397:
1398:        dstMacFlag2.setFont(new java.awt.Font("Dialog", 0, 12));
1399:        dstMacFlag2.setText("-M");
1400:        dstMacFlag2.setToolTipText("Destination Mac Address");
1401:        dstMacFlag2.addActionListener(new java.awt.event.ActionListener() {
1402:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1403:                dstMacFlag2ActionPerformed(evt);
1404:            }
1405:        });
1406:
1407:        jPanel10.add(dstMacFlag2);
1408:
1409:        dstMacField2.setEditable(false);
1410:        dstMacField2.setToolTipText("Destination Mac Address");
1411:        dstMacField2.setMinimumSize(new java.awt.Dimension(100, 20));
1412:        dstMacField2.setPreferredSize(new java.awt.Dimension(100, 20));
1413:        jPanel10.add(dstMacField2);
1414:
1415:        icmpPanel.add(jPanel10, java.awt.BorderLayout.SOUTH);
1416:
1417:        jtabbedPane1.addTab("ICMP", icmpPanel);
1418:
1419:        queuePanel.setLayout(new java.awt.BorderLayout());
1420:
1421:        queuedList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
1422:        jScrollPane1.setViewportView(queuedList);
1423:
1424:        queuePanel.add(jScrollPane1, java.awt.BorderLayout.CENTER);
1425:
1426:        injectNext.setFont(new java.awt.Font("Dialog", 0, 12));
1427:        injectNext.setText("Inject Selected");
1428:        injectNext.addActionListener(new java.awt.event.ActionListener() {
1429:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1430:                injectNextActionPerformed(evt);
1431:            }
1432:        });
1433:
1434:        jPanel16.add(injectNext);
1435:
1436:        injectAll.setFont(new java.awt.Font("Dialog", 0, 12));
1437:        injectAll.setText("Inject All");
1438:        injectAll.addActionListener(new java.awt.event.ActionListener() {
1439:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1440:                injectAllActionPerformed(evt);
1441:            }
1442:        });
1443:
1444:        jPanel16.add(injectAll);
1445:
1446:        rmSelected.setFont(new java.awt.Font("Dialog", 0, 12));
1447:        rmSelected.setText("Remove Selected");
1448:        rmSelected.addActionListener(new java.awt.event.ActionListener() {
1449:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1450:                rmSelectedActionPerformed(evt);
1451:            }
1452:        });
1453:
1454:        jPanel16.add(rmSelected);
1455:
1456:        rmAll.setFont(new java.awt.Font("Dialog", 0, 12));
1457:        rmAll.setText("Remove All");
1458:        rmAll.addActionListener(new java.awt.event.ActionListener() {
1459:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1460:                rmAllActionPerformed(evt);
1461:            }
1462:        });
1463:
1464:        jPanel16.add(rmAll);
1465:
1466:        saveQueue.setFont(new java.awt.Font("Dialog", 0, 12));
1467:        saveQueue.setText("Save");
1468:        saveQueue.addActionListener(new java.awt.event.ActionListener() {
1469:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1470:                saveQueueActionPerformed(evt);
1471:            }
1472:        });
1473:
1474:        jPanel16.add(saveQueue);
1475:
1476:        queuePanel.add(jPanel16, java.awt.BorderLayout.NORTH);
1477:
1478:        jtabbedPane1.addTab("Packet Queue", queuePanel);
1479:
1480:        statusPane.setVerticalScrollBarPolicy(javax.swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
1481:        injectionResult.setBackground(new java.awt.Color(0, 0, 0));
1482:        injectionResult.setForeground(new java.awt.Color(255, 255, 255));
1483:        statusPane.setViewportView(injectionResult);
1484:
1485:        jtabbedPane1.addTab("Result", statusPane);
1486:
1487:        jPanel15.setLayout(new java.awt.BorderLayout());
1488:
1489:        tcpHelp.setEditable(false);
1490:        tcpHelp.addHyperlinkListener(new javax.swing.event.HyperlinkListener() {
1491:            public void hyperlinkUpdate(javax.swing.event.HyperlinkEvent evt) {
1492:                tcpHelpHyperlinkUpdate(evt);
1493:            }
1494:        });
1495:
1496:        jScrollPane2.setViewportView(tcpHelp);
1497:
1498:        help.addTab("nemesis-tcp", jScrollPane2);
1499:
1500:        udpHelp.setEditable(false);
1501:        udpHelp.addHyperlinkListener(new javax.swing.event.HyperlinkListener() {
1502:            public void hyperlinkUpdate(javax.swing.event.HyperlinkEvent evt) {
1503:                udpHelpHyperlinkUpdate(evt);
1504:            }
1505:        });
1506:
1507:        jScrollPane3.setViewportView(udpHelp);
1508:
1509:        help.addTab("nemesis-udp", jScrollPane3);
1510:
1511:        icmpHelp.setEditable(false);
1512:        icmpHelp.addHyperlinkListener(new javax.swing.event.HyperlinkListener() {
1513:            public void hyperlinkUpdate(javax.swing.event.HyperlinkEvent evt) {
1514:                icmpHelpHyperlinkUpdate(evt);
1515:            }
1516:        });
1517:
1518:        jScrollPane4.setViewportView(icmpHelp);
1519:
1520:        help.addTab("nemesis-icmp", jScrollPane4);
1521:
1522:        jPanel15.add(help, java.awt.BorderLayout.CENTER);
1523:
1524:        jtabbedPane1.addTab("Help", jPanel15);
1525:
1526:        jPanel17.setLayout(new java.awt.BorderLayout());
1527:
1528:        jPanel17.setBackground(new java.awt.Color(0, 0, 0));
1529:        jLabel2.setBackground(new java.awt.Color(0, 0, 0));
1530:        jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
1531:        jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jnemesis/help/blackopscode.gif")));
1532:        jPanel17.add(jLabel2, java.awt.BorderLayout.CENTER);
1533:
1534:        jLabel3.setFont(new java.awt.Font("Dialog", 0, 12));
1535:        jLabel3.setForeground(new java.awt.Color(255, 255, 255));
1536:        jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
1537:        jLabel3.setText("Author: Florian Hines <fhines@blackopscode.com>\n");
1538:        jPanel17.add(jLabel3, java.awt.BorderLayout.NORTH);
1539:
1540:        jLabel5.setForeground(new java.awt.Color(255, 255, 255));
1541:        jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
1542:        jLabel5.setText("Released under the GPL LICENSE");
1543:        jPanel17.add(jLabel5, java.awt.BorderLayout.SOUTH);
1544:
1545:        jtabbedPane1.addTab("About", jPanel17);
1546:
1547:        masterPanel.add(jtabbedPane1, java.awt.BorderLayout.CENTER);
1548:
1549:        controlPanel.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));
1550:
1551:        controlPanel.setMaximumSize(new java.awt.Dimension(32767, 35));
1552:        controlPanel.setMinimumSize(new java.awt.Dimension(10, 35));
1553:        controlPanel.setPreferredSize(new java.awt.Dimension(10, 35));
1554:        injectButton.setText("Inject Packet");
1555:        injectButton.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
1556:        injectButton.addActionListener(new java.awt.event.ActionListener() {
1557:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1558:                injectButtonActionPerformed(evt);
1559:            }
1560:        });
1561:
1562:        controlPanel.add(injectButton);
1563:
1564:        queuePacket.setFont(new java.awt.Font("Dialog", 0, 12));
1565:        queuePacket.setText("Queue");
1566:        queuePacket.addActionListener(new java.awt.event.ActionListener() {
1567:            public void actionPerformed(java.awt.event.ActionEvent evt) {
1568:                queuePacketActionPerformed(evt);
1569:            }
1570:        });
1571:
1572:        controlPanel.add(queuePacket);
1573:
1574:        jLabel1.setFont(new java.awt.Font("Dialog", 0, 12));
1575:        jLabel1.setText("Status:");
1576:        controlPanel.add(jLabel1);
1577:
1578:        statusField.setEditable(false);
1579:        statusField.setText("READY");
1580:        statusField.setMinimumSize(new java.awt.Dimension(350, 19));
1581:        statusField.setPreferredSize(new java.awt.Dimension(320, 19));
1582:        controlPanel.add(statusField);
1583:
1584:        masterPanel.add(controlPanel, java.awt.BorderLayout.SOUTH);
1585:
1586:        getContentPane().add(masterPanel, java.awt.BorderLayout.CENTER);
1587:
1588:        pack();
1589:    }//GEN-END:initComponents
1590:
1591:    private void tcpHelpHyperlinkUpdate(javax.swing.event.HyperlinkEvent evt) {//GEN-FIRST:event_tcpHelpHyperlinkUpdate
1592:        if (evt.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
1593:            try 
1594:            {
1595:                tcpHelp.setPage(evt.getURL());
1596:            }
1597:            catch(IOException e)
1598:            {
1599:                tcpHelp.setText("Exception: " + e + "\nUnable to load URL.");
1600:            }
1601:        }
1602:    }//GEN-LAST:event_tcpHelpHyperlinkUpdate
1603:
1604:    private void udpHelpHyperlinkUpdate(javax.swing.event.HyperlinkEvent evt) {//GEN-FIRST:event_udpHelpHyperlinkUpdate
1605:        if (evt.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
1606:            try 
1607:            {
1608:                udpHelp.setPage(evt.getURL());
1609:            }
1610:            catch(IOException e)
1611:            {
1612:                udpHelp.setText("Exception: " + e + "\nUnable to load URL.");
1613:            }
1614:        }
1615:    }//GEN-LAST:event_udpHelpHyperlinkUpdate
1616:
1617:    private void icmpHelpHyperlinkUpdate(javax.swing.event.HyperlinkEvent evt) {//GEN-FIRST:event_icmpHelpHyperlinkUpdate
1618:        // TODO add your handling code here:
1619:        if (evt.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
1620:            try 
1621:            {
1622:                icmpHelp.setPage(evt.getURL());
1623:            }
1624:            catch(IOException e)
1625:            {
1626:                icmpHelp.setText("Exception: " + e + "\nUnable to load URL.");
1627:            }
1628:        }
1629:    }//GEN-LAST:event_icmpHelpHyperlinkUpdate
1630:
1631:    private void payloadFileChooser3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_payloadFileChooser3ActionPerformed
1632:        // TODO add your handling code here:
1633:        if (icmpIPOptsBox.isSelected() == true){
1634:            icmpIPOptsPayloadField.setText(getPayloadFile());
1635:        }
1636:    }//GEN-LAST:event_payloadFileChooser3ActionPerformed
1637:
1638:    private void ipOptionsFileChooser2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ipOptionsFileChooser2ActionPerformed
1639:        // TODO add your handling code here:
1640:        if (ipOptFileBox2.isSelected() == true){
1641:            ipOptFileField2.setText(getPayloadFile());
1642:        }
1643:    }//GEN-LAST:event_ipOptionsFileChooser2ActionPerformed
1644:
1645:    private void payloadField3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_payloadField3ActionPerformed
1646:        // TODO add your handling code here:
1647:        if (payloadBox3.isSelected() == true){
1648:            payloadField3.setText(getPayloadFile());
1649:        }
1650:    }//GEN-LAST:event_payloadField3ActionPerformed
1651:
1652:    private void ipOptionsFileChooser1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ipOptionsFileChooser1ActionPerformed
1653:        // TODO add your handling code here:
1654:        if (ipOptFileBox1.isSelected() == true){
1655:            ipOptFileField1.setText(getPayloadFile());
1656:        }
1657:    }//GEN-LAST:event_ipOptionsFileChooser1ActionPerformed
1658:
1659:    private void payloadFileChooser1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_payloadFileChooser1ActionPerformed
1660:        // TODO add your handling code here:
1661:        if (payloadBox2.isSelected() == true){
1662:            payloadField2.setText(getPayloadFile());
1663:        }
1664:    }//GEN-LAST:event_payloadFileChooser1ActionPerformed
1665:
1666:    private void ipOptionsFileChooserActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ipOptionsFileChooserActionPerformed
1667:        // TODO add your handling code here:
1668:        if (ipOptFileBox.isSelected() == true){
1669:            ipOptFileField.setText(getPayloadFile());
1670:        }
1671:    }//GEN-LAST:event_ipOptionsFileChooserActionPerformed
1672:
1673:    private void payloadFileChooserActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_payloadFileChooserActionPerformed
1674:        // TODO add your handling code here:
1675:        if (payloadBox1.isSelected() == true){
1676:            payloadField1.setText(getPayloadFile());
1677:        }
1678:    }//GEN-LAST:event_payloadFileChooserActionPerformed
1679:
1680:    private void tcpOpFileChooser1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tcpOpFileChooser1ActionPerformed
1681:        if (tcpOptBox1.isSelected() == true){
1682:            tcpOptField1.setText(getPayloadFile());
1683:        }   
1684:    }//GEN-LAST:event_tcpOpFileChooser1ActionPerformed
1685:
1686:    private void saveQueueActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveQueueActionPerformed
1687:        try {
1688:            /* Create/open file for writing */
1689:            String saveFile = queueSave + "/nemesis.sh";
1690:            PrintWriter outputStream = 
1691:                new PrintWriter(new FileOutputStream(saveFile));
1692:            /* Get hashes from current watch list */
1693:            String shellLine = "#!" + queueShell;
1694:            String versionLine = "#!-- Generated by jnemesis version 1.0 --!\n";
1695:            outputStream.println(shellLine);
1696:            outputStream.println(versionLine);
1697:            int listSize = queuedPackets.getSize();
1698:            if (listSize != 0){
1699:                String currentlySelected;
1700:                int listEnd = listSize - 1;
1701:                int index = 0;
1702:                while (index <= listEnd ) {
1703:                    queuedList.setSelectedIndex(index);
1704:                    currentlySelected = (String)queuedList.getSelectedValue();
1705:                    outputStream.println(nemesisPath + " " + currentlySelected);
1706:                    index++;
1707:                }
1708:            }
1709:            outputStream.close();
1710:        }
1711:        catch(IOException e)
1712:        {
1713:            System.out.println("Error writing to file " + queueSave);
1714:        }
1715:    }//GEN-LAST:event_saveQueueActionPerformed
1716:
1717:    private void rmAllActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rmAllActionPerformed
1718:        // TODO add your handling code here:
1719:        queuedPackets.removeAllElements();
1720:    }//GEN-LAST:event_rmAllActionPerformed
1721:
1722:    private void rmSelectedActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rmSelectedActionPerformed
1723:        String currentlySelected = (String)queuedList.getSelectedValue();
1724:        if (currentlySelected != null ){
1725:            queuedPackets.removeElement(currentlySelected);
1726:        }
1727:    }//GEN-LAST:event_rmSelectedActionPerformed
1728:
1729:    private void injectAllActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_injectAllActionPerformed
1730:        int listSize = queuedPackets.getSize();
1731:        if (listSize != 0){
1732:            String currentlySelected;
1733:            int listEnd = listSize - 1;
1734:            int index = 0;
1735:            while (index <= listEnd ) {
1736:                queuedList.setSelectedIndex(index);
1737:                currentlySelected = (String)queuedList.getSelectedValue();
1738:                injectQueued(currentlySelected);
1739:                index++;
1740:            }
1741:        }
1742:        queuedPackets.removeAllElements();
1743:        //System.out.println(currentlySelected + " is currently selected.");
1744:    }//GEN-LAST:event_injectAllActionPerformed
1745:
1746:    private void ipOptFileBox2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ipOptFileBox2ActionPerformed
1747:        // TODO add your handling code here:
1748:        if (ipOptFileBox2.isSelected() == true){
1749:            ipOptFileField2.setEditable(true);
1750:        }else if (ipOptFileBox2.isSelected() == false){
1751:            ipOptFileField2.setEditable(false);
1752:        }
1753:    }//GEN-LAST:event_ipOptFileBox2ActionPerformed
1754:
1755:    private void injectNextActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_injectNextActionPerformed
1756:        // TODO add your handling code here:
1757:        String currentlySelected = (String)queuedList.getSelectedValue();
1758:        if (currentlySelected != null ){
1759:            injectQueued(currentlySelected);
1760:            queuedPackets.removeElement(currentlySelected);
1761:        }
1762:        //System.out.println(currentlySelected + " is currently selected.");
1763:    }//GEN-LAST:event_injectNextActionPerformed
1764:
1765:    private void queuePacketActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_queuePacketActionPerformed
1766:        // TODO add your handling code here:
1767:        if (tcpPanel.isShowing() == true){
1768:            parseNemesisArgsTCP();
1769:            setArgsTCP();
1770:            storePacket("tcp");
1771:            resetArgs();
1772:        } else if (udpPanel.isShowing() == true){
1773:            parseNemesisArgsUDP();
1774:            setArgsUDP();
1775:            storePacket("udp");
1776:            resetArgs();
1777:        } else if (icmpPanel.isShowing() == true){
1778:            parseNemesisArgsICMP();
1779:            setArgsICMP();
1780:            storePacket("icmp");
1781:            resetArgs();
1782:        }
1783:        nemesisArgs = "";
1784:    }//GEN-LAST:event_queuePacketActionPerformed
1785:
1786:    
1787:    /*START ICMP TAB BUTTON ACTIONS */
1788:    
1789:    private void icmpIPOptsBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpIPOptsBoxActionPerformed
1790:        // TODO add your handling code here:
1791:        if (icmpIPOptsBox.isSelected() == true){
1792:            icmpIPOptsPayloadField.setEditable(true);
1793:        }else if (icmpIPOptsBox.isSelected() == false){
1794:            icmpIPOptsPayloadField.setEditable(false);
1795:        }
1796:    }//GEN-LAST:event_icmpIPOptsBoxActionPerformed
1797:
1798:    private void icmpIPTtlFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpIPTtlFlag1ActionPerformed
1799:        // TODO add your handling code here:
1800:        if (icmpIPTtlFlag1.isSelected() == true){
1801:            icmpIPTtlField1.setEditable(true);
1802:        }else if (icmpIPTtlFlag1.isSelected() == false){
1803:            icmpIPTtlField1.setEditable(false);
1804:        }
1805:    }//GEN-LAST:event_icmpIPTtlFlag1ActionPerformed
1806:
1807:    private void icmpIPTosFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpIPTosFlag1ActionPerformed
1808:        // TODO add your handling code here:
1809:        if (icmpIPTosFlag1.isSelected() == true){
1810:            icmpIPTosField1.setEditable(true);
1811:        }else if (icmpIPTosFlag1.isSelected() == false){
1812:            icmpIPTosField1.setEditable(false);
1813:        }
1814:    }//GEN-LAST:event_icmpIPTosFlag1ActionPerformed
1815:
1816:    private void icmpFragOpsFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpFragOpsFlag1ActionPerformed
1817:        // TODO add your handling code here:
1818:        if (icmpFragOpsFlag1.isSelected() == true){
1819:            icmpFragOpsField1.setEditable(true);
1820:        }else if (icmpFragOpsFlag1.isSelected() == false){
1821:            icmpFragOpsField1.setEditable(false);
1822:        }
1823:    }//GEN-LAST:event_icmpFragOpsFlag1ActionPerformed
1824:
1825:    private void icmpSrcIPFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpSrcIPFlag1ActionPerformed
1826:        // TODO add your handling code here:
1827:        if (icmpSrcIPFlag1.isSelected() == true){
1828:            icmpSrcIPField1.setEditable(true);
1829:        }else if (icmpSrcIPFlag1.isSelected() == false){
1830:            icmpSrcIPField1.setEditable(false);
1831:        }
1832:    }//GEN-LAST:event_icmpSrcIPFlag1ActionPerformed
1833:
1834:    private void icmpDstIPFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpDstIPFlag1ActionPerformed
1835:        // TODO add your handling code here:
1836:        if (icmpDstIPFlag1.isSelected() == true){
1837:            icmpDstIPField1.setEditable(true);
1838:        }else if (icmpDstIPFlag1.isSelected() == false){
1839:            icmpDstIPField1.setEditable(false);
1840:        }
1841:    }//GEN-LAST:event_icmpDstIPFlag1ActionPerformed
1842:
1843:    private void icmpTRRRTFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpTRRRTFlag1ActionPerformed
1844:        // TODO add your handling code here:
1845:        if (icmpTRRRTFlag1.isSelected() == true){
1846:            icmpTRRRTField1.setEditable(true);
1847:        }else if (icmpTRRRTFlag1.isSelected() == false){
1848:            icmpTRRRTField1.setEditable(false);
1849:        }
1850:    }//GEN-LAST:event_icmpTRRRTFlag1ActionPerformed
1851:
1852:    private void icmpTRTTFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpTRTTFlag1ActionPerformed
1853:        // TODO add your handling code here:
1854:        if (icmpTRTTFlag1.isSelected() == true){
1855:            icmpTRTTField1.setEditable(true);
1856:        }else if (icmpTRTTFlag1.isSelected() == false){
1857:            icmpTRTTField1.setEditable(false);
1858:        }
1859:    }//GEN-LAST:event_icmpTRTTFlag1ActionPerformed
1860:
1861:    private void icmpTRRTTFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpTRRTTFlag1ActionPerformed
1862:        // TODO add your handling code here:
1863:        if (icmpTRRTTFlag1.isSelected() == true){
1864:            icmpTRRTTField1.setEditable(true);
1865:        }else if (icmpTRRTTFlag1.isSelected() == false){
1866:            icmpTRRTTField1.setEditable(false);
1867:        }
1868:    }//GEN-LAST:event_icmpTRRTTFlag1ActionPerformed
1869:
1870:    private void dstMacFlag2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dstMacFlag2ActionPerformed
1871:        // TODO add your handling code here:
1872:        if (dstMacFlag2.isSelected() == true){
1873:            dstMacField2.setEditable(true);
1874:        }else if (dstMacFlag2.isSelected() == false){
1875:            dstMacField2.setEditable(false);
1876:        }
1877:    }//GEN-LAST:event_dstMacFlag2ActionPerformed
1878:
1879:    private void srcMacFlag2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_srcMacFlag2ActionPerformed
1880:        // TODO add your handling code here:
1881:        if (srcMacFlag2.isSelected() == true){
1882:            srcMacField2.setEditable(true);
1883:        }else if (srcMacFlag2.isSelected() == false){
1884:            srcMacField2.setEditable(false);
1885:        }
1886:    }//GEN-LAST:event_srcMacFlag2ActionPerformed
1887:
1888:    private void ethDevFlag2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ethDevFlag2ActionPerformed
1889:        // TODO add your handling code here:
1890:        if (ethDevFlag2.isSelected() == true){
1891:            ethDevField2.setEditable(true);
1892:        }else if (ethDevFlag2.isSelected() == false){
1893:            ethDevField2.setEditable(false);
1894:        }
1895:    }//GEN-LAST:event_ethDevFlag2ActionPerformed
1896:
1897:    private void fragOffSetFlag2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fragOffSetFlag2ActionPerformed
1898:        // TODO add your handling code here:
1899:        if (fragOffSetFlag2.isSelected() == true){
1900:            fragOffSetField2.setEditable(true);
1901:        }else if (fragOffSetFlag2.isSelected() == false){
1902:            fragOffSetField2.setEditable(false);
1903:        }
1904:    }//GEN-LAST:event_fragOffSetFlag2ActionPerformed
1905:
1906:    private void tosFlag2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tosFlag2ActionPerformed
1907:        // TODO add your handling code here:
1908:        if (tosFlag2.isSelected() == true){
1909:            tosField2.setEditable(true);
1910:        }else if (tosFlag2.isSelected() == false){
1911:            tosField2.setEditable(false);
1912:        }
1913:    }//GEN-LAST:event_tosFlag2ActionPerformed
1914:
1915:    private void ttlFlag2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ttlFlag2ActionPerformed
1916:        // TODO add your handling code here:
1917:        if (ttlFlag2.isSelected() == true){
1918:            ttlField2.setEditable(true);
1919:        }else if (tosFlag2.isSelected() == false){
1920:            ttlField2.setEditable(false);
1921:        }
1922:    }//GEN-LAST:event_ttlFlag2ActionPerformed
1923:
1924:    private void ipIdFlag2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ipIdFlag2ActionPerformed
1925:        // TODO add your handling code here:
1926:        if (ipIdFlag2.isSelected() == true){
1927:            ipIdField2.setEditable(true);
1928:        }else if (ipIdFlag2.isSelected() == false){
1929:            ipIdField2.setEditable(false);
1930:        }
1931:    }//GEN-LAST:event_ipIdFlag2ActionPerformed
1932:
1933:    private void dstIpFlag2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dstIpFlag2ActionPerformed
1934:        // TODO add your handling code here:
1935:        if (dstIpFlag2.isSelected() == true){
1936:            dstIpField2.setEditable(true);
1937:        }else if (dstIpFlag2.isSelected() == false){
1938:            dstIpField2.setEditable(false);
1939:        }
1940:    }//GEN-LAST:event_dstIpFlag2ActionPerformed
1941:
1942:    private void srcIpFlag2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_srcIpFlag2ActionPerformed
1943:        // TODO add your handling code here:
1944:        if (srcIpFlag2.isSelected() == true){
1945:            srcIpField2.setEditable(true);
1946:        }else if (srcIpFlag2.isSelected() == false){
1947:            srcIpField2.setEditable(false);
1948:        }
1949:    }//GEN-LAST:event_srcIpFlag2ActionPerformed
1950:
1951:    private void payloadBox3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_payloadBox3ActionPerformed
1952:        // TODO add your handling code here:
1953:        if (payloadBox3.isSelected() == true){
1954:            payloadField3.setEditable(true);
1955:        }else if (payloadBox3.isSelected() == false){
1956:            payloadField3.setEditable(false);
1957:        }
1958:    }//GEN-LAST:event_payloadBox3ActionPerformed
1959:
1960:    private void icmpSeqNumFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpSeqNumFlag1ActionPerformed
1961:        // TODO add your handling code here:
1962:        if (icmpSeqNumFlag1.isSelected() == true){
1963:            icmpSeqNumField1.setEditable(true);
1964:        }else if (icmpSeqNumFlag1.isSelected() == false){
1965:            icmpSeqNumField1.setEditable(false);
1966:        }
1967:    }//GEN-LAST:event_icmpSeqNumFlag1ActionPerformed
1968:
1969:    private void icmpModeFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpModeFlag1ActionPerformed
1970:        // TODO add your handling code here:
1971:        if (icmpModeFlag1.isSelected() == true){
1972:            icmpModeCBox1.setEnabled(true);
1973:        }else if (icmpModeFlag1.isSelected() == false){
1974:            icmpModeCBox1.setEnabled(false);
1975:        }
1976:    }//GEN-LAST:event_icmpModeFlag1ActionPerformed
1977:
1978:    private void icmpMaskFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpMaskFlag1ActionPerformed
1979:        // TODO add your handling code here:
1980:        if (icmpMaskFlag1.isSelected() == true){
1981:            icmpMaskField1.setEditable(true);
1982:        }else if (icmpMaskFlag1.isSelected() == false){
1983:            icmpMaskField1.setEditable(false);
1984:        }
1985:    }//GEN-LAST:event_icmpMaskFlag1ActionPerformed
1986:
1987:    private void prefGatewayFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_prefGatewayFlag1ActionPerformed
1988:        // TODO add your handling code here:
1989:        if (prefGatewayFlag1.isSelected() == true){
1990:            prefGatewayField1.setEditable(true);
1991:        }else if (prefGatewayFlag1.isSelected() == false){
1992:            prefGatewayField1.setEditable(false);
1993:        }
1994:    }//GEN-LAST:event_prefGatewayFlag1ActionPerformed
1995:
1996:    private void icmpTypeFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpTypeFlag1ActionPerformed
1997:        // TODO add your handling code here:
1998:        if (icmpTypeFlag1.isSelected() == true){
1999:            icmpTypeField1.setEditable(true);
2000:        }else if (icmpTypeFlag1.isSelected() == false){
2001:            icmpTypeField1.setEditable(false);
2002:        }
2003:    }//GEN-LAST:event_icmpTypeFlag1ActionPerformed
2004:
2005:    private void icmpIDFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpIDFlag1ActionPerformed
2006:        // TODO add your handling code here:
2007:        if (icmpIDFlag1.isSelected() == true){
2008:            icmpIDField1.setEditable(true);
2009:        }else if (icmpIDFlag1.isSelected() == false){
2010:            icmpIDField1.setEditable(false);
2011:        }
2012:    }//GEN-LAST:event_icmpIDFlag1ActionPerformed
2013:
2014:    private void icmpCodeFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_icmpCodeFlag1ActionPerformed
2015:        // TODO add your handling code here:
2016:        if (icmpCodeFlag1.isSelected() == true){
2017:            icmpCodeField1.setEditable(true);
2018:        }else if (icmpCodeFlag1.isSelected() == false){
2019:            icmpCodeField1.setEditable(false);
2020:        }
2021:    }//GEN-LAST:event_icmpCodeFlag1ActionPerformed
2022:    /* END ICMP TAB BUTTON ACTIONS */
2023:    
2024:    /* START OF UDP TAB BUTTON ACTIONS */
2025:    private void dstMacFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dstMacFlag1ActionPerformed
2026:        // TODO add your handling code here:
2027:        if (dstMacFlag1.isSelected() == true){
2028:            dstMacField1.setEditable(true);
2029:        }else if (dstMacFlag1.isSelected() == false){
2030:            dstMacField1.setEditable(false);
2031:        }
2032:    }//GEN-LAST:event_dstMacFlag1ActionPerformed
2033:
2034:    private void srcMacFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_srcMacFlag1ActionPerformed
2035:        // TODO add your handling code here:
2036:        if (srcMacFlag1.isSelected() == true){
2037:            srcMacField1.setEditable(true);
2038:        }else if (srcMacFlag1.isSelected() == false){
2039:            srcMacField1.setEditable(false);
2040:        }
2041:    }//GEN-LAST:event_srcMacFlag1ActionPerformed
2042:
2043:    private void ethDevFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ethDevFlag1ActionPerformed
2044:        // TODO add your handling code here:
2045:        if (ethDevFlag1.isSelected() == true){
2046:            ethDevField1.setEditable(true);
2047:        }else if (ethDevFlag1.isSelected() == false){
2048:            ethDevField1.setEditable(false);
2049:        }
2050:    }//GEN-LAST:event_ethDevFlag1ActionPerformed
2051:
2052:    private void ipOptFileBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ipOptFileBox1ActionPerformed
2053:        // TODO add your handling code here:
2054:        if (ipOptFileBox1.isSelected() == true){
2055:            ipOptFileField1.setEditable(true);
2056:        }else if (ipOptFileBox1.isSelected() == false){
2057:            ipOptFileField1.setEditable(false);
2058:        }
2059:    }//GEN-LAST:event_ipOptFileBox1ActionPerformed
2060:
2061:    private void fragOffSetFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fragOffSetFlag1ActionPerformed
2062:        // TODO add your handling code here:
2063:        if (fragOffSetFlag1.isSelected() == true){
2064:            fragOffSetField1.setEditable(true);
2065:        }else if (fragOffSetFlag1.isSelected() == false){
2066:            fragOffSetField1.setEditable(false);
2067:        }
2068:    }//GEN-LAST:event_fragOffSetFlag1ActionPerformed
2069:
2070:    private void tosFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tosFlag1ActionPerformed
2071:        // TODO add your handling code here:
2072:        if (tosFlag1.isSelected() == true){
2073:            tosField1.setEditable(true);
2074:        }else if (tosFlag1.isSelected() == false){
2075:            tosField1.setEditable(false);
2076:        }
2077:    }//GEN-LAST:event_tosFlag1ActionPerformed
2078:
2079:    private void ttlFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ttlFlag1ActionPerformed
2080:        // TODO add your handling code here:
2081:        if (ttlFlag1.isSelected() == true){
2082:            ttlField1.setEditable(true);
2083:        }else if (ttlFlag1.isSelected() == false){
2084:            ttlField1.setEditable(false);
2085:        }
2086:    }//GEN-LAST:event_ttlFlag1ActionPerformed
2087:
2088:    private void ipIdFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ipIdFlag1ActionPerformed
2089:        // TODO add your handling code here:
2090:        if (ipIdFlag1.isSelected() == true){
2091:            ipIdField1.setEditable(true);
2092:        }else if (ipIdFlag1.isSelected() == false){
2093:            ipIdField1.setEditable(false);
2094:        }
2095:    }//GEN-LAST:event_ipIdFlag1ActionPerformed
2096:
2097:    private void dstIpFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dstIpFlag1ActionPerformed
2098:        // TODO add your handling code here:
2099:        if (dstIpFlag1.isSelected() == true){
2100:            dstIpField1.setEditable(true);
2101:        }else if (dstIpFlag1.isSelected() == false){
2102:            dstIpField1.setEditable(false);
2103:        }
2104:    }//GEN-LAST:event_dstIpFlag1ActionPerformed
2105:
2106:    private void srcIpFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_srcIpFlag1ActionPerformed
2107:        // TODO add your handling code here:
2108:        if (srcIpFlag1.isSelected() == true){
2109:            srcIpField1.setEditable(true);
2110:        }else if (srcIpFlag1.isSelected() == false){
2111:            srcIpField1.setEditable(false);
2112:        }
2113:    }//GEN-LAST:event_srcIpFlag1ActionPerformed
2114:
2115:    private void payloadBox2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_payloadBox2ActionPerformed
2116:        // TODO add your handling code here:
2117:        if (payloadBox2.isSelected() == true){
2118:            payloadField2.setEditable(true);
2119:        }else if (payloadBox2.isSelected() == false){
2120:            payloadField2.setEditable(false);
2121:        }
2122:    }//GEN-LAST:event_payloadBox2ActionPerformed
2123:
2124:    private void dstPrtFlag2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dstPrtFlag2ActionPerformed
2125:        // TODO add your handling code here:
2126:        if (dstPrtFlag2.isSelected() == true){
2127:            dstPrtField2.setEditable(true);
2128:        }else if (dstPrtFlag2.isSelected() == false){
2129:            dstPrtField2.setEditable(false);
2130:        }
2131:    }//GEN-LAST:event_dstPrtFlag2ActionPerformed
2132:
2133:    private void srcPrtFlag2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_srcPrtFlag2ActionPerformed
2134:        // TODO add your handling code here:
2135:        if (srcPrtFlag2.isSelected() == true){
2136:            srcPrtField2.setEditable(true);
2137:        }else if (srcPrtFlag2.isSelected() == false){
2138:            srcPrtField2.setEditable(false);
2139:        }
2140:    }//GEN-LAST:event_srcPrtFlag2ActionPerformed
2141:
2142:    
2143:    /* END UDP TAB BUTTON ACTIONS */
2144:    
2145:    
2146:    private void injectButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_injectButtonActionPerformed
2147:        // TODO add your handling code here:
2148:        if (tcpPanel.isShowing() == true){
2149:            System.out.println("tcp panel is active");
2150:            parseNemesisArgsTCP();
2151:            setArgsTCP();
2152:            injectPacket("tcp", nemesisArgs);
2153:            resetArgs();
2154:        } else if (udpPanel.isShowing() == true){
2155:            parseNemesisArgsUDP();
2156:            setArgsUDP();
2157:            injectPacket("udp", nemesisArgs);
2158:            resetArgs();
2159:        } else if (icmpPanel.isShowing() == true){
2160:            parseNemesisArgsICMP();
2161:            setArgsICMP();
2162:            injectPacket("icmp", nemesisArgs);
2163:            resetArgs();
2164:            
2165:        }
2166:        nemesisArgs = "";
2167:        //injectPacket();
2168:    }//GEN-LAST:event_injectButtonActionPerformed
2169:
2170:    
2171:    /* START TCP TAB BUTTON ACTIONS */
2172:    
2173:    
2174:    private void dstMacFlagActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dstMacFlagActionPerformed
2175:        // TODO add your handling code here:
2176:        if (dstMacFlag.isSelected() == true){
2177:            dstMacField.setEditable(true);
2178:        }else if (dstMacFlag.isSelected() == false){
2179:            dstMacField.setEditable(false);
2180:        }
2181:    }//GEN-LAST:event_dstMacFlagActionPerformed
2182:
2183:    private void srcMacFlagActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_srcMacFlagActionPerformed
2184:        // TODO add your handling code here:
2185:        if (srcMacFlag.isSelected() == true){
2186:            srcMacField.setEditable(true);
2187:        }else if (srcMacFlag.isSelected() == false){
2188:            srcMacField.setEditable(false);
2189:        }
2190:    }//GEN-LAST:event_srcMacFlagActionPerformed
2191:
2192:    private void ethDevFlagActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ethDevFlagActionPerformed
2193:        // TODO add your handling code here:
2194:        if (ethDevFlag.isSelected() == true){
2195:            ethDevField.setEditable(true);
2196:        }else if (ethDevFlag.isSelected() == false){
2197:            ethDevField.setEditable(false);
2198:        }
2199:    }//GEN-LAST:event_ethDevFlagActionPerformed
2200:
2201:    private void ipOptFileBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ipOptFileBoxActionPerformed
2202:        // TODO add your handling code here:
2203:        if (ipOptFileBox.isSelected() == true){
2204:            ipOptFileField.setEditable(true);
2205:        }else if (ipOptFileBox.isSelected() == false){
2206:            ipOptFileField.setEditable(false);
2207:        }
2208:    }//GEN-LAST:event_ipOptFileBoxActionPerformed
2209:
2210:    private void fragOffSetFlagActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fragOffSetFlagActionPerformed
2211:        // TODO add your handling code here:
2212:        if (fragOffSetFlag.isSelected() == true){
2213:            fragOffSetField.setEditable(true);
2214:        }else if (fragOffSetFlag.isSelected() == false){
2215:            fragOffSetField.setEditable(false);
2216:        }
2217:    }//GEN-LAST:event_fragOffSetFlagActionPerformed
2218:
2219:    private void tosFlagActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tosFlagActionPerformed
2220:        // TODO add your handling code here:
2221:        if (tosFlag.isSelected() == true){
2222:            tosField.setEditable(true);
2223:        }else if (tosFlag.isSelected() == false){
2224:            tosField.setEditable(false);
2225:        }
2226:    }//GEN-LAST:event_tosFlagActionPerformed
2227:
2228:    private void ttlFlagActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ttlFlagActionPerformed
2229:        // TODO add your handling code here:
2230:        if (ttlFlag.isSelected() == true){
2231:            ttlField.setEditable(true);
2232:        }else if (ttlFlag.isSelected() == false){
2233:            ttlField.setEditable(false);
2234:        }
2235:    }//GEN-LAST:event_ttlFlagActionPerformed
2236:
2237:    private void ipIdFlagActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ipIdFlagActionPerformed
2238:        // TODO add your handling code here:
2239:        if (ipIdFlag.isSelected() == true){
2240:            ipIdField.setEditable(true);
2241:        }else if (ipIdFlag.isSelected() == false){
2242:            ipIdField.setEditable(false);
2243:        }
2244:    }//GEN-LAST:event_ipIdFlagActionPerformed
2245:
2246:    private void dstIpFlagActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dstIpFlagActionPerformed
2247:        // TODO add your handling code here:
2248:        if (dstIpFlag.isSelected() == true){
2249:            dstIpField.setEditable(true);
2250:        }else if (dstIpFlag.isSelected() == false){
2251:            dstIpField.setEditable(false);
2252:        }
2253:    }//GEN-LAST:event_dstIpFlagActionPerformed
2254:
2255:    private void srcIpFlagActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_srcIpFlagActionPerformed
2256:        // TODO add your handling code here:
2257:        if (srcIpFlag.isSelected() == true){
2258:            srcIpField.setEditable(true);
2259:        }else if (srcIpFlag.isSelected() == false){
2260:            srcIpField.setEditable(false);
2261:        }
2262:    }//GEN-LAST:event_srcIpFlagActionPerformed
2263:
2264:    private void payloadBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_payloadBox1ActionPerformed
2265:        // TODO add your handling code here:
2266:        if (payloadBox1.isSelected() == true){
2267:            payloadField1.setEditable(true);
2268:        }else if (payloadBox1.isSelected() == false){
2269:            payloadField1.setEditable(false);
2270:        }
2271:    }//GEN-LAST:event_payloadBox1ActionPerformed
2272:
2273:    private void tcpOptBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tcpOptBox1ActionPerformed
2274:        // TODO add your handling code here:
2275:        if (tcpOptBox1.isSelected() == true){
2276:            tcpOptField1.setEditable(true);
2277:        }else if (tcpOptBox1.isSelected() == false){
2278:            tcpOptField1.setEditable(false);
2279:        }
2280:    }//GEN-LAST:event_tcpOptBox1ActionPerformed
2281:
2282:    private void urgOffFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_urgOffFlag1ActionPerformed
2283:        // TODO add your handling code here:
2284:        if (urgOffFlag1.isSelected() == true){
2285:            urgOffField1.setEditable(true);
2286:        }else if (urgOffFlag1.isSelected() == false){
2287:            urgOffField1.setEditable(false);
2288:        }
2289:    }//GEN-LAST:event_urgOffFlag1ActionPerformed
2290:
2291:    private void ackNumFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ackNumFlag1ActionPerformed
2292:        // TODO add your handling code here:
2293:        if (ackNumFlag1.isSelected() == true){
2294:            ackNumField1.setEditable(true);
2295:        }else if (ackNumFlag1.isSelected() == false){
2296:            ackNumField1.setEditable(false);
2297:        }
2298:    }//GEN-LAST:event_ackNumFlag1ActionPerformed
2299:
2300:    private void seqFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_seqFlag1ActionPerformed
2301:        // TODO add your handling code here:
2302:        if (seqFlag1.isSelected() == true){
2303:            seqField1.setEditable(true);
2304:        }else if (seqFlag1.isSelected() == false){
2305:            seqField1.setEditable(false);
2306:        }
2307:    }//GEN-LAST:event_seqFlag1ActionPerformed
2308:
2309:    private void windowFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_windowFlag1ActionPerformed
2310:        // TODO add your handling code here:
2311:        if (windowFlag1.isSelected() == true){
2312:            winSizeField1.setEditable(true);
2313:        }else if (windowFlag1.isSelected() == false){
2314:            winSizeField1.setEditable(false);
2315:        }
2316:    }//GEN-LAST:event_windowFlag1ActionPerformed
2317:
2318:    private void tcpFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tcpFlag1ActionPerformed
2319:        // TODO add your handling code here:
2320:        if (tcpFlag1.isSelected() == true){
2321:            tcpFlagsCBox1.setEnabled(true);
2322:        }else if (tcpFlag1.isSelected() == false){
2323:            tcpFlagsCBox1.setEnabled(false);
2324:        }
2325:    }//GEN-LAST:event_tcpFlag1ActionPerformed
2326:
2327:    private void dstPrtFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dstPrtFlag1ActionPerformed
2328:        // TODO add your handling code here:
2329:        if (dstPrtFlag1.isSelected() == true){
2330:            dstPrtField1.setEditable(true);
2331:        }else if (dstPrtFlag1.isSelected() == false){
2332:            dstPrtField1.setEditable(false);
2333:        }
2334:    }//GEN-LAST:event_dstPrtFlag1ActionPerformed
2335:
2336:    private void srcPrtFlag1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_srcPrtFlag1ActionPerformed
2337:        // TODO add your handling code here:
2338:        if (srcPrtFlag1.isSelected() == true){
2339:            srcPrtField1.setEditable(true);
2340:        }else if (srcPrtFlag1.isSelected() == false){
2341:            srcPrtField1.setEditable(false);
2342:        }
2343:    }//GEN-LAST:event_srcPrtFlag1ActionPerformed
2344:    
2345:    
2346:    /* END TCP TAB BUTTON ACTIONS*/
2347:    
2348:    /** Exit the Application */
2349:    private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm
2350:        System.exit(0);
2351:    }//GEN-LAST:event_exitForm
2352:    
2353:    /**
2354:     * just invokes a new jnmesis()
2355:     * @param args the command line arguments
2356:     */
2357:    public static void main(String args[]) {
2358:        new jnemesis().show();
2359:    }
2360:    
2361:        /**
2362:         * Will pop up the JFileChooser open dialog to let user pick the file for a payload
2363:         * or the varios option file fields.
2364:         * @return Full path and name of selected file
2365:         */
2366:
2367:    
2368:    public String getPayloadFile() {
2369:        int returnVal = fileChooser.showOpenDialog(jnemesis.this);
2370:
2371:        if (returnVal == JFileChooser.APPROVE_OPTION) {
2372:            File file = fileChooser.getSelectedFile();
2373:            System.out.println(file.getPath());
2374:            return(file.getPath()); 
2375:        } else {
2376:            /* if something goes insanly wrong return this text and report to me */
2377:            return("Bad monkey...no taco!!");
2378:        }
2379:    }
2380:    
2381:    
2382:    /**
2383:     * Parses all of the TCP arguments
2384:     */    
2385:    public void parseNemesisArgsTCP() {
2386:        // get source port
2387:        if (srcPrtFlag1.isSelected() == true && srcPrtField1.getText().length() > 0){
2388:            sourcePort = srcPrtField1.getText();
2389:        }
2390:        // get dest port
2391:        if (dstPrtFlag1.isSelected() == true && dstPrtField1.getText().length() > 0){
2392:            destinationPort = dstPrtField1.getText();
2393:        }
2394:        // get tcp flag
2395:        if (tcpFlag1.isSelected() == true && tcpFlagsCBox1.getSelectedIndex() != 0){
2396:            /* Get index of current selection parse through and assign right flag */
2397:            int index = tcpFlagsCBox1.getSelectedIndex();
2398:            if (index == 1)
2399:                tcpFlag = "-fS";
2400:            else if (index == 2)
2401:                tcpFlag = "-fA";
2402:            else if (index == 3)
2403:                tcpFlag = "-fR";
2404:            else if (index == 4)
2405:                tcpFlag = "-fP";
2406:            else if (index == 5)
2407:                tcpFlag = "-fF";
2408:        }
2409:        // get window size
2410:        if (windowFlag1.isSelected() == true && winSizeField1.getText().length() > 0){
2411:            windowSize = winSizeField1.getText();
2412:        }
2413:        // get ack seq num 
2414:        if (seqFlag1.isSelected() == true && seqField1.getText().length() > 0){
2415:            seqNumber = seqField1.getText();
2416:        }
2417:        // get ack number
2418:        if (ackNumFlag1.isSelected() == true && ackNumField1.getText().length() > 0){
2419:            ackNumber = ackNumField1.getText();
2420:        }
2421:        // get urg off set
2422:        if (urgOffFlag1.isSelected() == true && urgOffField1.getText().length() > 0){
2423:            upOffSet = urgOffField1.getText();
2424:        }
2425:        // get tcp opt file
2426:        if (tcpOptBox1.isSelected() == true && tcpOptField1.getText().length() > 0){
2427:            tcpOptionsFile = tcpOptField1.getText();
2428:        }
2429:        // get payload file
2430:        if (payloadBox1.isSelected() == true && payloadField1.getText().length() > 0){
2431:            payloadFile = payloadField1.getText();
2432:        }
2433:        // get src ip
2434:        if (srcIpFlag.isSelected() == true && srcIpField.getText().length() > 0){
2435:            sourceIp = srcIpField.getText();
2436:        }
2437:        // get dest ip
2438:        if (dstIpFlag.isSelected() == true && dstIpField.getText().length() > 0){
2439:            destinationIp = dstIpField.getText();
2440:        }
2441:        // get ipid
2442:        if (ipIdFlag.isSelected() == true && ipIdField.getText().length() > 0){
2443:            ipId = ipIdField.getText();
2444:        }
2445:        // get ttl
2446:        if (ttlFlag.isSelected() == true && ttlField.getText().length() > 0){
2447:            timeToLive = ttlField.getText();
2448:        }
2449:        // get tos 
2450:        if (tosFlag.isSelected() == true && tosField.getText().length() > 0){
2451:            tos = tosField.getText();
2452:        }
2453:        // get fragmentation of set
2454:        if (fragOffSetFlag.isSelected() == true && fragOffSetField.getText().length() > 0){
2455:            fragOffSet = fragOffSetField.getText();
2456:        }
2457:        // get ip options file
2458:        if (ipOptFileBox.isSelected() == true && ipOptFileField.getText().length() > 0){
2459:            ipOptionsFile = ipOptFileField.getText();
2460:        }
2461:        // get ethernet device to be used
2462:        if (ethDevFlag.isSelected() == true && ethDevField.getText().length() > 0){
2463:            ethernetDevice = ethDevField.getText();
2464:        }
2465:        // Get srouce mac address
2466:        if (srcMacFlag.isSelected() == true && srcMacField.getText().length() > 0){
2467:            sourceMacAddress = srcMacField.getText();
2468:        }
2469:        // Get destination Mac Address
2470:        if (dstMacFlag.isSelected() == true && dstMacField.getText().length() > 0){
2471:            destinationMacAddress = dstMacField.getText();
2472:        }
2473:    }
2474:    /**
2475:     * Parses all of the UDP arguments
2476:     */    
2477:    public void parseNemesisArgsUDP() {
2478:        // get source port
2479:        if (srcPrtFlag2.isSelected() == true && srcPrtField2.getText().length() > 0){
2480:            sourcePort = srcPrtField2.getText();
2481:        }
2482:        // get dest port
2483:        if (dstPrtFlag2.isSelected() == true && dstPrtField2.getText().length() > 0){
2484:            destinationPort = dstPrtField2.getText();
2485:        }
2486:        // get payload file
2487:        if (payloadBox2.isSelected() == true && payloadField2.getText().length() > 0){
2488:            payloadFile = payloadField2.getText();
2489:        }
2490:        // get src ip
2491:        if (srcIpFlag1.isSelected() == true && srcIpField1.getText().length() > 0){
2492:            sourceIp = srcIpField1.getText();
2493:        }
2494:        // get dest ip
2495:        if (dstIpFlag1.isSelected() == true && dstIpField1.getText().length() > 0){
2496:            destinationIp = dstIpField1.getText();
2497:        }
2498:        // get ipid
2499:        if (ipIdFlag1.isSelected() == true && ipIdField1.getText().length() > 0){
2500:            ipId = ipIdField1.getText();
2501:        }
2502:        // get ttl
2503:        if (ttlFlag1.isSelected() == true && ttlField1.getText().length() > 0){
2504:            timeToLive = ttlField1.getText();
2505:        }
2506:        // get tos 
2507:        if (tosFlag1.isSelected() == true && tosField1.getText().length() > 0){
2508:            tos = tosField1.getText();
2509:        }
2510:        // get fragmentation of set
2511:        if (fragOffSetFlag1.isSelected() == true && fragOffSetField1.getText().length() > 0){
2512:            fragOffSet = fragOffSetField1.getText();
2513:        }
2514:        // get ip options file
2515:        if (ipOptFileBox1.isSelected() == true && ipOptFileField1.getText().length() > 0){
2516:            ipOptionsFile = ipOptFileField1.getText();
2517:        }
2518:        // get ethernet device to be used
2519:        if (ethDevFlag1.isSelected() == true && ethDevField1.getText().length() > 0){
2520:            ethernetDevice = ethDevField1.getText();
2521:        }
2522:        // Get srouce mac address
2523:        if (srcMacFlag1.isSelected() == true && srcMacField1.getText().length() > 0){
2524:            sourceMacAddress = srcMacField1.getText();
2525:        }
2526:        // Get destination Mac Address
2527:        if (dstMacFlag1.isSelected() == true && dstMacField1.getText().length() > 0){
2528:            destinationMacAddress = dstMacField1.getText();
2529:        }
2530:    }
2531:    /**
2532:     * Parses all of the ICMP arguments
2533:     */    
2534:    public void parseNemesisArgsICMP() {
2535:        if(icmpCodeFlag1.isSelected() == true && icmpCodeField1.getText().length() > 0){
2536:            icmpCode = icmpCodeField1.getText();
2537:        }
2538:        if(icmpIDFlag1.isSelected() == true && icmpIDField1.getText().length() > 0){
2539:            icmpID = icmpIDField1.getText();
2540:        }
2541:        if(icmpTypeFlag1.isSelected() == true && icmpTypeField1.getText().length() > 0){
2542:            icmpType = icmpTypeField1.getText();
2543:        }
2544:        if(prefGatewayFlag1.isSelected() == true && prefGatewayField1.getText().length() > 0){
2545:            icmpprefGateway = prefGatewayField1.getText();
2546:        }
2547:        if(icmpMaskFlag1.isSelected() == true && icmpMaskField1.getText().length() > 0){
2548:            icmpMask = icmpMaskField1.getText();
2549:        }
2550:        if (icmpModeFlag1.isSelected() == true && icmpModeCBox1.getSelectedIndex() != 0){
2551:            /* Get index of current selection parse through and assign right flag */
2552:            int index = icmpModeCBox1.getSelectedIndex();
2553:            if (index == 1)
2554:                icmpMode = "-qE";
2555:            else if (index == 2)
2556:                icmpMode = "-qM";
2557:            else if (index == 3)
2558:                icmpMode = "-qU";
2559:            else if (index == 4)
2560:                icmpMode = "-qX";
2561:            else if (index == 5)
2562:                icmpMode = "-qR";
2563:            else if (index == 6)
2564:                icmpMode = "-qT";
2565:        }
2566:        if(icmpSeqNumFlag1.isSelected() == true && icmpSeqNumField1.getText().length() > 0){
2567:            icmpSeqNum = icmpSeqNumField1.getText();
2568:        }
2569:        if(payloadBox3.isSelected() == true && payloadField3.getText().length() > 0){
2570:            icmpPayloadFile = payloadField3.getText();
2571:        }
2572:        if(srcIpFlag2.isSelected() == true && srcIpField2.getText().length() > 0){
2573:            icmpsrcIp2 = srcIpField2.getText();
2574:        }
2575:        if(dstIpFlag2.isSelected() == true && dstIpField2.getText().length() > 0){
2576:            icmpdstIp2 = dstIpField2.getText();
2577:        }
2578:        if(ipIdFlag2.isSelected() == true && ipIdField2.getText().length() > 0){
2579:            icmpipId2 = ipIdField2.getText();
2580:        }
2581:        if(ttlFlag2.isSelected() == true && ttlField2.getText().length() > 0){
2582:            icmpttl2 = ttlField2.getText();
2583:        }
2584:        if(tosFlag2.isSelected() == true && tosField2.getText().length() > 0){
2585:            icmptos2 = tosField2.getText();
2586:        }
2587:        if(fragOffSetFlag2.isSelected() == true && fragOffSetField2.getText().length() > 0){
2588:            icmpfragOffSet2 = fragOffSetField2.getText();
2589:        }
2590:        if(ethDevFlag2.isSelected() == true && ethDevField2.getText().length() > 0){
2591:            icmpethDev2 = ethDevField2.getText();
2592:        }
2593:        if(srcMacFlag2.isSelected() == true && srcMacField2.getText().length() > 0){
2594:            icmpsrcMac2 = srcMacField2.getText();
2595:        }
2596:        if(dstMacFlag2.isSelected() == true && dstMacField2.getText().length() > 0){
2597:            icmpdstMac2 = dstMacField2.getText();
2598:        }
2599:        if(icmpTRRTTFlag1.isSelected() == true && icmpTRRTTField1.getText().length() > 0){
2600:            icmpTRRTT = icmpTRRTTField1.getText();
2601:        }
2602:        if(icmpTRTTFlag1.isSelected() == true && icmpTRTTField1.getText().length() > 0){
2603:            icmpTRTT = icmpTRTTField1.getText();
2604:        }
2605:        if(icmpTRRRTFlag1.isSelected() == true && icmpTRRRTField1.getText().length() > 0){
2606:            icmpTRRRT = icmpTRRRTField1.getText();
2607:        }
2608:        if(icmpDstIPFlag1.isSelected() == true && icmpDstIPField1.getText().length() > 0){
2609:            icmpDstIP = icmpDstIPField1.getText();
2610:        }
2611:        if(icmpSrcIPFlag1.isSelected() == true && icmpSrcIPField1.getText().length() > 0){
2612:            icmpSrcIP = icmpSrcIPField1.getText();
2613:        }
2614:        if(icmpFragOpsFlag1.isSelected() == true && icmpFragOpsField1.getText().length() > 0){
2615:            icmpFragOps = icmpFragOpsField1.getText();
2616:        } 
2617:        if(icmpIPTosFlag1.isSelected() == true && icmpIPTosField1.getText().length() > 0){
2618:            icmpIPTos = icmpIPTosField1.getText();
2619:        } 
2620:        if(icmpIPTtlFlag1.isSelected() == true && icmpIPTtlField1.getText().length() > 0){
2621:            icmpIPTtl = icmpIPTtlField1.getText();
2622:        } 
2623:        if (icmpIPOptsBox.isSelected() == true && icmpIPOptsPayloadField.getText().length() > 0){
2624:            icmpipOptFile1 = ipOptFileField1.getText();
2625:        }
2626:        if (ipOptFileBox2.isSelected() == true && ipOptFileField2.getText().length() > 0){
2627:            icmpipOptFile1 = icmpIPOptsPayloadField.getText();
2628:        }
2629:        if (icmpFragOpsFlag1.isSelected() == true && icmpFragOpsField1.getText().length() > 0){
2630:            icmpFragOps = icmpFragOpsField1.getText();
2631:        }
2632:        if (icmpIPTosFlag1.isSelected() == true && icmpIPTosField1.getText().length() > 0){
2633:            icmpIPTos = icmpIPTosField1.getText();
2634:        }
2635:        if (icmpIPTtlFlag1.isSelected() == true && icmpIPTtlField1.getText().length() > 0){
2636:            icmpIPTtl = icmpIPTtlField1.getText();
2637:        }
2638:    
2639:        
2640:        
2641:    }
2642:    
2643:    private void setArgsTCP() {
2644:        if (sourcePort.equals("default") != true)
2645:        {
2646:            nemesisArgs = nemesisArgs + " -x " + sourcePort;
2647:        }
2648:        if (destinationPort.equals("default") != true)
2649:        {
2650:            nemesisArgs = nemesisArgs + " -y " + destinationPort;
2651:        }
2652:        if (tcpFlag.equals("default") != true)
2653:        {
2654:            nemesisArgs = nemesisArgs + " " + tcpFlag;
2655:        }
2656:        if (windowSize.equals("default") != true)
2657:        {
2658:            nemesisArgs = nemesisArgs + " -w " + windowSize;
2659:        }
2660:        if (seqNumber.equals("default") != true)
2661:        {
2662:            nemesisArgs = nemesisArgs + " -s " + seqNumber;
2663:        }
2664:        if (ackNumber.equals("default") != true)
2665:        {
2666:            nemesisArgs = nemesisArgs + " -a " + ackNumber;
2667:        }
2668:        if (upOffSet.equals("default") != true)
2669:        {
2670:            nemesisArgs = nemesisArgs + " -u " + upOffSet;
2671:        }
2672:        if (tcpOptionsFile.equals("default") != true)
2673:        {
2674:            nemesisArgs = nemesisArgs + " -o " + tcpOptionsFile;
2675:        }
2676:        if (payloadFile.equals("default") != true)
2677:        {
2678:            nemesisArgs = nemesisArgs + " -P " + payloadFile;
2679:        }
2680:        if (sourceIp.equals("default") != true)
2681:        {
2682:            nemesisArgs = nemesisArgs + " -S " + sourceIp;
2683:        }
2684:        if (destinationIp.equals("default") != true)
2685:        {
2686:            nemesisArgs = nemesisArgs + " -D " + destinationIp;
2687:        }
2688:        if (ipId.equals("default") != true)
2689:        {
2690:            nemesisArgs = nemesisArgs + " -I " + ipId;
2691:        }
2692:        if (timeToLive.equals("default") != true)
2693:        {
2694:            nemesisArgs = nemesisArgs + " -T " + timeToLive;
2695:        }
2696:        if (tos.equals("default") != true)
2697:        {
2698:            nemesisArgs = nemesisArgs + " -t " + tos;
2699:        }
2700:        if (fragOffSet.equals("default") != true)
2701:        {
2702:            nemesisArgs = nemesisArgs + " -F " + fragOffSet;
2703:        }
2704:        if (ipOptionsFile.equals("default") != true)
2705:        {
2706:            nemesisArgs = nemesisArgs + " -O " + ipOptionsFile;
2707:        }
2708:        if (ethernetDevice.equals("default") != true)
2709:        {
2710:            nemesisArgs = nemesisArgs + " -d " + ethernetDevice;
2711:        }
2712:        if (sourceMacAddress.equals("default") != true)
2713:        {
2714:            nemesisArgs = nemesisArgs + " -H " + sourceMacAddress;
2715:        }
2716:        if (destinationMacAddress.equals("default") != true)
2717:        {
2718:            nemesisArgs = nemesisArgs + " -M " + destinationMacAddress;
2719:        }
2720:    }
2721:    private void setArgsUDP() {
2722:        if (sourcePort.equals("default") != true)
2723:        {
2724:            nemesisArgs = nemesisArgs + " -x " + sourcePort;
2725:        }
2726:        if (destinationPort.equals("default") != true)
2727:        {
2728:            nemesisArgs = nemesisArgs + " -y " + destinationPort;
2729:        }
2730:        if (payloadFile.equals("default") != true)
2731:        {
2732:            nemesisArgs = nemesisArgs + " -P " + payloadFile;
2733:        }
2734:        if (sourceIp.equals("default") != true)
2735:        {
2736:            nemesisArgs = nemesisArgs + " -S " + sourceIp;
2737:        }
2738:        if (destinationIp.equals("default") != true)
2739:        {
2740:            nemesisArgs = nemesisArgs + " -D " + destinationIp;
2741:        }
2742:        if (ipId.equals("default") != true)
2743:        {
2744:            nemesisArgs = nemesisArgs + " -I " + ipId;
2745:        }
2746:        if (timeToLive.equals("default") != true)
2747:        {
2748:            nemesisArgs = nemesisArgs + " -T " + timeToLive;
2749:        }
2750:        if (tos.equals("default") != true)
2751:        {
2752:            nemesisArgs = nemesisArgs + " -t " + tos;
2753:        }
2754:        if (fragOffSet.equals("default") != true)
2755:        {
2756:            nemesisArgs = nemesisArgs + " -F " + fragOffSet;
2757:        }
2758:        if (ipOptionsFile.equals("default") != true)
2759:        {
2760:            nemesisArgs = nemesisArgs + " -O " + ipOptionsFile;
2761:        }
2762:        if (ethernetDevice.equals("default") != true)
2763:        {
2764:            nemesisArgs = nemesisArgs + " -d " + ethernetDevice;
2765:        }
2766:        if (sourceMacAddress.equals("default") != true)
2767:        {
2768:            nemesisArgs = nemesisArgs + " -H " + sourceMacAddress;
2769:        }
2770:        if (destinationMacAddress.equals("default") != true)
2771:        {
2772:            nemesisArgs = nemesisArgs + " -M " + destinationMacAddress;
2773:        }
2774:    }
2775:    private void setArgsICMP(){
2776:        if (icmpCode.equals("default") != true)
2777:        {
2778:            nemesisArgs = nemesisArgs + " -c " + icmpCode;
2779:        }
2780:        if (icmpID.equals("default") != true)
2781:        {
2782:            nemesisArgs = nemesisArgs + " -e " + icmpID;
2783:        }
2784:        if (icmpType.equals("default") != true)
2785:        {
2786:            nemesisArgs = nemesisArgs + " -i " + icmpType;
2787:        }
2788:        if (icmpprefGateway.equals("default") != true)
2789:        {
2790:            nemesisArgs = nemesisArgs + " -G " + icmpprefGateway;
2791:        }
2792:        if (icmpMask.equals("default") != true)
2793:        {
2794:            nemesisArgs = nemesisArgs + " -m " + icmpMask;
2795:        }
2796:        if (icmpMode.equals("default") != true)
2797:        {
2798:            nemesisArgs = nemesisArgs + " " + icmpMode;
2799:        }
2800:        if (icmpSeqNum.equals("default") != true)
2801:        {
2802:            nemesisArgs = nemesisArgs + " -s " + icmpSeqNum;
2803:        }
2804:        if (icmpPayloadFile.equals("default") != true)
2805:        {
2806:            nemesisArgs = nemesisArgs + " -P " + icmpPayloadFile;
2807:        }
2808:        if (icmpSrcIP.equals("default") != true)
2809:        {
2810:            nemesisArgs = nemesisArgs + " -B " + icmpSrcIP;
2811:        }
2812:        if (icmpDstIP.equals("default") != true)
2813:        {
2814:            nemesisArgs = nemesisArgs + " -b " + icmpDstIP;
2815:        }
2816:        if (icmptos.equals("default") != true)
2817:        {
2818:            nemesisArgs = nemesisArgs + " -j " + icmptos;
2819:        }
2820:        if (icmpttl.equals("default") != true)
2821:        {
2822:            nemesisArgs = nemesisArgs + " -J " + icmpttl;
2823:        }
2824:        if (icmpTRRTT.equals("default") != true)
2825:        {
2826:            nemesisArgs = nemesisArgs + " -a " + icmpTRRTT;
2827:        }
2828:        if (icmpTRTT.equals("default") != true)
2829:        {
2830:            nemesisArgs = nemesisArgs + " -o " + icmpTRTT;
2831:        }
2832:        if (icmpTRRRT.equals("default") != true)
2833:        {
2834:            nemesisArgs = nemesisArgs + " -r " + icmpTRRRT;
2835:        }
2836:        if (icmpdstMac2.equals("default") != true)
2837:        {
2838:            nemesisArgs = nemesisArgs + " -M " + icmpdstMac2;
2839:        }
2840:        if (icmpsrcMac2.equals("default") != true)
2841:        {
2842:            nemesisArgs = nemesisArgs + " -H " + icmpsrcMac2;
2843:        }
2844:        if (icmpethDev2.equals("default") != true)
2845:        {
2846:            nemesisArgs = nemesisArgs + " -d " + icmpethDev2;
2847:        }
2848:        if (icmpfragOffSet2.equals("default") != true)
2849:        {
2850:            nemesisArgs = nemesisArgs + " -F " + icmpfragOffSet2;
2851:        }
2852:        if (icmptos2.equals("default") != true)
2853:        {
2854:            nemesisArgs = nemesisArgs + " -t " + icmptos2;
2855:        }
2856:        if (icmpttl2.equals("default") != true)
2857:        {
2858:            nemesisArgs = nemesisArgs + " -T " + icmpttl2;
2859:        }
2860:        if (icmpipId2.equals("default") != true)
2861:        {
2862:            nemesisArgs = nemesisArgs + " -I " + icmpipId2;
2863:        }
2864:        if (icmpdstIp2.equals("default") != true)
2865:        {
2866:            nemesisArgs = nemesisArgs + " -D " + icmpdstIp2;
2867:        }
2868:        if (icmpsrcIp2.equals("default") != true)
2869:        {
2870:            nemesisArgs = nemesisArgs + " -S " + icmpsrcIp2;
2871:        }
2872:        if(icmpipOptFile1.equals("default") != true)
2873:        {
2874:            nemesisArgs = nemesisArgs + " -P " + icmpipOptFile1;
2875:        }
2876:        if(icmpFragOps.equals("default") != true)
2877:        {
2878:            nemesisArgs = nemesisArgs + " -f " + icmpFragOps;
2879:        }
2880:        if (icmpIPTos.equals("default") != true)
2881:        {
2882:            nemesisArgs = nemesisArgs + " -j " + icmpIPTos;
2883:        }
2884:        if (icmpIPTtl.equals("default") != true)
2885:        {
2886:            nemesisArgs = nemesisArgs + " -J " + icmpIPTtl;
2887:        }
2888:        
2889:    }
2890:    
2891:    private void resetArgs() {
2892:        sourcePort= "default"; 
2893:        destinationPort= "default";
2894:        tcpFlag= "default";
2895:        windowSize= "default";
2896:        seqNumber= "default";
2897:        ackNumber= "default";
2898:        upOffSet= "default";
2899:        tcpOptionsFile= "default";
2900:        payloadFile= "default";
2901:        sourceIp= "default";
2902:        destinationIp= "default";
2903:        ipId= "default";
2904:        timeToLive= "default";
2905:        tos= "default";
2906:        fragOffSet= "default";
2907:        ipOptionsFile= "default";
2908:        ethernetDevice= "default";
2909:        sourceMacAddress= "default";
2910:        destinationMacAddress= "default";
2911:        icmpipOptFile1= "default"; //ipOptField1
2912:        icmpipOptFile2= "default"; //ipOptField2
2913:        icmpIPTtl= "default"; //icmpIPTtlField1
2914:        icmpIPTos= "default"; //icmpIPTosField1
2915:        icmpFragOps= "default"; //icmpFragOpsField1
2916:        icmpSrcIP= "default"; //icmpSrcIPField1
2917:        icmpDstIP= "default"; //icmpDstIPField1
2918:        icmpTRRRT= "default"; //icmpTRRRTField1
2919:        icmpTRTT= "default"; //icmpTRTTField1
2920:        icmpTRRTT= "default"; //icmpTRRTTField1
2921:        icmpdstMac= "default"; //dstMacField2
2922:        icmpsrcMac= "default"; //srcMacField2
2923:        icmpethDev= "default"; //ethDevField2
2924:        icmpfragOffSet= "default"; //fragOffSetField2
2925:        icmptos= "default"; //tosField2
2926:        icmpttl= "default"; //ttlField2
2927:        icmpipId= "default"; //ipIdField2
2928:        icmpdstIp2= "default"; //dstIpField2
2929:        icmpsrcIp2= "default"; //srcIpField2
2930:        icmpPayloadFile= "default"; //payloadField3
2931:        icmpSeqNum= "default"; //icmpSeqNumField1
2932:        icmpMode= "default"; //icmpModeCBox1
2933:        icmpMask= "default"; //icmpMaskField1
2934:        icmpprefGateway= "default"; //prefGatewayField1
2935:        icmpType= "default"; //icmpTypeField1
2936:        icmpID= "default"; //icmpIDField1
2937:        icmpCode= "default"; //icmpCodeField1
2938:        icmpdstMac2= "default";
2939:        icmpsrcMac2= "default";
2940:        icmpethDev2= "default";
2941:        icmpfragOffSet2= "default";
2942:        icmptos2= "default";
2943:        icmpttl2= "default";
2944:        icmpipId2= "default";
2945:    }
2946:    
2947:    /**
2948:     * puts packet in the queue (appends to JList)
2949:     * @param injectionType one of 3 values:
2950:     *
2951:     * tcp
2952:     * udp
2953:     * icmp
2954:     */    
2955:    public void storePacket(String injectionType) {
2956:       
2957:        String command = new String(injectionType + " -vv" + nemesisArgs);
2958:        queuedPackets.addElement(command);
2959:        currentQueue++;
2960:    }
2961:    
2962:    private void injectPacket(String injectionType, String Args) {
2963:        DataInputStream is = null;
2964:        try {
2965:            Runtime r = Runtime.getRuntime();
2966:            String command = new String(nemesisPath + " " + injectionType + " -vv" + Args);
2967:            //System.out.println("command: "+command);  //for debug purposes
2968:            Process p = r.exec(command);
2969:            is = new DataInputStream(p.getInputStream());
2970:            p.waitFor(); 
2971:            int nemesisExitCode = p.exitValue();
2972:            if ( nemesisExitCode == 0){
2973:                statusField.setText("Injected Packet Successfully!!");
2974:            }
2975:            else {
2976:                statusField.setText("Packet Injection Failed!!");
2977:            }
2978:             
2979:        }
2980:        catch (Exception ex) {
2981:        }
2982:        /* Now catch the result and sent it to the info pane */
2983:        String outPut = "Nemesis output\n-------------------"; 
2984:        try {String responseLine; while ((responseLine = is.readLine()) != null) 
2985:            {
2986:                outPut = outPut + "\n" + responseLine.trim();
2987:                injectionResult.setText(outPut);
2988:            }
2989:            /* Clean up everything, close iostream */
2990:            is.close();
2991:        } catch (IOException e) {
2992:            System.err.println("Couldn't get I/O for the connection");
2993:        }
2994:    }
2995:    
2996:    private void injectQueued(String packet){
2997:        DataInputStream is = null;
2998:        try {
2999:            Runtime r = Runtime.getRuntime();
3000:            String command = new String(nemesisPath + " " + packet);
3001:            //System.out.println("command: "+command);  //for debug purposes
3002:            Process p = r.exec(command);
3003:            is = new DataInputStream(p.getInputStream());
3004:            p.waitFor(); 
3005:            int nemesisExitCode = p.exitValue();
3006:            if ( nemesisExitCode == 0){
3007:                statusField.setText("Injected Packet Successfully!!");
3008:            }
3009:            else {
3010:                statusField.setText("Packet Injection Failed!!");
3011:            }
3012:             
3013:        }
3014:        catch (Exception ex) {
3015:        }
3016:        /* Now catch the result and sent it to the info pane */
3017:        String outPut = "Nemesis output\n-------------------"; 
3018:        try {String responseLine; while ((responseLine = is.readLine()) != null) 
3019:            {
3020:                outPut = outPut + "\n" + responseLine.trim();
3021:                injectionResult.setText(outPut);
3022:            }
3023:            /* Clean up everything, close iostream */
3024:            is.close();
3025:        } catch (IOException e) {
3026:            System.err.println("Couldn't get I/O for the connection");
3027:        }
3028:    }
3029:    
3030:    private void loadConfig() {
3031:        Properties defaultSettings = new Properties();
3032:        defaultSettings.put("NEMESIS", "/usr/local/bin/nemesis");
3033:        defaultSettings.put("INSTALLDIR", "/opt/jnemesis");
3034:        defaultSettings.put("QUEUESAVE", "/opt/jnemesis");
3035:        defaultSettings.put("QUEUESHELL", "/bin/sh");
3036:        
3037:        Properties settings = new Properties(defaultSettings);
3038:        try
3039:        {
3040:            FileInputStream configFile = new FileInputStream(System.getProperty("user.home")+"/.jnemesis");
3041:            settings.load(configFile);
3042:        }
3043:        catch (FileNotFoundException e) {}
3044:        catch (IOException e) {}
3045:        nemesisPath = settings.getProperty("NEMESIS");
3046:        installDir = settings.getProperty("INSTALLDIR");
3047:        queueSave = settings.getProperty("QUEUESAVE");
3048:        queueShell = settings.getProperty("QUEUESHELL");
3049:
3050:    }
3051:    
3052:    
3053:    // Start of custom variable declarations
3054:    DefaultListModel queuedPackets = new DefaultListModel();
3055:    private String nemesisPath;
3056:    private String installDir;
3057:    private String queueSave;
3058:    private String queueShell;
3059:    
3060:    //Start of icmp interface var's
3061:    private String icmpipOptFile1= "default"; //ipOptField1
3062:    private String icmpipOptFile2= "default"; //ipOptField2
3063:    private String icmpIPTtl= "default"; //icmpIPTtlField1
3064:    private String icmpIPTos= "default"; //icmpIPTosField1
3065:    private String icmpFragOps= "default"; //icmpFragOpsField1
3066:    private String icmpSrcIP= "default"; //icmpSrcIPField1
3067:    private String icmpDstIP= "default"; //icmpDstIPField1
3068:    private String icmpTRRRT= "default"; //icmpTRRRTField1
3069:    private String icmpTRTT= "default"; //icmpTRTTField1
3070:    private String icmpTRRTT= "default"; //icmpTRRTTField1
3071:    private String icmpdstMac= "default"; //dstMacField2
3072:    private String icmpsrcMac= "default"; //srcMacField2
3073:    private String icmpethDev= "default"; //ethDevField2
3074:    private String icmpfragOffSet= "default"; //fragOffSetField2
3075:    private String icmptos= "default"; //tosField2
3076:    private String icmpttl= "default"; //ttlField2
3077:    private String icmpipId= "default"; //ipIdField2
3078:    private String icmpdstIp2= "default"; //dstIpField2
3079:    private String icmpsrcIp2= "default"; //srcIpField2
3080:    private String icmpPayloadFile= "default"; //payloadField3
3081:    private String icmpSeqNum= "default"; //icmpSeqNumField1
3082:    private String icmpMode= "default"; //icmpModeCBox1
3083:    private String icmpMask= "default"; //icmpMaskField1
3084:    private String icmpprefGateway= "default"; //prefGatewayField1
3085:    private String icmpType= "default"; //icmpTypeField1
3086:    private String icmpID= "default"; //icmpIDField1
3087:    private String icmpCode= "default"; //icmpCodeField1
3088:    private String icmpdstMac2= "default";
3089:    private String icmpsrcMac2= "default";
3090:    private String icmpethDev2= "default";
3091:    private String icmpfragOffSet2= "default";
3092:    private String icmptos2= "default";
3093:    private String icmpttl2= "default";
3094:    private String icmpipId2= "default";
3095:    //end icmp interface vars
3096:    
3097:    //start tcp/udp shared interface vars
3098:    private int currentQueue = 0;
3099:    private String nemesisArgs="";
3100:    private String sourcePort= "default"; 
3101:    private String destinationPort= "default";
3102:    private String tcpFlag= "default";
3103:    private String windowSize= "default";
3104:    private String seqNumber= "default";
3105:    private String ackNumber= "default";
3106:    private String upOffSet= "default";
3107:    private String tcpOptionsFile= "default";
3108:    private String payloadFile= "default";
3109:    private String sourceIp= "default";
3110:    private String destinationIp= "default";
3111:    private String ipId= "default";
3112:    private String timeToLive= "default";
3113:    private String tos= "default";
3114:    private String fragOffSet= "default";
3115:    private String ipOptionsFile= "default";
3116:    private String ethernetDevice= "default";
3117:    private String sourceMacAddress= "default";
3118:    private String destinationMacAddress= "default";
3119:    //End of custom variables
3120:    
3121:    
3122:    // Variables declaration - do not modify//GEN-BEGIN:variables
3123:    private javax.swing.JTextField ackNumField1;
3124:    private javax.swing.JRadioButton ackNumFlag1;
3125:    private javax.swing.JPanel controlPanel;
3126:    private javax.swing.JTextField dstIpField;
3127:    private javax.swing.JTextField dstIpField1;
3128:    private javax.swing.JTextField dstIpField2;
3129:    private javax.swing.JRadioButton dstIpFlag;
3130:    private javax.swing.JRadioButton dstIpFlag1;
3131:    private javax.swing.JRadioButton dstIpFlag2;
3132:    private javax.swing.JTextField dstMacField;
3133:    private javax.swing.JTextField dstMacField1;
3134:    private javax.swing.JTextField dstMacField2;
3135:    private javax.swing.JRadioButton dstMacFlag;
3136:    private javax.swing.JRadioButton dstMacFlag1;
3137:    private javax.swing.JRadioButton dstMacFlag2;
3138:    private javax.swing.JTextField dstPrtField1;
3139:    private javax.swing.JTextField dstPrtField2;
3140:    private javax.swing.JRadioButton dstPrtFlag1;
3141:    private javax.swing.JRadioButton dstPrtFlag2;
3142:    private javax.swing.JTextField ethDevField;
3143:    private javax.swing.JTextField ethDevField1;
3144:    private javax.swing.JTextField ethDevField2;
3145:    private javax.swing.JRadioButton ethDevFlag;
3146:    private javax.swing.JRadioButton ethDevFlag1;
3147:    private javax.swing.JRadioButton ethDevFlag2;
3148:    private javax.swing.JFileChooser fileChooser;
3149:    private javax.swing.JTextField fragOffSetField;
3150:    private javax.swing.JTextField fragOffSetField1;
3151:    private javax.swing.JTextField fragOffSetField2;
3152:    private javax.swing.JRadioButton fragOffSetFlag;
3153:    private javax.swing.JRadioButton fragOffSetFlag1;
3154:    private javax.swing.JRadioButton fragOffSetFlag2;
3155:    private javax.swing.JTabbedPane help;
3156:    private javax.swing.JTextField icmpCodeField1;
3157:    private javax.swing.JRadioButton icmpCodeFlag1;
3158:    private javax.swing.JTextField icmpDstIPField1;
3159:    private javax.swing.JRadioButton icmpDstIPFlag1;
3160:    private javax.swing.JTextField icmpFragOpsField1;
3161:    private javax.swing.JRadioButton icmpFragOpsFlag1;
3162:    private javax.swing.JEditorPane icmpHelp;
3163:    private javax.swing.JTextField icmpIDField1;
3164:    private javax.swing.JRadioButton icmpIDFlag1;
3165:    private javax.swing.JCheckBox icmpIPOptsBox;
3166:    private javax.swing.JTextField icmpIPOptsPayloadField;
3167:    private javax.swing.JTextField icmpIPTosField1;
3168:    private javax.swing.JRadioButton icmpIPTosFlag1;
3169:    private javax.swing.JTextField icmpIPTtlField1;
3170:    private javax.swing.JRadioButton icmpIPTtlFlag1;
3171:    private javax.swing.JTextField icmpMaskField1;
3172:    private javax.swing.JRadioButton icmpMaskFlag1;
3173:    private javax.swing.JComboBox icmpModeCBox1;
3174:    private javax.swing.JRadioButton icmpModeFlag1;
3175:    private javax.swing.JPanel icmpPanel;
3176:    private javax.swing.JTextField icmpSeqNumField1;
3177:    private javax.swing.JRadioButton icmpSeqNumFlag1;
3178:    private javax.swing.JTextField icmpSrcIPField1;
3179:    private javax.swing.JRadioButton icmpSrcIPFlag1;
3180:    private javax.swing.JTextField icmpTRRRTField1;
3181:    private javax.swing.JRadioButton icmpTRRRTFlag1;
3182:    private javax.swing.JTextField icmpTRRTTField1;
3183:    private javax.swing.JRadioButton icmpTRRTTFlag1;
3184:    private javax.swing.JTextField icmpTRTTField1;
3185:    private javax.swing.JRadioButton icmpTRTTFlag1;
3186:    private javax.swing.JTextField icmpTypeField1;
3187:    private javax.swing.JRadioButton icmpTypeFlag1;
3188:    private javax.swing.JButton injectAll;
3189:    private javax.swing.JButton injectButton;
3190:    private javax.swing.JButton injectNext;
3191:    private javax.swing.JTextArea injectionResult;
3192:    private javax.swing.JTextField ipIdField;
3193:    private javax.swing.JTextField ipIdField1;
3194:    private javax.swing.JTextField ipIdField2;
3195:    private javax.swing.JRadioButton ipIdFlag;
3196:    private javax.swing.JRadioButton ipIdFlag1;
3197:    private javax.swing.JRadioButton ipIdFlag2;
3198:    private javax.swing.JCheckBox ipOptFileBox;
3199:    private javax.swing.JCheckBox ipOptFileBox1;
3200:    private javax.swing.JCheckBox ipOptFileBox2;
3201:    private javax.swing.JTextField ipOptFileField;
3202:    private javax.swing.JTextField ipOptFileField1;
3203:    private javax.swing.JTextField ipOptFileField2;
3204:    private javax.swing.JButton ipOptionsFileChooser;
3205:    private javax.swing.JButton ipOptionsFileChooser1;
3206:    private javax.swing.JButton ipOptionsFileChooser2;
3207:    private javax.swing.JLabel jLabel1;
3208:    private javax.swing.JLabel jLabel2;
3209:    private javax.swing.JLabel jLabel3;
3210:    private javax.swing.JLabel jLabel4;
3211:    private javax.swing.JLabel jLabel5;
3212:    private javax.swing.JPanel jPanel1;
3213:    private javax.swing.JPanel jPanel10;
3214:    private javax.swing.JPanel jPanel11;
3215:    private javax.swing.JPanel jPanel12;
3216:    private javax.swing.JPanel jPanel13;
3217:    private javax.swing.JPanel jPanel14;
3218:    private javax.swing.JPanel jPanel15;
3219:    private javax.swing.JPanel jPanel16;
3220:    private javax.swing.JPanel jPanel17;
3221:    private javax.swing.JPanel jPanel2;
3222:    private javax.swing.JPanel jPanel3;
3223:    private javax.swing.JPanel jPanel4;
3224:    private javax.swing.JPanel jPanel5;
3225:    private javax.swing.JPanel jPanel6;
3226:    private javax.swing.JPanel jPanel7;
3227:    private javax.swing.JPanel jPanel8;
3228:    private javax.swing.JPanel jPanel9;
3229:    private javax.swing.JScrollPane jScrollPane1;
3230:    private javax.swing.JScrollPane jScrollPane2;
3231:    private javax.swing.JScrollPane jScrollPane3;
3232:    private javax.swing.JScrollPane jScrollPane4;
3233:    private javax.swing.JTabbedPane jTabbedPane2;
3234:    private javax.swing.JTabbedPane jtabbedPane1;
3235:    private javax.swing.JPanel masterPanel;
3236:    private javax.swing.JCheckBox payloadBox1;
3237:    private javax.swing.JCheckBox payloadBox2;
3238:    private javax.swing.JCheckBox payloadBox3;
3239:    private javax.swing.JTextField payloadField1;
3240:    private javax.swing.JTextField payloadField2;
3241:    private javax.swing.JTextField payloadField3;
3242:    private javax.swing.JButton payloadFileChooser;
3243:    private javax.swing.JButton payloadFileChooser1;
3244:    private javax.swing.JButton payloadFileChooser2;
3245:    private javax.swing.JButton payloadFileChooser3;
3246:    private javax.swing.JTextField prefGatewayField1;
3247:    private javax.swing.JRadioButton prefGatewayFlag1;
3248:    private javax.swing.JButton queuePacket;
3249:    private javax.swing.JPanel queuePanel;
3250:    private javax.swing.JList queuedList;
3251:    private javax.swing.JButton rmAll;
3252:    private javax.swing.JButton rmSelected;
3253:    private javax.swing.JButton saveQueue;
3254:    private javax.swing.JTextField seqField1;
3255:    private javax.swing.JRadioButton seqFlag1;
3256:    private javax.swing.JTextField srcIpField;
3257:    private javax.swing.JTextField srcIpField1;
3258:    private javax.swing.JTextField srcIpField2;
3259:    private javax.swing.JRadioButton srcIpFlag;
3260:    private javax.swing.JRadioButton srcIpFlag1;
3261:    private javax.swing.JRadioButton srcIpFlag2;
3262:    private javax.swing.JTextField srcMacField;
3263:    private javax.swing.JTextField srcMacField1;
3264:    private javax.swing.JTextField srcMacField2;
3265:    private javax.swing.JRadioButton srcMacFlag;
3266:    private javax.swing.JRadioButton srcMacFlag1;
3267:    private javax.swing.JRadioButton srcMacFlag2;
3268:    private javax.swing.JTextField srcPrtField1;
3269:    private javax.swing.JTextField srcPrtField2;
3270:    private javax.swing.JRadioButton srcPrtFlag1;
3271:    private javax.swing.JRadioButton srcPrtFlag2;
3272:    private javax.swing.JTextField statusField;
3273:    private javax.swing.JScrollPane statusPane;
3274:    private javax.swing.JRadioButton tcpFlag1;
3275:    private javax.swing.JComboBox tcpFlagsCBox1;
3276:    private javax.swing.JEditorPane tcpHelp;
3277:    private javax.swing.JButton tcpOpFileChooser1;
3278:    private javax.swing.JCheckBox tcpOptBox1;
3279:    private javax.swing.JTextField tcpOptField1;
3280:    private javax.swing.JPanel tcpPanel;
3281:    private javax.swing.JTextField tosField;
3282:    private javax.swing.JTextField tosField1;
3283:    private javax.swing.JTextField tosField2;
3284:    private javax.swing.JRadioButton tosFlag;
3285:    private javax.swing.JRadioButton tosFlag1;
3286:    private javax.swing.JRadioButton tosFlag2;
3287:    private javax.swing.JTextField ttlField;
3288:    private javax.swing.JTextField ttlField1;
3289:    private javax.swing.JTextField ttlField2;
3290:    private javax.swing.JRadioButton ttlFlag;
3291:    private javax.swing.JRadioButton ttlFlag1;
3292:    private javax.swing.JRadioButton ttlFlag2;
3293:    private javax.swing.JEditorPane udpHelp;
3294:    private javax.swing.JPanel udpPanel;
3295:    private javax.swing.JTextField urgOffField1;
3296:    private javax.swing.JRadioButton urgOffFlag1;
3297:    private javax.swing.JTextField winSizeField1;
3298:    private javax.swing.JRadioButton windowFlag1;
3299:    // End of variables declaration//GEN-END:variables
3300:    
3301:}