def initComponents(self): self.setLayout(GridBagLayout()) gbc = GridBagConstraints() gbc.anchor = GridBagConstraints.NORTHWEST gbc.gridx = 0 gbc.gridy = 0 descriptionLabel = JLabel("FEA - Credit Card module") self.add(descriptionLabel, gbc) self.cbGenerateExcel = JCheckBox("Generate Excel format report (more detailed)", actionPerformed=self.cbGenerateExcelActionPerformed) self.cbGenerateExcel.setSelected(True) gbc.gridy = 2 self.add(self.cbGenerateExcel, gbc) self.cbGenerateCSV = JCheckBox("Generate CSV format report (plaintext)", actionPerformed=self.cbGenerateCSVActionPerformed) self.cbGenerateCSV.setSelected(True) gbc.gridy = 3 self.add(self.cbGenerateCSV, gbc) self.cbRemoveFalsePositives = JCheckBox("Remove False Positives from Autopsy", actionPerformed=self.cbRemoveFalsePositivesActionPerformed) self.cbRemoveFalsePositives.setSelected(True) gbc.gridy = 4 self.cbRemoveFalsePositives.setEnabled(False) self.add(self.cbRemoveFalsePositives, gbc)
def __init__(self, plugin): super(EmulatorComponentProvider, self).__init__(plugin.getTool(), "Emulator", "emulate_function") self.plugin = plugin self.panel = JPanel(GridBagLayout()) c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.gridy = 0 c.gridx = 0 c.weightx = 0.8 self.panel_label = JLabel("") self.panel.add(self.panel_label, c) c.gridx = 1 c.weightx = 0.2 self.panel_btn = JButton("Start") self.panel_btn.addActionListener(EmulatorBtnAction(self)) self.panel.add(self.panel_btn, c) c.gridy = 1 c.gridx = 0 c.gridwidth = 2 self.panel_input = JTextField() self.panel_input.addActionListener(EmulatorInputAction(self)) self.panel.add(self.panel_input, c) self.setStatus("Stopped")
def addComponents( self, container ) : container.setLayout( GridBagLayout() ) c = GridBagConstraints() c.gridx = 0 # first column c.gridy = 0 # first row container.add( JButton( '1' ), c ) c = GridBagConstraints() c.gridx = 1 # second column c.gridy = 1 # second row container.add( JButton( '2' ), c ) c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.gridx = 2 # third column c.gridy = 2 # third row # c.ipadx = 64 # specify (don't default) width c.weightx = 0.0 c.gridwidth = 3 container.add( JButton( '3 being the third number' ), c ) c = GridBagConstraints() c.gridx = 1 # second column c.gridy = 3 # forth row c.ipady = 32 # make this one taller container.add( JButton( 'Four shalt thou not count' ), c ) c = GridBagConstraints() c.gridx = 1 # second column c.gridy = 4 # fifth row c.gridwidth = 3 # make this one 3 columns wide container.add( JButton( 'Five is right out' ), c )
def __init__(self): # set up the layout self.__component = JPanel(GridBagLayout()) self.__image = JLabel() self.__album = JLabel() self.__artist = JLabel() self.__application = None self.__image.setVerticalAlignment(SwingConstants.TOP) self.__album.setVerticalAlignment(SwingConstants.TOP) self.__artist.setVerticalAlignment(SwingConstants.TOP) gbc = GridBagConstraints() gbc.fill = GridBagConstraints.VERTICAL gbc.anchor = GridBagConstraints.NORTHWEST gbc.gridx = 0 gbc.gridy = 0 gbc.weighty = 2 gbc.gridheight = 2 self.__component.add(self.__image, gbc) gbc.fill = GridBagConstraints.HORIZONTAL gbc.anchor = GridBagConstraints.NORTHWEST gbc.gridx = 1 gbc.gridy = 0 gbc.gridheight = 1 gbc.weighty = 0 gbc.insets = Insets(0, 10, 0, 10) self.__component.add(self.__album, gbc) gbc.fill = GridBagConstraints.BOTH gbc.anchor = GridBagConstraints.NORTHWEST gbc.gridx = 1 gbc.gridy = 1 gbc.weightx = 2 gbc.weighty = 2 gbc.gridheight = 1 self.__component.add(self.__artist, gbc)
def addComponents(self, container): container.setLayout(GridBagLayout()) names = '1,2,3 being the third number'.split(',') for col in range(len(names)): c = GridBagConstraints() c.gridx = col # gridx is the grid column c.gridy = col # gridy is the grid row # container.add(JButton(names[col]), c) c = GridBagConstraints() c.gridx = 1 c.gridy = 3 # put this one on the next row c.ipady = 32 # make this one taller container.add(JButton('Four shalt thou not count'), c)
def initializeDisplay(self, queries, swing): """ queries: A list of the fasts files to be processed. swing: If true then updates about progress will be displayed in a swing window, otherwise they will be written to stdout. Initializes the interface for telling the user about progress in the pipeline. Queries is used to count the number of queries the pipeline will process and to size the swing display(if it is used) so that text isn't cutoff at the edge of the window. The swing display is setup if swing is true. """ self.numJobs = len(queries) if swing: self.frame = JFrame("Neofelis") self.frame.addWindowListener(PipelineWindowAdapter(self)) contentPane = JPanel(GridBagLayout()) self.frame.setContentPane(contentPane) self.globalLabel = JLabel(max(queries, key=len)) self.globalProgress = JProgressBar(0, self.numJobs) self.currentLabel = JLabel(max(self.messages, key=len)) self.currentProgress = JProgressBar(0, len(self.messages)) self.doneButton = JButton(DoneAction(self.frame)) self.doneButton.setEnabled(False) constraints = GridBagConstraints() constraints.gridx, constraints.gridy = 0, 0 constraints.gridwidth, constraints.gridheight = 1, 1 constraints.weightx = 1 constraints.fill = GridBagConstraints.HORIZONTAL contentPane.add(self.globalLabel, constraints) constraints.gridy = 1 contentPane.add(self.globalProgress, constraints) constraints.gridy = 2 contentPane.add(self.currentLabel, constraints) constraints.gridy = 3 contentPane.add(self.currentProgress, constraints) constraints.gridy = 4 constraints.weightx = 0 constraints.fill = GridBagConstraints.NONE constraints.anchor = GridBagConstraints.LINE_END contentPane.add(self.doneButton, constraints) self.frame.pack() self.frame.setResizable(False) self.globalLabel.setText(" ") self.currentLabel.setText(" ") self.frame.setLocationRelativeTo(None) self.frame.setVisible(True)
def initializeDisplay(self, queries, swing): """ queries: A list of the fasts files to be processed. swing: If true then updates about progress will be displayed in a swing window, otherwise they will be written to stdout. Initializes the interface for telling the user about progress in the pipeline. Queries is used to count the number of queries the pipeline will process and to size the swing display(if it is used) so that text isn't cutoff at the edge of the window. The swing display is setup if swing is true. """ self.numJobs = len(queries) if swing: self.frame = JFrame("Neofelis") self.frame.addWindowListener(PipelineWindowAdapter(self)) contentPane = JPanel(GridBagLayout()) self.frame.setContentPane(contentPane) self.globalLabel = JLabel(max(queries, key = len)) self.globalProgress = JProgressBar(0, self.numJobs) self.currentLabel = JLabel(max(self.messages, key = len)) self.currentProgress = JProgressBar(0, len(self.messages)) self.doneButton = JButton(DoneAction(self.frame)) self.doneButton.setEnabled(False) constraints = GridBagConstraints() constraints.gridx, constraints.gridy = 0, 0 constraints.gridwidth, constraints.gridheight = 1, 1 constraints.weightx = 1 constraints.fill = GridBagConstraints.HORIZONTAL contentPane.add(self.globalLabel, constraints) constraints.gridy = 1 contentPane.add(self.globalProgress, constraints) constraints.gridy = 2 contentPane.add(self.currentLabel, constraints) constraints.gridy = 3 contentPane.add(self.currentProgress, constraints) constraints.gridy = 4 constraints.weightx = 0 constraints.fill = GridBagConstraints.NONE constraints.anchor = GridBagConstraints.LINE_END contentPane.add(self.doneButton, constraints) self.frame.pack() self.frame.setResizable(False) self.globalLabel.setText(" ") self.currentLabel.setText(" ") self.frame.setLocationRelativeTo(None) self.frame.setVisible(True)
def p_build_ui(self, event): """ Adds a list of checkboxes, one for each loaded plugin to the Selct plugins window """ if not self.loaded_p_list: self.update_scroll("[!!] No plugins loaded!") return scroll_pane = JScrollPane() scroll_pane.setPreferredSize(Dimension(200, 250)) check_frame = JPanel(GridBagLayout()) constraints = GridBagConstraints() constraints.fill = GridBagConstraints.HORIZONTAL constraints.gridy = 0 constraints.anchor = GridBagConstraints.FIRST_LINE_START for plug in self.loaded_p_list: check_frame.add(JCheckBox(plug.get_name(), plug.enabled, actionPerformed=self.update_box), constraints) constraints.gridy += 1 vport = JViewport() vport.setView(check_frame) scroll_pane.setViewport(vport) self.window.contentPane.add(scroll_pane) self.window.pack() self.window.setVisible(True)
def addStatusLabel(self, msg): gbc = GridBagConstraints() gbc.anchor = GridBagConstraints.NORTHWEST gbc.gridx = 0 gbc.gridy = 7 lab = JLabel(msg) self.add(lab, gbc)
def createEditorComponent(self, properties): p = JPanel(GridBagLayout()) p.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3)) gbc = GridBagConstraints() gbc.gridx = 0 gbc.gridy = 0 gbc.weightx = 0.0 gbc.weighty = 0.0 gbc.fill = GridBagConstraints.HORIZONTAL gbc.insets = Insets(3, 3, 3, 3) p.add(JLabel("Prompt:"), gbc) gbc.gridx = 1 editor = NodePropertiesDialog.createTextArea(properties, self.PROMPT) p.add(editor, gbc) gbc.gridx, gbc.gridy = 1, 0 p.add( NodePropertiesDialog.createCheckBox(properties, self.WAIT, "Wait until done"), gbc) jtp = JTabbedPane() jtp.addTab("Output", p) return jtp
def add(parent, child, gridx=0, gridy=0, anchor=GC.NORTHWEST, fill=GC.NONE, weightx=0.0, weighty=0.0, gridwidth=1): c = GC() c.gridx = gridx c.gridy = gridy c.anchor = anchor c.fill = fill c.weightx = weightx c.weighty = weighty c.gridwidth = gridwidth """ # Same, more flexible, less verbose: BUT FAILS at parent, child args kv = locals() # dict of local variables including the function arguments c = GC() for key, value in kv.iteritems(): setattr(c, key, value) """ # parent.getLayout().setConstraints(child, c) parent.add(child)
def __createDropDownConstraints(self): constr = GridBagConstraints() constr.fill = GridBagConstraints.HORIZONTAL constr.weighty = 1 constr.gridwidth = 4 constr.gridx = 0 constr.gridy = 0 return constr
def create_gui(): global dropdown, current_file frame = JFrame('', defaultCloseOperation = JFrame.DISPOSE_ON_CLOSE, size = (400, 150)); frame.setBounds(350,350,400,150); container_panel = JPanel(GridBagLayout()); c = GridBagConstraints(); dropdown = JComboBox(list(img_paths.keys())); c.fill = GridBagConstraints.HORIZONTAL; c.gridx = 0; c.gridy = 0; c.weightx = 0.5; c.gridwidth = 3; container_panel.add(dropdown, c); add_file_button = JButton('<html>Add Image/File</html>', actionPerformed=select_file); c.fill = GridBagConstraints.HORIZONTAL; c.gridx = 3; c.gridy = 0; c.weightx = 0.5; c.gridwidth = 1; container_panel.add(add_file_button, c); process_file_button = JButton('<html>Process Selected Image</html>', actionPerformed=process_current_img); c.fill = GridBagConstraints.HORIZONTAL; c.gridx = 0; c.gridy = 1; c.weightx = 0.5; c.gridwidth = 2; container_panel.add(process_file_button, c); process_all_button = JButton('<html>Process Entire Stack</html>', actionPerformed=process_stack); c.fill = GridBagConstraints.HORIZONTAL; c.gridx = 2; c.gridy = 1; c.weightx = 0.5; c.gridwidth = 2; container_panel.add(process_all_button, c); current_file = dropdown.getSelectedItem(); frame.add(container_panel); frame.visible = True;
def __setupLayout(self): self.setLayout(GridBagLayout()) constr = GridBagConstraints() constr.weighty = 1 constr.weightx = 1 constr.gridx = 0 constr.gridy = 1 constr.fill = GridBagConstraints.BOTH return constr
def __createRadioConstraints(self, mode): constr = GridBagConstraints() constr.fill = GridBagConstraints.HORIZONTAL constr.weighty = 1 constr.weightx = 1 if mode == 'cases': constr.gridx = 2 elif mode == 'commands': constr.gridx = 3 constr.gridy = 1 return constr
def __createTableConstraints(self): constr = GridBagConstraints() constr.fill = GridBagConstraints.BOTH constr.weighty = 1000 constr.weightx = 2 constr.gridwidth = 4 constr.gridx = 0 constr.gridy = 2 return constr
def addSigningKeyTextArea(self): self._signingKeyTextArea = JTextArea() self._signingKeyTextArea.setColumns(50) self._signingKeyTextArea.setRows(10) self._signingKeyScrollPane = JScrollPane(self._signingKeyTextArea) c = GridBagConstraints() c.gridx = 1 c.gridy = 6 c.anchor = GridBagConstraints.LINE_START self._configurationPanel.add(self._signingKeyScrollPane,c)
def __fillQuestions(self): panel = JPanel() panel.setLayout(GridBagLayout()) panel.setBorder(None) c = GridBagConstraints() c.gridx = 0 c.gridy = 0 c.weightx = 1.0 c.fill = GridBagConstraints.HORIZONTAL c.anchor = GridBagConstraints.PAGE_START line = 0 for question in self.test.getQuestions(): c.gridy = line panel.add(question.getPanel().asJComponent(),c) line += 1 scrollPanel = JScrollPane(panel) scrollPanel.setBorder(None) self.questionsContainer.setLayout(BorderLayout()) self.questionsContainer.add(scrollPanel, BorderLayout.CENTER)
def _new_grid_bag(gridx, gridy, gridwidth=1): """Creates a new GridBagConstraints""" g = GridBagConstraints() g.gridx = gridx g.gridy = gridy g.gridwidth = gridwidth g.fill = GridBagConstraints.BOTH g.insets = Insets(2, 2, 5, 5) return g
def _new_grid_bag(gridx, gridy, gridwidth=1): """Creates a new GridBagConstraints""" g = GridBagConstraints() g.gridx = gridx g.gridy = gridy g.gridwidth = gridwidth g.fill = GridBagConstraints.BOTH g.insets = Insets(2,2,5,5) return g
def createAndShowGUI(): # Create the GUI and show it. As with all GUI code, this must run # on the event-dispatching thread. frame = JFrame("MAE ") frame.setSize(1024, 768) panel= JPanel() panel.setLayout(GridBagLayout()) #Create and set up the content pane. psimures= SimoutPanel() psimures.setOpaque(True) c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 1 c.gridx = 0 c.gridy = 0 panel.add(psimures, c); pmeasure= MeasPanel() pmeasure.setOpaque(True) c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 1 c.gridx = 0 c.gridy = 1 panel.add(pmeasure, c); preport = ReportPanel() preport.setOpaque(True) c = GridBagConstraints() c.fill = GridBagConstraints.VERTICAL c.weighty = 1 c.gridx = 1 c.gridy = 0 c.gridheight= 2 panel.add(preport,c) # show the GUI frame.add(panel) # frame.add(pmeasure) # frame.add(preport) frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE) frame.setVisible(True)
def _constructResultsPanel(self, insets): resultsPanel = JPanel(GridBagLayout()) self._progressBar = JProgressBar() self._progressBar.setStringPainted(True) self._progressBar.setMinimum(0) progressBarContraints = GridBagConstraints() progressBarContraints.gridx = 0 progressBarContraints.gridy = 0 progressBarContraints.fill = GridBagConstraints.HORIZONTAL resultsPanel.add(self._progressBar, progressBarContraints) self._resultsTableModel = ResultsTableModel(COLUMNS, 0) resultsTable = JTable(self._resultsTableModel) resultsTable.setAutoCreateRowSorter(True) cellRenderer = ColoredTableCellRenderer() for index in [5, 6, 7, 8, 9]: column = resultsTable.columnModel.getColumn(index) column.cellRenderer = cellRenderer resultsTable.getColumnModel().getColumn(0).setPreferredWidth(99999999) resultsTable.getColumnModel().getColumn(1).setMinWidth(160) resultsTable.getColumnModel().getColumn(2).setMinWidth(100) resultsTable.getColumnModel().getColumn(3).setMinWidth(80) resultsTable.getColumnModel().getColumn(4).setMinWidth(80) resultsTable.getColumnModel().getColumn(5).setMinWidth(110) resultsTable.getColumnModel().getColumn(6).setMinWidth(110) resultsTable.getColumnModel().getColumn(7).setMinWidth(90) resultsTable.getColumnModel().getColumn(8).setMinWidth(110) resultsTable.getColumnModel().getColumn(9).setMinWidth(110) resultsTable.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS) resultsScrollPane = JScrollPane(resultsTable) resultsScrollPaneConstraints = GridBagConstraints() resultsScrollPaneConstraints.gridx = 0 resultsScrollPaneConstraints.gridy = 1 resultsScrollPaneConstraints.weightx = 1 resultsScrollPaneConstraints.weighty = 1 resultsScrollPaneConstraints.fill = GridBagConstraints.BOTH resultsPanel.add(resultsScrollPane, resultsScrollPaneConstraints) return resultsPanel
def initComponents(self): self.setLayout(GridBagLayout()) gc = GridBagConstraints() gc.weightx = 1 gc.weighty = 1 # First Row gc.gridy = 0 gc.weightx = 1 gc.weighty = 0.1 gc.gridx = 0 gc.fill = GridBagConstraints.NONE gc.anchor = GridBagConstraints.LINE_END gc.insets = Insets(0, 0, 0, 5) self.add(self.usernameLabel, gc) gc.gridx = 1 gc.anchor = GridBagConstraints.LINE_START gc.insets = Insets(0, 0, 0, 0) self.add(self.usernameField, gc) # Second Row gc.gridy += 1 gc.weightx = 1 gc.weighty = 0.1 gc.gridx = 0 gc.anchor = GridBagConstraints.LINE_END gc.insets = Insets(0, 0, 0, 5) self.add(self.superPassLabel, gc) gc.gridx = 1 gc.anchor = GridBagConstraints.LINE_START gc.insets = Insets(0, 0, 0, 0) self.add(self.superPassField, gc) #Next Row gc.gridy += 1 gc.weightx = 1 gc.weighty = 2.0 gc.gridx = 1 gc.anchor = GridBagConstraints.FIRST_LINE_START self.add(self.deleteAdminBtn, gc) innerBorder = BorderFactory.createTitledBorder('Delete Admin') outerBorder = BorderFactory.createEmptyBorder(5, 5, 5, 5) self.setBorder( BorderFactory.createCompoundBorder(outerBorder, innerBorder))
def __init__(self): self.frame = JFrame('Hello, Jython!', defaultCloseOperation=JFrame.EXIT_ON_CLOSE, size=(400, 600)) bag_layout = GridBagLayout() self.frame.layout = bag_layout grid_constraints = GridBagConstraints() format_1_string_label = JLabel("Format 1 string:") grid_constraints.weightx = 0.1 grid_constraints.weighty = 0.1 grid_constraints.gridy = 0 grid_constraints.fill = GridBagConstraints.NONE self._add_component(format_1_string_label, bag_layout, grid_constraints) self.input_textbox = JTextArea() grid_constraints.weightx = 1 grid_constraints.weighty = 1 grid_constraints.gridy = 1 grid_constraints.fill = GridBagConstraints.BOTH input_scroll_pane = JScrollPane(self.input_textbox) input_scroll_pane.verticalScrollBarPolicy = ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS self._add_component(input_scroll_pane, bag_layout, grid_constraints) output_string_label = JLabel("Output:") grid_constraints.weightx = 0.1 grid_constraints.weighty = 0.1 grid_constraints.gridy = 2 grid_constraints.fill = GridBagConstraints.NONE self._add_component(output_string_label, bag_layout, grid_constraints) self.output_textbox = JTextArea() grid_constraints.weightx = 1 grid_constraints.weighty = 1 grid_constraints.gridy = 3 grid_constraints.fill = GridBagConstraints.BOTH self.output_textbox.editable = False output_scroll_pane = JScrollPane(self.output_textbox) output_scroll_pane.verticalScrollBarPolicy = ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS self._add_component(output_scroll_pane, bag_layout, grid_constraints)
def __init__(self): self.setLayout(GridBagLayout()) shrinkX = JButton("shrinkX") shrinkX.actionPerformed = lambda event : rescaleLayout(0.5, 1) constr = GridBagConstraints() constr.gridx = 0 constr.gridy = 0 self.add(shrinkX, constr) growX = JButton("growX") growX.actionPerformed = lambda event : rescaleLayout(1.5, 1) constr = GridBagConstraints() constr.gridx = 2 constr.gridy = 0 self.add(growX, constr) shrinkY = JButton("shrinkY") shrinkY.actionPerformed = lambda event : rescaleLayout(1, 0.5) constr = GridBagConstraints() constr.gridx = 0 constr.gridy = 2 self.add(shrinkY, constr) growY = JButton("growY") growY.actionPerformed = lambda event : rescaleLayout(1, 1.5) constr = GridBagConstraints() constr.gridx = 2 constr.gridy = 2 self.add(growY, constr) centerB = JButton("center") centerB.actionPerformed = lambda event : center() constr = GridBagConstraints() constr.gridx = 1 constr.gridy = 1 self.add(centerB, constr) ui.dock(self)
def __init__(self): self.setLayout(GridBagLayout()) shrinkX = JButton("shrinkX") shrinkX.actionPerformed = lambda event: rescaleLayout(0.5, 1) constr = GridBagConstraints() constr.gridx = 0 constr.gridy = 0 self.add(shrinkX, constr) growX = JButton("growX") growX.actionPerformed = lambda event: rescaleLayout(1.5, 1) constr = GridBagConstraints() constr.gridx = 2 constr.gridy = 0 self.add(growX, constr) shrinkY = JButton("shrinkY") shrinkY.actionPerformed = lambda event: rescaleLayout(1, 0.5) constr = GridBagConstraints() constr.gridx = 0 constr.gridy = 2 self.add(shrinkY, constr) growY = JButton("growY") growY.actionPerformed = lambda event: rescaleLayout(1, 1.5) constr = GridBagConstraints() constr.gridx = 2 constr.gridy = 2 self.add(growY, constr) centerB = JButton("center") centerB.actionPerformed = lambda event: center() constr = GridBagConstraints() constr.gridx = 1 constr.gridy = 1 self.add(centerB, constr) ui.dock(self)
def initComponents(self): self.setLayout(GridBagLayout()) gbc = GridBagConstraints() gbc.anchor = GridBagConstraints.NORTHWEST gbc.gridx = 0 gbc.gridy = 0 descriptionLabel = JLabel("FEA - BitCoin Validation module") self.add(descriptionLabel, gbc) tlHitlist = JLabel("Base list of hashes to analyze: ") gbc.gridy = 1 self.add(tlHitlist, gbc) self.tbHitlist = JTextField("testlist", 20) self.tbHitlist.addActionListener(self.tbHitlistActionPerformed) gbc.gridx = 1 self.add(self.tbHitlist, gbc) gbc.gridx = 0 self.cbBlockchainCheck = JCheckBox( "Query Blockchain.info", actionPerformed=self.cbBlockchainCheckActionPerformed) self.cbBlockchainCheck.setSelected(True) gbc.gridy = 2 self.add(self.cbBlockchainCheck, gbc) tlBCMaxHits = JLabel( "Timeout (in seconds) between calls to Blockchain.info: ") gbc.gridy = 3 self.add(tlBCMaxHits, gbc) self.tbMaxBCHits = JTextField("5", 5) self.tbMaxBCHits.addActionListener(self.tbMaxBCHitsActionPerformed) gbc.gridx = 1 self.add(self.tbMaxBCHits, gbc)
def compose_ui(self, components): panel = JPanel() panel.setLayout(GridBagLayout()) constraints= GridBagConstraints() constraints.fill = GridBagConstraints.HORIZONTAL constraints.insets = Insets(2, 1, 2, 1) for i in components: for j in components[i]: constraints.gridy, constraints.gridx = i, j constraints.gridwidth = components[i][j]['width'] if type(components[i][j]) == dict and 'width' in components[i][j] else 1 constraints.gridheight = components[i][j]['height'] if type(components[i][j]) == dict and 'height' in components[i][j] else 1 item = components[i][j]['item'] if type(components[i][j]) == dict and 'item' in components[i][j] else components[i][j] panel.add(item, constraints) return panel
def getGridBagConstraints(game,node): c = GridBagConstraints() for str in node.getAttribute("constraints").split(","): a = str.split(":") if a[0]=="fill": c.fill = int(a[1]) elif a[0]=="gridwidth": c.gridwidth = int(a[1]) elif a[0]=="gridheight": c.gridheight = int(a[1]) elif a[0]=="gridx": c.gridx = int(a[1]) elif a[0]=="gridy": c.gridy = int(a[1]) elif a[0]=="weightx": c.weightx = int(a[1]) elif a[0]=="weighty": c.weighty = int(a[1]) else: print a[0]+"was not found" return c
def __init__(self, view, sys): JDialog.__init__(self, view, jEdit.getProperty("jython.pathhandler.title")) self.sys = sys content = self.contentPane content.layout = BorderLayout() upperPanel = JPanel(BorderLayout()) leftPanel = JPanel(BorderLayout(), border = \ BorderFactory.createTitledBorder(jEdit.getProperty("jython.pathhandler.pathborder"))) self.model = DefaultListModel() for s in sys.path: self.model.addElement(s) self.pathlist = JList( self.model, selectionMode=ListSelectionModel.SINGLE_SELECTION) leftPanel.add(JScrollPane(self.pathlist)) rightPanel = JPanel(GridBagLayout()) constraints = GridBagConstraints() constraints.insets = Insets(5, 5, 5, 5) constraints.gridy = GridBagConstraints.RELATIVE constraints.gridx = 0 buttons = [("Plus.png", "New...", self.new), \ ("ButtonProperties.png", "Edit...", self.edit), ("Minus.png", "Remove", self.remove), \ ("ArrowU.png", "Move Up", self.up), \ ("ArrowD.png", "Move down", self.down)] for (i, t, a) in buttons: rightPanel.add(JButton(icon = GUIUtilities.loadIcon(i), \ toolTipText=t, actionPerformed=a), constraints) upperPanel.add(leftPanel, BorderLayout.CENTER) upperPanel.add(rightPanel, BorderLayout.EAST) content.add(upperPanel, BorderLayout.CENTER) lowerPanel = JPanel(FlowLayout(FlowLayout.RIGHT)) self.saveAsk = JCheckBox(jEdit.getProperty("options.jython.saveJythonPathTitle"), \ selected = jEdit.getBooleanProperty("options.jython.saveJythonPath"), actionPerformed = self.saveAsk) ok = JButton("Ok", actionPerformed=self.__ok) lowerPanel.add(self.saveAsk) lowerPanel.add(ok) self.rootPane.defaultButton = ok lowerPanel.add(JButton("Cancel", actionPerformed=self.__cancel)) content.add(lowerPanel, BorderLayout.SOUTH)
def initComponents(self): self.setLayout(GridBagLayout()) gc = GridBagConstraints() gc.weightx = 1 gc.weighty = 1 # First Row gc.gridy = 0 gc.weightx = 1 gc.weighty = 0.1 gc.gridx = 0 gc.fill = GridBagConstraints.NONE gc.anchor = GridBagConstraints.LINE_END gc.insets = Insets(0, 0, 0, 5) self.add(self.vehicleLabel, gc) gc.gridx = 1 gc.anchor = GridBagConstraints.LINE_START gc.insets = Insets(0, 0, 0, 0) self.add(self.vehicleField, gc) #Next Row gc.gridy += 1 gc.weightx = 1 gc.weighty = 2.0 gc.gridx = 1 gc.anchor = GridBagConstraints.FIRST_LINE_START self.add(self.bypassBtn, gc) innerBorder = BorderFactory.createTitledBorder('Emergency Bypass') outerBorder = BorderFactory.createEmptyBorder(5, 5, 5, 5) self.setBorder( BorderFactory.createCompoundBorder(outerBorder, innerBorder))
def __init__(self, callbacks, parent): # Initialze self stuff self._callbacks = callbacks self.config = {} self.ext_stats = {} self.url_reqs = [] self.parse_files = False self.tab = JPanel(GridBagLayout()) self.view_port_text = JTextArea("===SpyDir===") self.delim = JTextField(30) self.ext_white_list = JTextField(30) # I'm not sure if these fields are necessary still # why not just use Burp func to handle this? # leaving them in case I need it for the HTTP handler later # self.cookies = JTextField(30) # self.headers = JTextField(30) self.url = JTextField(30) self.parent_window = parent self.plugins = {} self.loaded_p_list = set() self.loaded_plugins = False self.config['Plugin Folder'] = None self.double_click = False self.source_input = "" self.print_stats = True self.curr_conf = JLabel() self.window = JFrame("Select plugins", preferredSize=(200, 250), windowClosing=self.p_close) self.window.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE) self.window.setVisible(False) self.path_vars = JTextField(30) # Initialize local stuff tab_constraints = GridBagConstraints() status_field = JScrollPane(self.view_port_text) # Configure view port self.view_port_text.setEditable(False) labels = self.build_ui() # Add things to rows tab_constraints.anchor = GridBagConstraints.FIRST_LINE_END tab_constraints.gridx = 1 tab_constraints.gridy = 0 tab_constraints.fill = GridBagConstraints.HORIZONTAL self.tab.add(JButton( "Resize screen", actionPerformed=self.resize), tab_constraints) tab_constraints.gridx = 0 tab_constraints.gridy = 1 tab_constraints.anchor = GridBagConstraints.FIRST_LINE_START self.tab.add(labels, tab_constraints) tab_constraints.gridx = 1 tab_constraints.gridy = 1 tab_constraints.fill = GridBagConstraints.BOTH tab_constraints.weightx = 1.0 tab_constraints.weighty = 1.0 tab_constraints.anchor = GridBagConstraints.FIRST_LINE_END self.tab.add(status_field, tab_constraints) try: self._callbacks.customizeUiComponent(self.tab) except Exception: pass
def registerExtenderCallbacks(self, callbacks): # Initialize the global stdout stream global stdout # Keep a reference to our callbacks object self._callbacks = callbacks # Obtain an extension helpers object self._helpers = callbacks.getHelpers() # set our extension name callbacks.setExtensionName("Burpsuite Yara Scanner") # Create the log and a lock on which to synchronize when adding log entries self._log = ArrayList() self._lock = Lock() # main split pane splitpane = JSplitPane(JSplitPane.VERTICAL_SPLIT) # table of log entries logTable = Table(self) scrollPane = JScrollPane(logTable) splitpane.setLeftComponent(scrollPane) # Options panel optionsPanel = JPanel() optionsPanel.setLayout(GridBagLayout()) constraints = GridBagConstraints() yara_exe_label = JLabel("Yara Executable Location:") constraints.fill = GridBagConstraints.HORIZONTAL constraints.gridx = 0 constraints.gridy = 0 optionsPanel.add(yara_exe_label, constraints) self._yara_exe_txtField = JTextField(25) constraints.fill = GridBagConstraints.HORIZONTAL constraints.gridx = 1 constraints.gridy = 0 optionsPanel.add(self._yara_exe_txtField, constraints) yara_rules_label = JLabel("Yara Rules File:") constraints.fill = GridBagConstraints.HORIZONTAL constraints.gridx = 0 constraints.gridy = 1 optionsPanel.add(yara_rules_label, constraints) self._yara_rules_files = Vector() self._yara_rules_files.add("< None >") self._yara_rules_fileList = JList(self._yara_rules_files) constraints.fill = GridBagConstraints.HORIZONTAL constraints.gridx = 1 constraints.gridy = 1 optionsPanel.add(self._yara_rules_fileList, constraints) self._yara_rules_select_files_button = JButton("Select Files") self._yara_rules_select_files_button.addActionListener(self) constraints.fill = GridBagConstraints.HORIZONTAL constraints.gridx = 1 constraints.gridy = 2 optionsPanel.add(self._yara_rules_select_files_button, constraints) self._yara_clear_button = JButton("Clear Yara Results Table") self._yara_clear_button.addActionListener(self) constraints.fill = GridBagConstraints.HORIZONTAL constraints.gridx = 1 constraints.gridy = 3 optionsPanel.add(self._yara_clear_button, constraints) # Tabs with request/response viewers viewerTabs = JTabbedPane() self._requestViewer = callbacks.createMessageEditor(self, False) self._responseViewer = callbacks.createMessageEditor(self, False) viewerTabs.addTab("Request", self._requestViewer.getComponent()) viewerTabs.addTab("Response", self._responseViewer.getComponent()) splitpane.setRightComponent(viewerTabs) # Tabs for the Yara output and the Options self._mainTabs = JTabbedPane() self._mainTabs.addTab("Yara Output", splitpane) self._mainTabs.addTab("Options", optionsPanel) # customize our UI components callbacks.customizeUiComponent(splitpane) callbacks.customizeUiComponent(logTable) callbacks.customizeUiComponent(scrollPane) callbacks.customizeUiComponent(viewerTabs) callbacks.customizeUiComponent(self._mainTabs) # add the custom tab to Burp's UI callbacks.addSuiteTab(self) # add ourselves as a context menu factory callbacks.registerContextMenuFactory(self) # Custom Menu Item self.menuItem = JMenuItem("Scan with Yara") self.menuItem.addActionListener(self) # obtain our output stream stdout = PrintWriter(callbacks.getStdout(), True) # Print a startup notification stdout.println("Burpsuite Yara scanner initialized.")
def initComponents(self): #set the layout and add form components self.setLayout(GridBagLayout()) gc = GridBagConstraints() gc.weightx = 1 gc.weighty = 1 # First Row gc.gridy = 0 gc.weightx = 1 gc.weighty = 0.1 gc.gridx = 0 gc.fill = GridBagConstraints.NONE gc.anchor = GridBagConstraints.LINE_END gc.insets = Insets(0, 0, 0, 5) self.add(self.nameLabel, gc) gc.gridx = 1 gc.anchor = GridBagConstraints.LINE_START gc.insets = Insets(0, 0, 0, 0) self.add(self.nameField, gc) # Second Row gc.gridy += 1 gc.weightx = 1 gc.weighty = 0.1 gc.gridx = 0 gc.anchor = GridBagConstraints.LINE_END gc.insets = Insets(0, 0, 0, 5) self.add(self.mobLabel, gc) gc.gridx = 1 gc.anchor = GridBagConstraints.LINE_START gc.insets = Insets(0, 0, 0, 0) self.add(self.mobField, gc) #Third Row gc.gridy += 1 gc.weightx = 1 gc.weighty = 0.1 gc.gridx = 0 gc.anchor = GridBagConstraints.FIRST_LINE_END gc.insets = Insets(0, 0, 0, 5) self.add(self.emailLabel, gc) gc.weightx = 1 gc.weighty = 0.2 gc.gridx = 1 gc.anchor = GridBagConstraints.FIRST_LINE_START gc.insets = Insets(0, 0, 0, 0) self.add(self.emailField, gc) #Next Row gc.gridy += 1 gc.weightx = 1 gc.weighty = 0.1 gc.gridx = 0 gc.anchor = GridBagConstraints.FIRST_LINE_END gc.insets = Insets(0, 0, 0, 5) self.add(self.userNameLabel, gc) gc.weightx = 1 gc.weighty = 0.2 gc.gridx = 1 gc.anchor = GridBagConstraints.FIRST_LINE_START gc.insets = Insets(0, 0, 0, 0) self.add(self.userNameField, gc) # Next Row gc.gridy += 1 gc.weightx = 1 gc.weighty = 0.1 gc.gridx = 0 gc.anchor = GridBagConstraints.FIRST_LINE_END gc.insets = Insets(0, 0, 0, 5) self.add(self.passwordLabel, gc) gc.weightx = 1 gc.weighty = 0.2 gc.gridx = 1 gc.anchor = GridBagConstraints.FIRST_LINE_START gc.insets = Insets(0, 0, 0, 0) self.add(self.passwordField, gc) # Next Row gc.gridy += 1 gc.weightx = 1 gc.weighty = 0.1 gc.gridx = 0 gc.anchor = GridBagConstraints.FIRST_LINE_END gc.insets = Insets(0, 0, 0, 5) self.add(self.confirmPasswordLabel, gc) gc.weightx = 1 gc.weighty = 0.2 gc.gridx = 1 gc.anchor = GridBagConstraints.FIRST_LINE_START gc.insets = Insets(0, 0, 0, 0) self.add(self.confirmPasswordField, gc) # Next Row gc.gridy += 1 gc.weightx = 1 gc.weighty = 0.1 gc.gridx = 0 gc.anchor = GridBagConstraints.FIRST_LINE_END gc.insets = Insets(0, 0, 0, 5) self.add(self.superPassLabel, gc) gc.weightx = 1 gc.weighty = 0.2 gc.gridx = 1 gc.anchor = GridBagConstraints.FIRST_LINE_START gc.insets = Insets(0, 0, 0, 0) self.add(self.superPassField, gc) # Next Row gc.gridy += 1 gc.weightx = 1 gc.weighty = 2.0 gc.gridx = 1 gc.anchor = GridBagConstraints.FIRST_LINE_START self.add(self.addAdminBtn, gc) innerBorder = BorderFactory.createTitledBorder('Add Admin') outerBorder = BorderFactory.createEmptyBorder(5, 5, 5, 5) self.setBorder( BorderFactory.createCompoundBorder(outerBorder, innerBorder))
def __init__(self): ''' Resources Panel ''' # psimures= JPanel(GridBagLayout()) # psimures.setSize(Dimension(500,300)) self.setLayout(GridBagLayout()) # super(self,GridBagLayout()) self.setSize(Dimension(500,300)) ''' fila 1 ''' label = JLabel('Resources panel') c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 1 c.gridwidth = 4 c.gridx = 0 c.gridy = 0 self.add(label, c) ''' fila 2 ''' self.dModelFile = [] self.cbMoFile = JComboBox(self.dModelFile) c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.75 c.gridwidth = 3 c.gridx = 0 c.gridy = 1 self.add(self.cbMoFile, c) bloadmodel= JButton('Load Model',actionPerformed=self.onOpenFile) c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.25 # c.gridwidth = 1 c.gridx = 3 c.gridy = 1 self.add(bloadmodel, c) ''' fila 3 ''' self.dLibFile = [] self.cbMoLib = JComboBox(self.dLibFile) c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.75 c.gridwidth = 3 c.gridx = 0 c.gridy = 2 self.add(self.cbMoLib, c) bloadlib= JButton('Load Library',actionPerformed=self.onOpenFile) c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.25 # c.gridwidth = 1 c.gridx = 3 c.gridy = 2 self.add(bloadlib, c) ''' fila 4 ''' self.dModel = [] self.cbModel = JComboBox(self.dModel) c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.75 c.gridwidth = 3 c.gridx = 0 c.gridy = 3 self.add(self.cbModel, c) bselectmodel= JButton('Select Model',actionPerformed=self.onOpenModel) c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.25 # c.gridwidth = 1 c.gridx = 3 c.gridy = 3 self.add(bselectmodel, c) ''' fila 5 ''' self.dOutPath = [] self.cbOutDir = JComboBox(self.dOutPath) c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.75 c.gridwidth = 3 c.gridx = 0 c.gridy = 4 self.add(self.cbOutDir, c) bloadoutpath= JButton('Output Path',actionPerformed=self.onOpenFolder) c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.25 # c.gridwidth = 1 c.gridx = 3 c.gridy = 4 self.add(bloadoutpath, c) ''' fila 6 ''' bsaveSource= JButton('Save Resources',actionPerformed=self.saveResources) c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.5 c.gridwidth = 2 c.gridx = 0 c.gridy = 5 self.add(bsaveSource, c) bloadSource= JButton('Load Resources',actionPerformed=self.loadResources) c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.5 c.gridwidth = 2 c.gridx = 2 c.gridy = 5 self.add(bloadSource, c)
def initComponents(self): self.setLayout(GridBagLayout()) gc = GridBagConstraints() gc.weightx = 1 gc.weighty = 1 # First Row gc.gridy = 0 gc.weightx = 1 gc.weighty = 0.1 gc.gridx = 0 gc.fill = GridBagConstraints.NONE gc.anchor = GridBagConstraints.LINE_END gc.insets = Insets(0, 0, 0, 5) self.add(self.nameLabel, gc) gc.gridx = 1 gc.anchor = GridBagConstraints.LINE_START gc.insets = Insets(0, 0, 0, 0) self.add(self.nameField, gc) # Second Row gc.gridy += 1 gc.weightx = 1 gc.weighty = 0.1 gc.gridx = 0 gc.anchor = GridBagConstraints.LINE_END gc.insets = Insets(0, 0, 0, 5) self.add(self.mobLabel, gc) gc.gridx = 1 gc.anchor = GridBagConstraints.LINE_START gc.insets = Insets(0, 0, 0, 0) self.add(self.mobField, gc) #Third Row gc.gridy += 1 gc.weightx = 1 gc.weighty = 0.1 gc.gridx = 0 gc.anchor = GridBagConstraints.FIRST_LINE_END gc.insets = Insets(0, 0, 0, 5) self.add(self.emailLabel, gc) gc.weightx = 1 gc.weighty = 0.2 gc.gridx = 1 gc.anchor = GridBagConstraints.FIRST_LINE_START gc.insets = Insets(0, 0, 0, 0) self.add(self.emailField, gc) #Next Row gc.gridy += 1 gc.weightx = 1 gc.weighty = 0.1 gc.gridx = 0 gc.anchor = GridBagConstraints.FIRST_LINE_END gc.insets = Insets(0, 0, 0, 5) self.add(self.vehicleLabel, gc) gc.weightx = 1 gc.weighty = 0.2 gc.gridx = 1 gc.anchor = GridBagConstraints.FIRST_LINE_START gc.insets = Insets(0, 0, 0, 0) self.add(self.vehicleField, gc) gc.weightx = 1 gc.weighty = 0.2 gc.gridx = 2 gc.anchor = GridBagConstraints.FIRST_LINE_START gc.insets = Insets(0, 0, 0, 0) self.add(self.automateRecogBtn, gc) #Next Row gc.gridy += 1 gc.weightx = 1 gc.weighty = 2.0 gc.gridx = 1 gc.anchor = GridBagConstraints.FIRST_LINE_START self.add(self.regBtn, gc) innerBorder = BorderFactory.createTitledBorder('Register Vehicle') outerBorder = BorderFactory.createEmptyBorder(5, 5, 5, 5) self.setBorder( BorderFactory.createCompoundBorder(outerBorder, innerBorder))
def __init__(self): ''' Configuration Panel ''' # pconfig = JPanel(GridBagLayout()) # pconfig.setSize(Dimension(500,300)) self.setLayout(GridBagLayout()) # super(self,GridBagLayout()) self.setSize(Dimension(500,300)) ''' fila 1 ''' label = JLabel('Configuration panel') c1 = GridBagConstraints() c1.fill = GridBagConstraints.HORIZONTAL c1.weightx = 0.5 c1.gridwidth = 4 c1.gridx = 0 c1.gridy = 0 self.add(label, c1) ''' fila 2 ''' self.radioBtnOMC = JRadioButton('OpenModelica') c2 = GridBagConstraints() c2.fill = GridBagConstraints.HORIZONTAL c2.weightx = 0.5 c2.gridx = 0 c2.gridy = 1 self.add(self.radioBtnOMC, c2) self.radioBtnJM = JRadioButton('JModelica') c3 = GridBagConstraints() c3.fill = GridBagConstraints.HORIZONTAL c3.weightx = 0.5 c3.gridx = 1 c3.gridy = 1 self.add(self.radioBtnJM, c3) self.radioBtnDY = JRadioButton('Dymola') c4 = GridBagConstraints() c4.fill = GridBagConstraints.HORIZONTAL c4.weightx = 0.5 c4.gridx = 2 c4.gridy = 1 self.add(self.radioBtnDY, c4) rbBtnGroup = ButtonGroup() rbBtnGroup.add(self.radioBtnOMC) rbBtnGroup.add(self.radioBtnJM) rbBtnGroup.add(self.radioBtnDY) ''' fila 2 ''' label = JLabel('Start time') c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.5 c.gridx = 0 c.gridy = 2 self.add(label, c) self.txtstart= JTextField('0') c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.5 c.gridx = 1 c.gridy = 2 self.add(self.txtstart, c) label = JLabel('Stop time') c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.5 c.gridx = 2 c.gridy = 2 self.add(label, c) self.txtstop= JTextField('0') c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.5 c.gridx = 3 c.gridy = 2 self.add(self.txtstop, c) ''' fila 3 ''' label = JLabel('Solver') c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.5 c.gridx = 0 c.gridy = 3 self.add(label, c) self.cbsolver= JComboBox(['dassl','rkfix2']) c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.5 c.gridx = 1 c.gridy = 3 self.add(self.cbsolver, c) label = JLabel('Algorithm (JM)') c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.5 c.gridx = 2 c.gridy = 3 self.add(label, c) self.cbalgorithm= JComboBox(['AssimuloAlg']) c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.5 c.gridx = 3 c.gridy = 3 self.add(self.cbalgorithm, c) ''' fila 4 ''' label = JLabel('Interval') c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.5 c.gridx = 0 c.gridy = 4 self.add(label, c) self.txtinterval= JTextField('0') c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.5 c.gridx = 1 c.gridy = 4 self.add(self.txtinterval, c) ''' fila 5 ''' label = JLabel('Tolerance') c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.5 c.gridx = 0 c.gridy = 5 self.add(label, c) self.txttolerance= JTextField('0') c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.5 c.gridx = 1 c.gridy = 5 self.add(self.txttolerance, c) ''' fila 6 ''' label = JLabel('Output format') c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.5 c.gridx = 0 c.gridy = 6 self.add(label, c) self.cboutformat= JComboBox(['.mat','.h5','.csv']) c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.5 c.gridx = 1 c.gridy = 6 self.add(self.cboutformat, c) label = JLabel('Initialize (JM)') c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.5 c.gridx = 2 c.gridy = 6 self.add(label, c) self.cbinitialize= JComboBox(['True','False']) c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.5 c.gridx = 3 c.gridy = 6 self.add(self.cbinitialize, c) ''' fila 7 ''' bSaveCfg= JButton('Save Configuration', actionPerformed= self.saveConfiguration) c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.5 c.gridwidth = 2 c.gridx = 0 c.gridy = 7 self.add(bSaveCfg, c) self.bSimulation= JButton('Load Configuration', actionPerformed= self.loadConfiguration) c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 0.5 c.gridwidth = 2 c.gridx = 2 c.gridy = 7 self.add(self.bSimulation, c) ''' fila 8 ''' self.bSimulation= JButton('Simulate', actionPerformed= self.startSimlation) self.bSimulation.enabled= 0 c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 1 c.gridwidth = 4 c.gridx = 0 c.gridy = 8 self.add(self.bSimulation, c) ''' file 9 ''' simProgress= JProgressBar(0, self.getWidth(), value=0, stringPainted=True) c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 1 c.gridwidth = 4 c.gridx = 0 c.gridy = 9 self.add(simProgress, c) ''' fila 10 ''' self.lblResult= JLabel('Simulation information') c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.weightx = 1 c.gridwidth = 4 c.gridx = 0 c.gridy = 10 self.add(self.lblResult, c)
def _constructAttackPanel(self, insets, messageEditorComponent): attackPanel = JPanel(GridBagLayout()) targetHeadingLabel = JLabel("<html><b>Target</b></html>") targetHeadingLabelConstraints = GridBagConstraints() targetHeadingLabelConstraints.gridx = 0 targetHeadingLabelConstraints.gridy = 0 targetHeadingLabelConstraints.gridwidth = 4 targetHeadingLabelConstraints.anchor = GridBagConstraints.LINE_START targetHeadingLabelConstraints.insets = insets attackPanel.add(targetHeadingLabel, targetHeadingLabelConstraints) startAttackButton = JButton("<html><b>Start Attack</b></html>", actionPerformed=self._startAttack) startAttackButtonConstraints = GridBagConstraints() startAttackButtonConstraints.gridx = 4 startAttackButtonConstraints.gridy = 0 startAttackButtonConstraints.insets = insets attackPanel.add(startAttackButton, startAttackButtonConstraints) hostLabel = JLabel("Host:") hostLabelConstraints = GridBagConstraints() hostLabelConstraints.gridx = 0 hostLabelConstraints.gridy = 1 hostLabelConstraints.anchor = GridBagConstraints.LINE_START hostLabelConstraints.insets = insets attackPanel.add(hostLabel, hostLabelConstraints) self._hostTextField = JTextField(25) self._hostTextField.setMinimumSize( self._hostTextField.getPreferredSize()) hostTextFieldConstraints = GridBagConstraints() hostTextFieldConstraints.gridx = 1 hostTextFieldConstraints.gridy = 1 hostTextFieldConstraints.weightx = 1 hostTextFieldConstraints.gridwidth = 2 hostTextFieldConstraints.anchor = GridBagConstraints.LINE_START hostTextFieldConstraints.insets = insets attackPanel.add(self._hostTextField, hostTextFieldConstraints) portLabel = JLabel("Port:") portLabelConstraints = GridBagConstraints() portLabelConstraints.gridx = 0 portLabelConstraints.gridy = 2 portLabelConstraints.anchor = GridBagConstraints.LINE_START portLabelConstraints.insets = insets attackPanel.add(portLabel, portLabelConstraints) self._portTextField = JTextField(5) self._portTextField.setMinimumSize( self._portTextField.getPreferredSize()) portTextFieldConstraints = GridBagConstraints() portTextFieldConstraints.gridx = 1 portTextFieldConstraints.gridy = 2 portTextFieldConstraints.gridwidth = 2 portTextFieldConstraints.anchor = GridBagConstraints.LINE_START portTextFieldConstraints.insets = insets attackPanel.add(self._portTextField, portTextFieldConstraints) self._protocolCheckBox = JCheckBox("Use HTTPS") protocolCheckBoxConstraints = GridBagConstraints() protocolCheckBoxConstraints.gridx = 0 protocolCheckBoxConstraints.gridy = 3 protocolCheckBoxConstraints.gridwidth = 3 protocolCheckBoxConstraints.anchor = GridBagConstraints.LINE_START protocolCheckBoxConstraints.insets = insets attackPanel.add(self._protocolCheckBox, protocolCheckBoxConstraints) requestHeadingLabel = JLabel("<html><b>Request</b></html>") requestHeadingLabelConstraints = GridBagConstraints() requestHeadingLabelConstraints.gridx = 0 requestHeadingLabelConstraints.gridy = 4 requestHeadingLabelConstraints.gridwidth = 4 requestHeadingLabelConstraints.anchor = GridBagConstraints.LINE_START requestHeadingLabelConstraints.insets = insets attackPanel.add(requestHeadingLabel, requestHeadingLabelConstraints) messageEditorComponentConstraints = GridBagConstraints() messageEditorComponentConstraints.gridx = 0 messageEditorComponentConstraints.gridy = 5 messageEditorComponentConstraints.weightx = 1 messageEditorComponentConstraints.weighty = .75 messageEditorComponentConstraints.gridwidth = 4 messageEditorComponentConstraints.gridheight = 2 messageEditorComponentConstraints.fill = GridBagConstraints.BOTH messageEditorComponentConstraints.insets = insets attackPanel.add( messageEditorComponent, messageEditorComponentConstraints) addPayloadButton = JButton( "Add \xa7", actionPerformed=self._addPayload) addPayloadButtonConstraints = GridBagConstraints() addPayloadButtonConstraints.gridx = 4 addPayloadButtonConstraints.gridy = 5 addPayloadButtonConstraints.fill = GridBagConstraints.HORIZONTAL addPayloadButtonConstraints.insets = insets attackPanel.add(addPayloadButton, addPayloadButtonConstraints) clearPayloadButton = JButton( "Clear \xa7", actionPerformed=self._clearPayloads) clearPayloadButtonConstraints = GridBagConstraints() clearPayloadButtonConstraints.gridx = 4 clearPayloadButtonConstraints.gridy = 6 clearPayloadButtonConstraints.anchor = GridBagConstraints.PAGE_START clearPayloadButtonConstraints.fill = GridBagConstraints.HORIZONTAL clearPayloadButtonConstraints.insets = insets attackPanel.add(clearPayloadButton, clearPayloadButtonConstraints) payloadHeadingLabel = JLabel("<html><b>Payloads<b></html>") payloadHeadingLabelConstraints = GridBagConstraints() payloadHeadingLabelConstraints.gridx = 0 payloadHeadingLabelConstraints.gridy = 7 payloadHeadingLabelConstraints.gridwidth = 4 payloadHeadingLabelConstraints.anchor = GridBagConstraints.LINE_START payloadHeadingLabelConstraints.insets = insets attackPanel.add(payloadHeadingLabel, payloadHeadingLabelConstraints) self._payloadTextArea = JTextArea() payloadScrollPane = JScrollPane(self._payloadTextArea) payloadScrollPaneConstraints = GridBagConstraints() payloadScrollPaneConstraints.gridx = 0 payloadScrollPaneConstraints.gridy = 8 payloadScrollPaneConstraints.weighty = .25 payloadScrollPaneConstraints.gridwidth = 3 payloadScrollPaneConstraints.fill = GridBagConstraints.BOTH payloadScrollPaneConstraints.insets = insets attackPanel.add(payloadScrollPane, payloadScrollPaneConstraints) requestsNumLabel = JLabel("Number of requests for each payload:") requestsNumLabelConstraints = GridBagConstraints() requestsNumLabelConstraints.gridx = 0 requestsNumLabelConstraints.gridy = 9 requestsNumLabelConstraints.gridwidth = 2 requestsNumLabelConstraints.anchor = GridBagConstraints.LINE_START requestsNumLabelConstraints.insets = insets attackPanel.add(requestsNumLabel, requestsNumLabelConstraints) self._requestsNumTextField = JTextField("100", 4) self._requestsNumTextField.setMinimumSize( self._requestsNumTextField.getPreferredSize()) requestsNumTextFieldConstraints = GridBagConstraints() requestsNumTextFieldConstraints.gridx = 2 requestsNumTextFieldConstraints.gridy = 9 requestsNumTextFieldConstraints.anchor = GridBagConstraints.LINE_START requestsNumTextFieldConstraints.insets = insets attackPanel.add( self._requestsNumTextField, requestsNumTextFieldConstraints) return attackPanel
def registerExtenderCallbacks(self, callbacks): endianVal = 0 def generateTextBox(defaultTxt, editable): sample = JTextArea(5, 20) scrollPane1 = JScrollPane(sample) sample.setBounds(0, 0, 400, 400) sample.setEditable(editable) sample.setLineWrap(True) sample.setWrapStyleWord(True) sample.setBorder(BorderFactory.createLineBorder(Color.BLACK)) sample.setText(defaultTxt) return sample def decodeData(event): #Get Base64 token full_str = base64.b64decode(self._left_tb1.getText()) sha_mac = full_str[44:64].encode('hex') inflate_data = full_str[76:] data = zlib.decompress(inflate_data) user_length = data[20] loc = 21 tokenDetails = "User name :" + data[ loc:loc + int(user_length.encode('hex'), 16)].replace( "\x00", "") + "\n" loc = loc + int(user_length.encode('hex'), 16) lang_length = data[loc] loc = loc + 1 tokenDetails += "Lang Code :" + data[ loc:loc + int(lang_length.encode('hex'), 16)].replace( "\x00", "") + "\n" tmp1.setText(data[loc:loc + int(lang_length.encode('hex'), 16)].replace( "\x00", "")) loc = loc + int(lang_length.encode('hex'), 16) node_length = data[loc] loc = loc + 1 tokenDetails += "Node name :" + data[ loc:loc + int(node_length.encode('hex'), 16)].replace( "\x00", "") + "\n" tmp2.setText(data[loc:loc + int(node_length.encode('hex'), 16)].replace( "\x00", "")) loc = loc + int(node_length.encode('hex'), 16) time_length = data[loc] loc = loc + 1 tokenDetails += "Creation time :" + data[ loc:loc + int(time_length.encode('hex'), 16)].replace( "\x00", "") tmp = data[loc:loc + int(time_length.encode('hex'), 16)].replace( "\x00", "") datestamp = tmp[:len(tmp) - 7] tmp3.setText(datestamp) # Determine if it's little or big endian if (data[4:8].encode('hex') == '04030201'): endianVal = 0 else: endianVal = 1 tmp4.setText(str(endianVal)) hashcatFormat = sha_mac + ":" + data.encode("hex") left_tb2.setText(tokenDetails) left_tb3.setText(hashcatFormat) def make_field(part, size): part = chr(len(part) + size) + part return part def generateToken(event): newtoken = "" endianVal = int(tmp4.getText()) if endianVal == 1: username = right_tb2.getText().encode('utf_16_be') nodepw = right_tb1.getText().encode('utf_16_le') lang = tmp1.getText().encode('utf_16_be') nodename = tmp2.getText().encode('utf_16_be') datestamp = (tmp3.getText() + '.164266').encode('utf_16_be') token_ver = "8.10".encode('utf_16_be') unknown_field = "N".encode('utf_16_be') uncompressed_data = '\x01\x02\x03\x04\x00\x01\x00\x00\x00\x00\x02\xbc\x00\x00\x00\x00' + make_field( username, 0) + make_field(lang, 0) + make_field( nodename, 0) + make_field(datestamp, 0) + '\x00' uncompressed_field = '\x00\x00\x00' + make_field( uncompressed_data, 4) inflate_data = zlib.compress(uncompressed_field) sha1_mac = hashlib.sha1(uncompressed_field + nodepw).digest() uncompressed_length = chr(len(uncompressed_field)) static_headers1 = '\x01\x02\x03\x04\x00\x01\x00\x00\x00\x00\x02\xbc\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x04\x53\x68\x64\x72\x02' + unknown_field + uncompressed_length + '\x08' + token_ver + '\x14' static_headers2 = '\x00\x05\x53\x64\x61\x74\x61' body = '\x00\x00\x00' + make_field( static_headers2 + make_field(inflate_data, 0), 4) token = '\x00\x00\x00' + make_field( static_headers1 + sha1_mac + body, 4) newtoken = base64.b64encode(token) elif endianVal == 0: username = right_tb2.getText().encode('utf_16_le') nodepw = right_tb1.getText().encode('utf_16_le') lang = tmp1.getText().encode('utf_16_le') nodename = tmp2.getText().encode('utf_16_le') datestamp = (tmp3.getText() + '.999543').encode('utf_16_le') token_ver = "8.10".encode('utf_16_le') unknown_field = "N".encode('utf_16_le') uncompressed_data = '\x00\x00\x00\x04\x03\x02\x01\x01\x00\x00\x00\xbc\x02\x00\x00\x00\x00\x00\x00' + make_field( username, 0) + make_field(lang, 0) + make_field( nodename, 0) + make_field(datestamp, 0) + '\x00' uncompressed_field = make_field(uncompressed_data, 1) inflate_data = zlib.compress(uncompressed_field) sha1_mac = hashlib.sha1(uncompressed_field + nodepw).digest() uncompressed_length = chr(len(uncompressed_field)) static_headers1 = '\x00\x00\x00\x04\x03\x02\x01\x01\x00\x00\x00\xbc\x02\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x04\x00\x53\x68\x64\x72\x02' + unknown_field + uncompressed_length + '\x08' + token_ver + '\x14' static_headers2 = '\x00\x00\x00\x05\x00\x53\x64\x61\x74\x61' body = make_field( static_headers2 + make_field(inflate_data, 0), 1) token = make_field(static_headers1 + sha1_mac + body, 1) newtoken = base64.b64encode(token) right_tb3.setText("PS_TOKEN=" + newtoken + ";") # keep a reference to our callbacks object self._callbacks = callbacks # obtain an extension helpers object self._helpers = callbacks.getHelpers() # set our extension name callbacks.setExtensionName("PeopleSoft PSToken Processor") # main split pane self._splitpane = JSplitPane(JSplitPane.HORIZONTAL_SPLIT) self._splitpane.setResizeWeight(0.5) c = GridBagConstraints() c.weightx = 1 c.weighty = 1 c.anchor = GridBagConstraints.NORTHWEST #Temp variables tmp1 = JLabel("tmp") tmp2 = JLabel("tmp") tmp3 = JLabel("tmp") tmp4 = JLabel("tmp") # add left panel panel1 = JPanel(GridBagLayout()) header1 = JLabel("EXTRACTION") header1.setFont(Font("Myriad Pro", Font.BOLD, 24)) left_t1 = JLabel("PS_TOKEN Cookie") left_t2 = JLabel("Token Details") left_t3 = JLabel("Token Hash + Salt (Hashcat Format)") left_t4 = JLabel( "Save this into a .hash file and run the following Hashcat command: hashcat -m 13500 <hashfile> <dictionary file>" ) self._left_tb1 = generateTextBox("Your PS_TOKEN value here", True) left_tb2 = generateTextBox("Token Details here", False) left_tb3 = generateTextBox("Hashcat format here", False) btnDecode = JButton("Decode", actionPerformed=decodeData) btnGenerate = JButton("Generate", actionPerformed=generateToken) #add right panel panel2 = JPanel(GridBagLayout()) header2 = JLabel("GENERATION") header2.setFont(Font("Myriad Pro", Font.BOLD, 24)) right_t1 = JLabel("Node password") right_t2 = JLabel("New username") right_t3 = JLabel("New Base64 PS_TOKEN") right_t4 = JLabel( "Match & Replace rule to modify PS_TOKEN (Type: Request Header, enable regex)" ) right_t5 = JLabel("Match rule: PS_TOKEN=[A-Za-z0-9\/\+]*;") right_t6 = JLabel("Replace: PS_TOKEN=<new generated PS_TOKEN>;") right_tb1 = generateTextBox("Password here", True) right_tb2 = generateTextBox("PSADMIN", True) right_tb3 = generateTextBox("Your new token here", False) panel1.add(header1, c) panel2.add(header2, c) c.gridx = 0 c.gridy = 1 panel1.add(left_t1, c) panel2.add(right_t1, c) c.gridy += 1 panel1.add(self._left_tb1, c) panel2.add(right_tb1, c) c.gridy += 1 panel1.add(left_t2, c) panel2.add(right_t2, c) c.gridy += 1 panel1.add(left_tb2, c) panel2.add(right_tb2, c) c.gridy += 1 panel1.add(left_t3, c) panel2.add(right_t3, c) c.gridy += 1 panel1.add(left_t4, c) panel2.add(right_t4, c) c.gridy += 1 panel1.add(left_tb3, c) panel2.add(right_t5, c) c.gridy += 1 panel2.add(right_t6, c) c.gridy += 1 panel2.add(right_tb3, c) c.gridy += 1 panel1.add(btnDecode, c) panel2.add(btnGenerate, c) self._splitpane.setLeftComponent(panel1) self._splitpane.setRightComponent(panel2) # customize our UI components callbacks.customizeUiComponent(self._splitpane) #callbacks.customizeUiComponent(panel1) #callbacks.customizeUiComponent(scrollPane) # add the custom tab to Burp's UI callbacks.addSuiteTab(self) #add option to do right-click callbacks.registerContextMenuFactory(self) return
def __init__(self, extender=None, *rows): self.extender = extender self.table = table = JTable(ParameterProcessingRulesTableModel(*rows)) table.setPreferredScrollableViewportSize(Dimension(500, 70)) table.setRowSorter(TableRowSorter(table.getModel())) table.setFillsViewportHeight(True) gridBagLayout = GridBagLayout() gridBagLayout.columnWidths = [0, 0, 25, 0 ] gridBagLayout.rowHeights = [0, 0, 0, 0] gridBagLayout.columnWeights = [0.0, 1.0, 1.0, Double.MIN_VALUE] gridBagLayout.rowWeights = [0.0, 0.0, 0.0, Double.MIN_VALUE] self.setLayout(gridBagLayout) addButton = JButton("Add") addButton.addActionListener(AddRemoveParameterListener(table)) addButtonConstraints = GridBagConstraints() addButtonConstraints.fill = GridBagConstraints.HORIZONTAL addButtonConstraints.insets = Insets(0, 0, 5, 5) addButtonConstraints.gridx = 0 addButtonConstraints.gridy = 0 self.add(addButton, addButtonConstraints) removeButton = JButton("Remove") removeButton.addActionListener(AddRemoveParameterListener(table)) removeButtonConstraints = GridBagConstraints() removeButtonConstraints.fill = GridBagConstraints.HORIZONTAL removeButtonConstraints.insets = Insets(0, 0, 5, 5) removeButtonConstraints.gridx = 0 removeButtonConstraints.gridy = 1 self.add(removeButton, removeButtonConstraints) upButton = JButton("Up") upButton.addActionListener(AddRemoveParameterListener(table)) upButtonConstraints = GridBagConstraints() upButtonConstraints.fill = GridBagConstraints.HORIZONTAL upButtonConstraints.insets = Insets(0, 0, 5, 5) upButtonConstraints.gridx = 0 upButtonConstraints.gridy = 2 self.add(upButton, upButtonConstraints) downButton = JButton("Down") downButton.addActionListener(AddRemoveParameterListener(table)) downButtonConstraints = GridBagConstraints() downButtonConstraints.fill = GridBagConstraints.HORIZONTAL downButtonConstraints.anchor = GridBagConstraints.NORTH downButtonConstraints.insets = Insets(0, 0, 5, 5) downButtonConstraints.gridx = 0 downButtonConstraints.gridy = 3 self.add(downButton, downButtonConstraints) scrollPane = JScrollPane(table) scrollPaneConstraints = GridBagConstraints() scrollPaneConstraints.gridwidth = 2 scrollPaneConstraints.gridheight = 5 scrollPaneConstraints.insets = Insets(0, 0, 5, 5) scrollPaneConstraints.anchor = GridBagConstraints.NORTHWEST scrollPaneConstraints.gridx = 1 scrollPaneConstraints.gridy = 0 self.add(scrollPane, scrollPaneConstraints) self.initParameterColumn(table) self.initColumnSizes(table)
def build_welcome_panel(self): ''' Construct the welcome panel here. ''' panel = JPanel(GridBagLayout()) constraints = GridBagConstraints() constraints.insets = Insets(10, 10, 10, 10) message = ('<html><body>' '<h1>Welcome to Nammu</h1>' '<h2>An editor for the ORACC project<h2>' '<p>' '<a href=\'oracc\'>Click here</a> for help with ORACC.' '</p>' '<p>Learn more about Nammu <a href=\'nammu\'>here</a>.</p>' '</body></html>') # Configure a JEditorPane to display HTML for our welcome message msg_pane = JEditorPane() msg_pane.setEditable(False) kit = HTMLEditorKit() msg_pane.setEditorKit(kit) scrollPane = JScrollPane(msg_pane) # This handles the stylesheet applied to the welcome message styleSheet = kit.getStyleSheet() styleSheet.addRule('body {color:black; font-size: 16 pt; }') styleSheet.addRule('h1 {text-align:center; }') styleSheet.addRule('h2 {text-align:center; }') # Set the JEditorPane background to match the rest of the window msg_pane.border = BorderFactory.createEmptyBorder(4, 4, 4, 4) msg_pane.background = Color(238, 238, 238) # Add the message and the css and to the JEditorPane doc = kit.createDefaultDocument() msg_pane.setDocument(doc) msg_pane.setText(message) # Set up a hyperlink listener listener = addEventListener(msg_pane, HyperlinkListener, 'hyperlinkUpdate', self.handleEvent) # Configure the placement of the JEditorPane constraints.gridx = 1 constraints.gridy = 1 constraints.fill = GridBagConstraints.BOTH constraints.anchor = GridBagConstraints.CENTER panel.add(msg_pane, constraints) # Build and place the checkbox self.checkbox = JCheckBox('Don\'t show this message again.', selected=False) constraints.gridx = 1 constraints.gridy = 2 panel.add(self.checkbox, constraints) # Build and place the close button close_button = JButton('Close', actionPerformed=self.close_action) constraints.gridx = 2 constraints.gridy = 2 panel.add(close_button, constraints) return panel
def addSigningKeyFromCmdTextField(self): c = GridBagConstraints() c.gridx = 1 c.gridy = 6 self._configurationPanel.add(self._fromCmdTextField, c)
def registerExtenderCallbacks(self, callbacks): self.callbacks = callbacks self.helpers = callbacks.getHelpers() callbacks.setExtensionName("Session Authentication Tool") self.out = callbacks.getStdout() # definition of suite tab self.tab = JPanel(GridBagLayout()) self.tabledata = MappingTableModel(callbacks) self.table = JTable(self.tabledata) #self.table.getColumnModel().getColumn(0).setPreferredWidth(50); #self.table.getColumnModel().getColumn(1).setPreferredWidth(100); self.tablecont = JScrollPane(self.table) c = GridBagConstraints() c.fill = GridBagConstraints.HORIZONTAL c.anchor = GridBagConstraints.FIRST_LINE_START c.gridx = 0 c.gridy = 0 c.gridheight = 6 c.weightx = 0.3 c.weighty = 0.5 self.tab.add(self.tablecont, c) c = GridBagConstraints() c.weightx = 0.1 c.anchor = GridBagConstraints.FIRST_LINE_START c.gridx = 1 c.gridy = 0 label_id = JLabel("Identifier:") self.tab.add(label_id, c) self.input_id = JTextField(20) self.input_id.setToolTipText("Enter the identifier which is used by the application to identifiy a particular test user account, e.g. a numerical user id or a user name.") c.gridy = 1 self.tab.add(self.input_id, c) c.gridy = 2 label_content = JLabel("Content:") self.tab.add(label_content, c) self.input_content = JTextField(20, actionPerformed=self.btn_add_id) self.input_content.setToolTipText("Enter some content which is displayed in responses of the application and shows that the current session belongs to a particular user, e.g. the full name of the user.") c.gridy = 3 self.tab.add(self.input_content, c) self.btn_add = JButton("Add/Edit Identity", actionPerformed=self.btn_add_id) c.gridy = 4 self.tab.add(self.btn_add, c) self.btn_del = JButton("Delete Identity", actionPerformed=self.btn_del_id) c.gridy = 5 self.tab.add(self.btn_del, c) callbacks.customizeUiComponent(self.tab) callbacks.customizeUiComponent(self.table) callbacks.customizeUiComponent(self.tablecont) callbacks.customizeUiComponent(self.btn_add) callbacks.customizeUiComponent(self.btn_del) callbacks.customizeUiComponent(label_id) callbacks.customizeUiComponent(self.input_id) callbacks.addSuiteTab(self) callbacks.registerScannerCheck(self) callbacks.registerIntruderPayloadGeneratorFactory(self) callbacks.registerContextMenuFactory(self)
def registerExtenderCallbacks( self, callbacks): self._helpers = callbacks.getHelpers() callbacks.setExtensionName("JWT FuzzHelper") callbacks.registerIntruderPayloadProcessor(self) callbacks.registerExtensionStateListener(self) self._stdout = PrintWriter(callbacks.getStdout(), True) self._stderr = PrintWriter(callbacks.getStderr(), True) # Holds values passed by user from Configuration panel self._fuzzoptions = { "target" : "Header", "selector" : None, "signature" : False, "algorithm" : "HS256", "key" : "", "key_cmd" : "" } self._isNone = lambda val: isinstance(val, type(None)) # Configuration panel Layout self._configurationPanel = JPanel() gridBagLayout = GridBagLayout() gridBagLayout.columnWidths = [ 0, 0, 0] gridBagLayout.rowHeights = [ 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] gridBagLayout.columnWeights = [ 0.0, 0.0, 0.0 ] gridBagLayout.rowWeights = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0] self._configurationPanel.setLayout(gridBagLayout) # Setup tabs self._tabs = JTabbedPane() self._tabs.addTab('Configuration',self._configurationPanel) #self._tabs.addTab('Help',self._helpPanel) # Target Options targetLabel = JLabel("Target Selection (Required): ") targetLabel.setFont(Font("Tahoma",Font.BOLD, 12)) c = GridBagConstraints() c.gridx = 0 c.gridy = 1 c.insets = Insets(0,10,0,0) c.anchor = GridBagConstraints.LINE_END self._configurationPanel.add(targetLabel,c) options = [ 'Header', 'Payload' ] self._targetComboBox = JComboBox(options) c = GridBagConstraints() c.gridx = 1 c.gridy = 1 c.anchor = GridBagConstraints.LINE_START self._configurationPanel.add(self._targetComboBox,c) # Help Button self._helpButton = JButton("Help", actionPerformed=self.helpMenu) c = GridBagConstraints() c.gridx = 2 c.gridy = 1 c.anchor = GridBagConstraints.FIRST_LINE_START self._configurationPanel.add(self._helpButton,c) # Selector Options self._selectorLabel = JLabel("JSON Selector [Object Identifier-Index Syntax] (Required): ") self._selectorLabel.setFont(Font("Tahoma",Font.BOLD, 12)) c = GridBagConstraints() c.gridx = 0 c.gridy = 2 c.insets = Insets(0,10,0,0) c.anchor = GridBagConstraints.LINE_END self._configurationPanel.add(self._selectorLabel, c) self._selectorTextField = JTextField('',50) c = GridBagConstraints() c.gridx = 1 c.gridy = 2 self._configurationPanel.add(self._selectorTextField, c) # Regex option self._regexLabel = JLabel("Use regex as JSON Selector? (Optional): ") self._regexLabel.setFont(Font("Tahoma",Font.BOLD, 12)) c = GridBagConstraints() c.gridx = 0 c.gridy = 3 c.insets = Insets(0,0,0,0) c.anchor = GridBagConstraints.LINE_END self._configurationPanel.add(self._regexLabel,c) self._regexCheckBox = JCheckBox("", actionPerformed=self.regexSelector) c = GridBagConstraints() c.gridx = 1 c.gridy = 3 c.anchor = GridBagConstraints.FIRST_LINE_START self._configurationPanel.add(self._regexCheckBox,c) # Signature Options generateSignatureLabel = JLabel("Generate signature? (Required): ") generateSignatureLabel.setFont(Font("Tahoma",Font.BOLD, 12)) c = GridBagConstraints() c.gridx = 0 c.gridy = 4 c.insets = Insets(0,10,0,0) c.anchor = GridBagConstraints.LINE_END self._configurationPanel.add(generateSignatureLabel,c) options = ["False", "True"] self._generateSignatureComboBox = JComboBox(options) c = GridBagConstraints() c.gridx = 1 c.gridy = 4 c.anchor = GridBagConstraints.LINE_START self._configurationPanel.add(self._generateSignatureComboBox,c) signatureAlgorithmLabel = JLabel("Signature Algorithm (Optional): ") signatureAlgorithmLabel.setFont(Font("Tahoma",Font.BOLD, 12)) c = GridBagConstraints() c.gridx = 0 c.gridy = 5 c.insets = Insets(0,10,0,0) c.anchor = GridBagConstraints.LINE_END self._configurationPanel.add(signatureAlgorithmLabel,c) options = ["None", "HS256","HS384","HS512","ES256","ES384","ES512","RS256","RS384","RS512","PS256","PS256","PS384","PS512"] self._algorithmSelectionComboBox = JComboBox(options) c = GridBagConstraints() c.gridx = 1 c.gridy = 5 c.anchor = GridBagConstraints.LINE_START self._configurationPanel.add(self._algorithmSelectionComboBox,c) # Signing key options self._signingKeyLabel = JLabel("Signing Key (Optional): ") self._signingKeyLabel.setFont(Font("Tahoma",Font.BOLD, 12)) c = GridBagConstraints() c.gridx = 0 c.gridy = 6 c.insets = Insets(0,10,0,0) c.anchor = GridBagConstraints.LINE_END self._configurationPanel.add(self._signingKeyLabel,c) self.addSigningKeyTextArea() self._fromFileTextField = JTextField('',50) fromFileLabel = JLabel("Signing key from file? (Optional): ") fromFileLabel.setFont(Font("Tahoma",Font.BOLD, 12)) c = GridBagConstraints() c.gridx = 0 c.gridy = 7 c.insets = Insets(0,0,0,0) c.anchor = GridBagConstraints.LINE_END self._configurationPanel.add(fromFileLabel,c) self._fromFileCheckBox = JCheckBox("", actionPerformed=self.fromFile) c = GridBagConstraints() c.gridx = 1 c.gridy = 7 c.anchor = GridBagConstraints.FIRST_LINE_START self._configurationPanel.add(self._fromFileCheckBox,c) self._fromCmdTextField = JTextField('',50) fromCmdLabel = JLabel("Signing key from command? (Optional): ") fromCmdLabel.setFont(Font("Tahoma",Font.BOLD, 12)) c = GridBagConstraints() c.gridx = 0 c.gridy = 8 c.insets = Insets(0,0,0,0) c.anchor = GridBagConstraints.LINE_END self._configurationPanel.add(fromCmdLabel,c) self._fromCmdCheckBox = JCheckBox("", actionPerformed=self.fromCmd) c = GridBagConstraints() c.gridx = 1 c.gridy = 8 c.anchor = GridBagConstraints.FIRST_LINE_START self._configurationPanel.add(self._fromCmdCheckBox,c) self._saveButton = JButton("Save Configuration", actionPerformed=self.saveOptions) self._saveButton.setText("Save Configuration") c = GridBagConstraints() c.gridx = 1 c.gridy = 9 c.anchor = GridBagConstraints.FIRST_LINE_START self._configurationPanel.add(self._saveButton,c) callbacks.customizeUiComponent(self._configurationPanel) callbacks.customizeUiComponent(self._tabs) callbacks.addSuiteTab(self) self._stdout.println("[JWT FuzzHelper] Loaded successfully") return
def getArguments(self): """ This function brings up a window to retreive any required arguments. It uses a window with fields for each argument, filled with any arguments already given. While this window is visible the program will wait, once it is no longer visible all the arguments will be filled with the entries in the fields. """ class LocationAction(AbstractAction): """ Action to set the text of a text field to a folder or directory. """ def __init__(self, field): AbstractAction.__init__(self, "...") self.field = field def actionPerformed(self, event): fileChooser = JFileChooser() fileChooser.fileSelectionMode = JFileChooser.FILES_AND_DIRECTORIES if fileChooser.showOpenDialog(None) == JFileChooser.APPROVE_OPTION: self.field.text = fileChooser.selectedFile.absolutePath class HelpAction(AbstractAction): """ Displays a help page in a web browser. """ def __init__(self): AbstractAction.__init__(self, "Help") def actionPerformed(self, event): browsers = ["google-chrome", "firefox", "opera", "epiphany", "konqueror", "conkeror", "midori", "kazehakase", "mozilla"] osName = System.getProperty("os.name") helpHTML = ClassLoader.getSystemResource("help.html").toString() if osName.find("Mac OS") == 0: Class.forName("com.apple.eio.FileManager").getDeclaredMethod( "openURL", [String().getClass()]).invoke(None, [helpHTML]) elif osName.find("Windows") == 0: Runtime.getRuntime().exec( "rundll32 url.dll,FileProtocolHandler " + helpHTML) else: browser = None for b in browsers: if browser == None and Runtime.getRuntime().exec(["which", b]).getInputStream().read() != -1: browser = b Runtime.getRuntime().exec([browser, helpHTML]) class OKAction(AbstractAction): """ Action for starting the pipeline. This action will simply make the window invisible. """ def __init__(self): AbstractAction.__init__(self, "Ok") def actionPerformed(self, event): frame.setVisible(False) class CancelAction(AbstractAction): """ Action for canceling the pipeline. Exits the program. """ def __init__(self): AbstractAction.__init__(self, "Cancel") def actionPerformed(self, event): sys.exit(0) frame = JFrame("Neofelis") frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) constraints = GridBagConstraints() contentPane = JPanel(GridBagLayout()) frame.setContentPane(contentPane) blastField = JTextField(self.blastLocation) genemarkField = JTextField(self.genemarkLocation) transtermField = JTextField(self.transtermLocation) tRNAscanField = JTextField(self.tRNAscanLocation) databaseLocationField = JTextField(os.path.split(self.database)[0]) databaseField = JTextField(os.path.split(self.database)[1]) matrixField = JTextField(str(self.matrix)) eValueField = JTextField(str(self.eValue)) minLengthField = JTextField(str(self.minLength)) scaffoldingDistanceField = JTextField(str(self.scaffoldingDistance)) promoterScoreField = JTextField(str(self.promoterScoreCutoff)) queryField = JTextField(self.sources[0]) constraints.gridx = 0 constraints.gridy = 0 constraints.gridwidth = 1 constraints.gridheight = 1 constraints.fill = GridBagConstraints.HORIZONTAL constraints.weightx = 0 constraints.weighty = 0 contentPane.add(JLabel("Blast Location"), constraints) constraints.gridy = 1 contentPane.add(JLabel("Genemark Location"), constraints) constraints.gridy = 2 contentPane.add(JLabel("Transterm Location"), constraints) constraints.gridy = 3 contentPane.add(JLabel("tRNAscan Location"), constraints) constraints.gridy = 4 contentPane.add(JLabel("Databases Location"), constraints) constraints.gridy = 5 contentPane.add(JLabel("Database"), constraints) constraints.gridy = 6 contentPane.add(JLabel("Matrix(Leave blank to use heuristic matrix)"), constraints) constraints.gridy = 7 contentPane.add(JLabel("E Value"), constraints) constraints.gridy = 8 contentPane.add(JLabel("Minimum Intergenic Length"), constraints) constraints.gridy = 9 contentPane.add(JLabel("Scaffold Distance"), constraints) constraints.gridy = 10 contentPane.add(JLabel("Promoter Score Cutoff"), constraints) constraints.gridy = 11 contentPane.add(JLabel("Query"), constraints) constraints.gridx = 1 constraints.gridy = 0 constraints.weightx = 1 contentPane.add(blastField, constraints) constraints.gridy = 1 contentPane.add(genemarkField, constraints) constraints.gridy = 2 contentPane.add(transtermField, constraints) constraints.gridy = 3 contentPane.add(tRNAscanField, constraints) constraints.gridy = 4 contentPane.add(databaseLocationField, constraints) constraints.gridy = 5 contentPane.add(databaseField, constraints) constraints.gridy = 6 contentPane.add(matrixField, constraints) constraints.gridy = 7 contentPane.add(eValueField, constraints) constraints.gridy = 8 contentPane.add(minLengthField, constraints) constraints.gridy = 9 contentPane.add(scaffoldingDistanceField, constraints) constraints.gridy = 10 contentPane.add(promoterScoreField, constraints) constraints.gridy = 11 contentPane.add(queryField, constraints) constraints.gridx = 2 constraints.gridy = 0 constraints.weightx = 0 constraints.fill = GridBagConstraints.NONE constraints.anchor = GridBagConstraints.LINE_END contentPane.add(JButton(LocationAction(blastField)), constraints) constraints.gridy = 1 contentPane.add(JButton(LocationAction(genemarkField)), constraints) constraints.gridy = 2 contentPane.add(JButton(LocationAction(transtermField)), constraints) constraints.gridy = 3 contentPane.add(JButton(LocationAction(tRNAscanField)), constraints) constraints.gridy = 4 contentPane.add(JButton(LocationAction(databaseLocationField)), constraints) constraints.gridy = 11 contentPane.add(JButton(LocationAction(queryField)), constraints) constraints.gridx = 0 constraints.gridy = 12 constraints.anchor = GridBagConstraints.LINE_START contentPane.add(JButton(HelpAction()), constraints) constraints.gridx = 1 constraints.anchor = GridBagConstraints.LINE_END contentPane.add(JButton(OKAction()), constraints) constraints.gridx = 2 contentPane.add(JButton(CancelAction()), constraints) frame.pack() frame.setLocationRelativeTo(None) frame.setVisible(True) while frame.isVisible(): pass self.blastLocation = blastField.getText() self.genemarkLocation = genemarkField.getText() self.transtermLocation = transtermField.getText() self.database = databaseLocationField.getText() + "/" + databaseField.getText() self.matrix = matrixField.getText() self.eValue = float(eValueField.getText()) self.minLength = int(minLengthField.getText()) self.scaffoldingDistance = int(scaffoldingDistanceField.getText()) self.promoterScoreCutoff = float(promoterScoreField.getText()) self.sources = [queryField.getText()]