def __init__(self,e,instans): self.e = e self.tab_instans = instans send_to_repeater = swing.JMenuItem('Send To Repeater') send_to_repeater.addActionListener(ActionEvent('send_to_repeater',e,self.tab_instans)) send_to_intruder = swing.JMenuItem('Send To Intruder') send_to_intruder.addActionListener(ActionEvent('send_to_intruder',e,self.tab_instans)) clear = swing.JMenuItem('Clear') clear.addActionListener(ActionEvent('clear',e,self.tab_instans)) clear_all = swing.JMenuItem('Clear All') clear_all.addActionListener(ActionEvent('clear_all',e,self.tab_instans)) self.add(send_to_repeater) self.add(send_to_intruder) self.add(swing.JSeparator()) self.add(clear) self.add(clear_all)
def createMenuItems(self, invocation): if not invocation.getToolFlag() == self._callbacks.TOOL_REPEATER: return menu = ArrayList() subMenu = swing.JMenu("Highlight Tab") # subMenu.setForeground(Color(255, 204, 51)) # uncomment this line if you want the menu item to be highlighted itself subMenu.add(self._createItem("Red", Color(255, 50, 0))) subMenu.add(self._createItem("Blue", Color(102, 153, 255))) subMenu.add(self._createItem("Green", Color(0, 204, 51))) subMenu.add(self._createItem("Orange", Color(255, 204, 51))) subMenu.add(self._createItem("Purple", Color(204, 51, 255))) subMenu.add(self._createItem("None", None)) subMenu.add(swing.JSeparator()) save = swing.JMenuItem("Save now", actionPerformed=self.saveSettings) save.setFont(save.getFont().deriveFont(Font.ITALIC)) subMenu.add(save) menu.add(subMenu) return menu
def createLeoSwingPrint(self): c = self.c import leoSwingPrint lsp = leoSwingPrint.leoSwingPrint(c) menu = lsp.getAsMenu() fmenu = self.getMenu("File") components = fmenu.getMenuComponents() x = 0 for z in components: if hasattr(z, 'getText') and z.getText() == "Recent Files...": break x += 1 spot = x + 1 sep = swing.JSeparator() fmenu.add(sep, spot) fmenu.add(menu, spot + 1)
def createLeoSwingPrintMenu(self): fmenu = self.getMenu("File") components = fmenu.getMenuComponents() x = 0 for z in components: if hasattr(z, 'getText') and z.getText() == "Recent Files...": break x += 1 spot = x + 1 pmenu = swing.JMenu("Printing") pnodes = swing.JMenu("Print Nodes") pmenu.add(pnodes) for z in self.printNodeTable: item = swing.JMenuItem(z[0]) item.actionPerformed = z[2] pnodes.add(item) sep = swing.JSeparator() fmenu.add(sep, spot) fmenu.add(pmenu, spot + 1) print_tree = swing.JMenuItem("Print Tree As Is") print_tree.actionPerformed = self.lsp.printTreeAsIs pmenu.add(print_tree) self.names_and_commands["Print Tree As Is"] = self.lsp.printTreeAsIs print_as_more = swing.JMenuItem("Print Outline in More Format") print_as_more.actionPerformed = self.lsp.printOutlineAsMore self.names_and_commands[ "Print Outline in More Formet"] = self.lsp.printOutlineAsMore pmenu.add(print_as_more)
def registerExtenderCallbacks(self, callbacks): # Print information about the plugin, set extension name, setup basic stuff self.printHeader() callbacks.setExtensionName("BurpHelper") self._callbacks = callbacks self._helpers = callbacks.getHelpers() callbacks.registerContextMenuFactory(self) # Create main panel with Components self._jTitleFont = Font("", Font.BOLD, 15) ##Current IP self._jLabelCurrentIPMainText = swing.JLabel() self._jLabelCurrentIPDesText = swing.JLabel() self._jLabelCurrentWanIpDes = swing.JLabel() self._jLabelCurrentLanIpDes = swing.JLabel() self._jLabelCurrentWanIp = swing.JLabel() self._jLabelCurrentLanIp = swing.JLabel() self._jCheckIPButton = swing.JButton("Check IP", actionPerformed=self.CheckIP) ##Proxy Setting self._jPAddButton = swing.JButton("Add", actionPerformed=self.PitemAdd) self._jPEditButton = swing.JButton("Edit", actionPerformed=self.PitemEdit) self._jPRemoveButton = swing.JButton("Remove", actionPerformed=self.PitemRemove) self._jLabelMainText = swing.JLabel() self._jLabelScanIPListen = swing.JLabel() self._jScanPanel = swing.JPanel() self._jScanPanel.setLayout(None) self._jTabledata = MappingTableModel(callbacks, self._jScanPanel) self._jTable = swing.JTable(self._jTabledata) self._jTablecont = swing.JScrollPane(self._jTable) self._jSeparator_first = swing.JSeparator(swing.JSeparator.HORIZONTAL) self._jSeparator_second = swing.JSeparator(swing.JSeparator.HORIZONTAL) ##Dashboard self._jLabelDashboardText = swing.JLabel() self._jLabelDashboardDesText = swing.JLabel() self._jDTabledata = DashboardTableModel(callbacks, self._jScanPanel) self._jDTable = swing.JTable(self._jDTabledata) self._jDTablecont = swing.JScrollPane(self._jDTable) # Configure GUI self._jLabelCurrentIPMainText.setText('Check Current IP ') self._jLabelCurrentIPMainText.setForeground(Color(228, 127, 0)) self._jLabelCurrentIPMainText.setFont(self._jTitleFont) self._jLabelCurrentIPDesText.setText('You can check your current IP') self._jLabelCurrentWanIpDes.setText("Wan IP : ") self._jLabelCurrentLanIpDes.setText("Lan IP : ") self._jLabelMainText.setText('Proxy Server Setting') self._jLabelMainText.setForeground(Color(228, 127, 0)) self._jLabelMainText.setFont(self._jTitleFont) self._jLabelScanIPListen.setText( 'You can set the proxy server, When the plugin is loading, Proxy Setting is initialized' ) self._jTable.getColumn("Name").setPreferredWidth(200) self._jTable.getColumn("IP").setPreferredWidth(150) self._jTable.getColumn("Port").setPreferredWidth(100) self._jTable.getColumn("Enabled").setPreferredWidth(50) self._jDTable.getColumn("URL").setPreferredWidth(180) self._jDTable.getColumn("Privilege").setPreferredWidth(130) self._jDTable.getColumn("ID").setPreferredWidth(100) self._jDTable.getColumn("Password").setPreferredWidth(100) self._jDTable.getColumn("Comment").setPreferredWidth(200) self._jScanPanel.setPreferredSize(awt.Dimension(1010, 1010)) self._jLabelDashboardText.setText('Target Site List') self._jLabelDashboardText.setForeground(Color(228, 127, 0)) self._jLabelDashboardText.setFont(self._jTitleFont) self._jLabelDashboardDesText.setText( 'You can save the account list per site.') self._jDAddButton = swing.JButton("Add", actionPerformed=self.DitemAdd) self._jDEditButton = swing.JButton("Edit", actionPerformed=self.DitemEdit) self._jDRemoveButton = swing.JButton("Remove", actionPerformed=self.DitemRemove) self._jDIDCopyButton = swing.JButton("ID Copy", actionPerformed=self.DIDCopy) self._jDPwCopyButton = swing.JButton("PW Copy", actionPerformed=self.DPwCopy) self._jDitemsDelete = swing.JButton("Clear", actionPerformed=self.DitemsDelete) self._jDURLConButton = swing.JButton("Open URL", actionPerformed=self.DOpenURL) # Configure locations self._jLabelCurrentIPMainText.setBounds(15, 10, 300, 20) self._jLabelCurrentIPDesText.setBounds(15, 32, 300, 20) self._jLabelCurrentWanIpDes.setBounds(15, 60, 60, 15) self._jLabelCurrentLanIpDes.setBounds(15, 80, 60, 15) self._jLabelCurrentWanIp.setBounds(80, 60, 100, 15) self._jLabelCurrentLanIp.setBounds(80, 80, 100, 15) self._jCheckIPButton.setBounds(190, 57, 90, 40) self._jSeparator_first.setBounds(15, 110, 900, 15) self._jLabelMainText.setBounds(15, 120, 300, 20) self._jLabelScanIPListen.setBounds(15, 142, 500, 20) self._jPAddButton.setBounds(15, 170, 100, 30) self._jPEditButton.setBounds(15, 205, 100, 30) self._jPRemoveButton.setBounds(15, 240, 100, 30) self._jTablecont.setBounds(120, 170, 600, 150) self._jSeparator_second.setBounds(15, 335, 900, 15) self._jLabelDashboardText.setBounds(15, 350, 300, 20) self._jLabelDashboardDesText.setBounds(15, 372, 300, 20) self._jDAddButton.setBounds(15, 400, 100, 30) self._jDEditButton.setBounds(15, 435, 100, 30) self._jDRemoveButton.setBounds(15, 470, 100, 30) self._jDURLConButton.setBounds(15, 505, 100, 30) self._jDIDCopyButton.setBounds(15, 540, 100, 30) self._jDPwCopyButton.setBounds(15, 575, 100, 30) self._jDTablecont.setBounds(120, 400, 750, 205) self._jDitemsDelete.setBounds(810, 375, 60, 25) # Component ADD self._jScanPanel.add(self._jLabelCurrentIPMainText) self._jScanPanel.add(self._jLabelCurrentIPDesText) self._jScanPanel.add(self._jLabelCurrentWanIp) self._jScanPanel.add(self._jLabelCurrentLanIp) self._jScanPanel.add(self._jLabelCurrentWanIpDes) self._jScanPanel.add(self._jLabelCurrentLanIpDes) self._jScanPanel.add(self._jCheckIPButton) self._jScanPanel.add(self._jLabelMainText) self._jScanPanel.add(self._jLabelScanIPListen) self._jScanPanel.add(self._jPAddButton) self._jScanPanel.add(self._jPEditButton) self._jScanPanel.add(self._jPRemoveButton) self._jScanPanel.add(self._jSeparator_first) self._jScanPanel.add(self._jTablecont) self._jScanPanel.add(self._jSeparator_second) self._jScanPanel.add(self._jLabelDashboardText) self._jScanPanel.add(self._jLabelDashboardDesText) self._jScanPanel.add(self._jDAddButton) self._jScanPanel.add(self._jDEditButton) self._jScanPanel.add(self._jDRemoveButton) self._jScanPanel.add(self._jDIDCopyButton) self._jScanPanel.add(self._jDPwCopyButton) self._jScanPanel.add(self._jDTablecont) self._jScanPanel.add(self._jDitemsDelete) self._jScanPanel.add(self._jDURLConButton) # ADD/EDIT Dialog Create Component ## PROXY self.panel = swing.JPanel() self.panel.setLayout(None) self.panel.setPreferredSize(awt.Dimension(200, 140)) self.DescriptionLabel = swing.JLabel() self.NameLabel = swing.JLabel() self.IPLabel = swing.JLabel() self.PortLabel = swing.JLabel() self.Nametext = swing.JTextField(50) self.IPtext = swing.JTextField(50) self.Porttext = swing.JTextField(50) ## ACOUNT self.Dpanel = swing.JPanel() self.Dpanel.setLayout(None) self.Dpanel.setPreferredSize(awt.Dimension(260, 210)) self.DDescriptionLabel = swing.JLabel() self.DURLLabel = swing.JLabel() self.DURLText = swing.JTextField(50) self.DPrivLabel = swing.JLabel() self.DPrivCombo = swing.JComboBox() self.DIDLabel = swing.JLabel() self.DIDText = swing.JTextField(50) self.DPassLabel = swing.JLabel() self.DPassText = swing.JTextField(50) self.DCommentLabel = swing.JLabel() self.DCommentText = swing.JTextField(50) self.DSubCommentLabel = swing.JLabel() # ADD/EDIT Dialog Configure locations ## PROXY self.DescriptionLabel.setBounds(0, 0, 190, 15) self.NameLabel.setBounds(5, 35, 50, 30) self.IPLabel.setBounds(5, 70, 50, 30) self.PortLabel.setBounds(5, 105, 50, 30) self.Nametext.setBounds(60, 35, 150, 30) self.IPtext.setBounds(60, 70, 150, 30) self.Porttext.setBounds(60, 105, 150, 30) ## ACCOUNT self.DDescriptionLabel.setBounds(0, 0, 200, 10) self.DURLLabel.setBounds(5, 35, 70, 30) self.DURLText.setBounds(80, 35, 180, 30) self.DPrivLabel.setBounds(5, 70, 70, 30) self.DPrivCombo.setBounds(80, 70, 180, 30) self.DIDLabel.setBounds(5, 105, 70, 30) self.DIDText.setBounds(80, 105, 180, 30) self.DPassLabel.setBounds(5, 140, 70, 30) self.DPassText.setBounds(80, 140, 180, 30) self.DCommentLabel.setBounds(5, 175, 70, 15) self.DCommentText.setBounds(80, 175, 180, 30) self.DSubCommentLabel.setBounds(0, 190, 80, 15) # ADD/EDIT Dialog Configure GUI ## PROXY self.DescriptionLabel.setText("Input your proxy server details.") self.NameLabel.setText("NAME : ") self.IPLabel.setText("IP : ") self.PortLabel.setText("PORT : ") ## ACCOUNT self.DDescriptionLabel.setText("Input your account details") self.DURLLabel.setText("URL : ") self.DPrivLabel.setText("Privilege : ") self.DIDLabel.setText("ID : ") self.DPassLabel.setText("Password : "******"Comment : ") self.DSubCommentLabel.setText("(Unique Text)") self.DPrivCombo.addItem("System Administrator") self.DPrivCombo.addItem("Staff Administrator") self.DPrivCombo.addItem("Internal Staff") self.DPrivCombo.addItem("Customer") self.DPrivCombo.addItem("The Lowest Privilege") self.DPrivCombo.addItem("ETC") self.DPrivCombo.setEditable(False) # ADD/EDIT Dialog Component ADD ## PROXY self.panel.add(self.DescriptionLabel) self.panel.add(self.NameLabel) self.panel.add(self.IPLabel) self.panel.add(self.PortLabel) self.panel.add(self.Nametext) self.panel.add(self.IPtext) self.panel.add(self.Porttext) ## ACCOUNT self.Dpanel.add(self.DDescriptionLabel) self.Dpanel.add(self.DURLLabel) self.Dpanel.add(self.DURLText) self.Dpanel.add(self.DIDLabel) self.Dpanel.add(self.DIDText) self.Dpanel.add(self.DPassLabel) self.Dpanel.add(self.DPassText) self.Dpanel.add(self.DPrivLabel) self.Dpanel.add(self.DPrivCombo) self.Dpanel.add(self.DCommentLabel) self.Dpanel.add(self.DCommentText) self.Dpanel.add(self.DSubCommentLabel) # Setup Tabs self._jConfigTab = swing.JTabbedPane() self._jConfigTab.addTab("Smart Settings", self._jScanPanel) callbacks.addSuiteTab(self) return
def registerExtenderCallbacks(self, callbacks): # Print information about the plugin, set extension name, setup basic stuff self.printHeader() callbacks.setExtensionName("SQLiPy") self._callbacks = callbacks self._helpers = callbacks.getHelpers() callbacks.registerContextMenuFactory(self) # Create SQLMap API configuration JPanel self._jPanel = swing.JPanel() self._jPanel.setLayout(awt.GridBagLayout()) self._jPanelConstraints = awt.GridBagConstraints() # Create panel for IP info self._jLabelIPListen = swing.JLabel("Listen on IP:") self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL self._jPanelConstraints.gridx = 0 self._jPanelConstraints.gridy = 0 self._jPanel.add(self._jLabelIPListen, self._jPanelConstraints) self._jTextFieldIPListen = swing.JTextField("",15) self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL self._jPanelConstraints.gridx = 1 self._jPanelConstraints.gridy = 0 self._jPanel.add(self._jTextFieldIPListen, self._jPanelConstraints) # Create panel for Port info self._jLabelPortListen = swing.JLabel("Listen on Port:") self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL self._jPanelConstraints.gridx = 0 self._jPanelConstraints.gridy = 1 self._jPanel.add(self._jLabelPortListen, self._jPanelConstraints) self._jTextFieldPortListen = swing.JTextField("",3) self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL self._jPanelConstraints.gridx = 1 self._jPanelConstraints.gridy = 1 self._jPanel.add(self._jTextFieldPortListen, self._jPanelConstraints) # Create panel to contain Python button self._jLabelPython = swing.JLabel("Select Python:") self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL self._jPanelConstraints.gridx = 0 self._jPanelConstraints.gridy = 2 self._jPanel.add(self._jLabelPython, self._jPanelConstraints) self._jButtonSetPython = swing.JButton('Python', actionPerformed=self.setPython) self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL self._jPanelConstraints.gridx = 1 self._jPanelConstraints.gridy = 2 self._jPanel.add(self._jButtonSetPython, self._jPanelConstraints) # Create panel to contain API button self._jLabelAPI = swing.JLabel("Select API:") self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL self._jPanelConstraints.gridx = 0 self._jPanelConstraints.gridy = 3 self._jPanel.add(self._jLabelAPI, self._jPanelConstraints) self._jButtonSetAPI = swing.JButton('SQLMap API', actionPerformed=self.setAPI) self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL self._jPanelConstraints.gridx = 1 self._jPanelConstraints.gridy = 3 self._jPanel.add(self._jButtonSetAPI, self._jPanelConstraints) # Create panel to execute API self._jButtonStartAPI = swing.JButton('Start API', actionPerformed=self.startAPI) self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL self._jPanelConstraints.gridx = 0 self._jPanelConstraints.gridy = 4 self._jPanelConstraints.gridwidth = 2 self._jPanel.add(self._jButtonStartAPI, self._jPanelConstraints) # Create SQLMap scanner panel # Combobox Values levelValues = [1,2,3,4,5] riskValues = [0,1,2,3] threadValues = [1,2,3,4,5,6,7,8,9,10] delayValues = [0,1,2,3,4,5] timeoutValues = [1,5,10,15,20,25,30,35,40,45,50,55,60] retryValues = [1,2,3,4,5,6,7,8,9,10] dbmsValues = ['Any', 'MySQL', 'Oracle', 'PostgreSQL', 'Microsoft SQL Server', 'Microsoft Access', 'SQLite', 'Firebird', 'Sybase', 'SAP MaxDB', 'DB2'] osValues = ['Any', 'Linux', 'Windows'] timeSecValues = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] torTypes = ['HTTP', 'SOCKS4', 'SOCKS5'] # GUI components self._jLabelScanText = swing.JLabel() self._jLabelScanIPListen = swing.JLabel() self._jLabelScanPortListen = swing.JLabel() self._jTextFieldScanIPListen = swing.JTextField() self._jTextFieldScanPortListen = swing.JTextField() self._jSeparator1 = swing.JSeparator() self._jLabelURL = swing.JLabel() self._jTextFieldURL = swing.JTextField() self._jLabelData = swing.JLabel() self._jTextData = swing.JTextArea() self._jScrollPaneData = swing.JScrollPane(self._jTextData) self._jLabelCookie = swing.JLabel() self._jTextFieldCookie = swing.JTextField() self._jLabelReferer = swing.JLabel() self._jTextFieldReferer = swing.JTextField() self._jLabelUA = swing.JLabel() self._jTextFieldUA = swing.JTextField() self._jSeparator2 = swing.JSeparator() self._jLabelParam = swing.JLabel() self._jTextFieldParam = swing.JTextField() self._jCheckTO = swing.JCheckBox() self._jSeparator3 = swing.JSeparator() self._jComboLevel = swing.JComboBox(levelValues) self._jLabelLevel = swing.JLabel() self._jLabelRisk = swing.JLabel() self._jComboRisk = swing.JComboBox(riskValues) self._jSeparator4 = swing.JSeparator() self._jCheckHPP = swing.JCheckBox('Param Pollution') self._jCheckCU = swing.JCheckBox('Current User') self._jCheckDB = swing.JCheckBox('Current DB') self._jCheckHost = swing.JCheckBox('Hostname') self._jCheckDBA = swing.JCheckBox('Is DBA?') self._jCheckUsers = swing.JCheckBox('List Users') self._jCheckPrivs = swing.JCheckBox('List Privs') self._jCheckPswds = swing.JCheckBox('List Passwords') self._jCheckRoles = swing.JCheckBox('List Roles') self._jCheckDBs = swing.JCheckBox('List DBs') self._jSeparator5 = swing.JSeparator() self._jLabelThreads = swing.JLabel() self._jLabelDelay = swing.JLabel() self._jLabelTimeout = swing.JLabel() self._jLabelRetry = swing.JLabel() self._jLabelTimeSec = swing.JLabel() self._jComboThreads = swing.JComboBox(threadValues) self._jComboDelay = swing.JComboBox(delayValues) self._jComboTimeout = swing.JComboBox(timeoutValues) self._jComboRetry = swing.JComboBox(retryValues) self._jComboTimeSec = swing.JComboBox(timeSecValues) self._jSeparator6 = swing.JSeparator() self._jLabelDBMS = swing.JLabel() self._jComboDBMS = swing.JComboBox(dbmsValues) self._jLabelOS = swing.JLabel() self._jComboOS = swing.JComboBox(osValues) self._jSeparator7 = swing.JSeparator() self._jLabelProxy = swing.JLabel() self._jTextFieldProxy = swing.JTextField() self._jSeparator8 = swing.JSeparator() self._jLabelTamper = swing.JLabel() self._jTextFieldTamper = swing.JTextField() self._jButtonStartScan = swing.JButton('Start Scan', actionPerformed=self.startScan) self._jLabelScanAPI = swing.JLabel() self._jSeparator9 = swing.JSeparator() self._jSeparator10 = swing.JSeparator() self._jCheckTor = swing.JCheckBox('Enable Tor') self._jLabelTorType = swing.JLabel() self._jComboTorType = swing.JComboBox(torTypes) self._jLabelTorPort = swing.JLabel() self._jTextFieldTorPort = swing.JTextField() # Configure GUI self._jLabelScanText.setText('API Listening On:') self._jLabelScanIPListen.setText('SQLMap API IP:') self._jLabelScanPortListen.setText('SQLMap API Port:') self._jLabelURL.setText('URL:') self._jLabelData.setText('Post Data:') self._jTextData.setColumns(20) self._jTextData.setRows(5) self._jTextData.setLineWrap(True) self._jScrollPaneData.setVerticalScrollBarPolicy(swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS) self._jLabelCookie.setText('Cookies:') self._jLabelReferer.setText('Referer:') self._jLabelUA.setText('User-Agent:') self._jLabelParam.setText('Test Parameter(s):') self._jCheckTO.setText('Text Only') self._jLabelLevel.setText('Level:') self._jLabelRisk.setText('Risk:') self._jComboLevel.setSelectedIndex(2) self._jComboRisk.setSelectedIndex(1) self._jComboThreads.setSelectedIndex(0) self._jComboDelay.setSelectedIndex(0) self._jComboTimeout.setSelectedIndex(6) self._jComboRetry.setSelectedIndex(2) self._jComboTimeSec.setSelectedIndex(4) self._jComboDBMS.setSelectedIndex(0) self._jComboOS.setSelectedIndex(0) self._jComboTorType.setSelectedIndex(2) self._jLabelThreads.setText('Threads:') self._jLabelDelay.setText('Delay:') self._jLabelTimeout.setText('Timeout:') self._jLabelRetry.setText('Retries:') self._jLabelTimeSec.setText('Time-Sec:') self._jLabelDBMS.setText('DBMS Backend:') self._jLabelOS.setText('Operating System:') self._jLabelProxy.setText('Proxy (HTTP://IP:Port):') self._jLabelTamper.setText('Tamper Scripts:') self._jLabelTorType.setText('Tor Type:') self._jLabelTorPort.setText('Tor Port:') self._jTextFieldTorPort.setText('9050') # Configure locations self._jLabelScanText.setBounds(15, 16, 126, 20) self._jLabelScanIPListen.setBounds(15, 58, 115, 20) self._jLabelScanPortListen.setBounds(402, 55, 129, 20) self._jTextFieldScanIPListen.setBounds(167, 52, 206, 26) self._jTextFieldScanPortListen.setBounds(546, 52, 63, 26) self._jSeparator1.setBounds(15, 96, 790, 10) self._jLabelURL.setBounds(15, 117, 35, 20) self._jTextFieldURL.setBounds(166, 114, 535, 26) self._jLabelData.setBounds(15, 156, 73, 20) self._jTextData.setColumns(20) self._jTextData.setRows(5) self._jScrollPaneData.setBounds(166, 156, 535, 96) self._jLabelCookie.setBounds(15, 271, 61, 20) self._jTextFieldCookie.setBounds(166, 271, 535, 26) self._jLabelReferer.setBounds(15, 320, 57, 20) self._jTextFieldReferer.setBounds(166, 320, 535, 26) self._jLabelUA.setBounds(15, 374, 86, 20) self._jTextFieldUA.setBounds(166, 371, 535, 26) self._jSeparator2.setBounds(15, 459, 790, 10) self._jLabelParam.setBounds(15, 483, 132, 20) self._jTextFieldParam.setBounds(165, 480, 366, 26) self._jCheckTO.setBounds(584, 479, 101, 29) self._jSeparator3.setBounds(15, 526, 790, 10) self._jComboLevel.setBounds(165, 544, 180, 26) self._jLabelLevel.setBounds(15, 547, 42, 20) self._jLabelRisk.setBounds(430, 547, 35, 20) self._jComboRisk.setBounds(518, 544, 180, 26) self._jSeparator4.setBounds(15, 588, 790, 10) self._jCheckHPP.setBounds(15, 608, 145, 29) self._jCheckCU.setBounds(191, 608, 123, 29) self._jCheckDB.setBounds(340, 608, 111, 29) self._jCheckHost.setBounds(469, 608, 103, 29) self._jCheckDBA.setBounds(599, 608, 105, 29) self._jCheckUsers.setBounds(15, 655, 101, 29) self._jCheckPswds.setBounds(191, 655, 135, 29) self._jCheckPrivs.setBounds(344, 655, 95, 29) self._jCheckRoles.setBounds(469, 655, 99, 29) self._jCheckDBs.setBounds(599, 655, 89, 29) self._jSeparator5.setBounds(15, 696, 790, 10) self._jLabelThreads.setBounds(15, 719, 63, 20) self._jLabelDelay.setBounds(173, 719, 45, 20) self._jLabelTimeout.setBounds(326, 719, 65, 20) self._jLabelRetry.setBounds(484, 719, 48, 20) self._jLabelTimeSec.setBounds(642, 719, 65, 20) self._jComboThreads.setBounds(80, 716, 78, 26) self._jComboDelay.setBounds(233, 716, 78, 26) self._jComboTimeout.setBounds(391, 716, 78, 26) self._jComboRetry.setBounds(549, 716, 78, 26) self._jComboTimeSec.setBounds(717, 716, 78, 26) self._jSeparator6.setBounds(15, 758, 790, 10) self._jLabelDBMS.setBounds(15, 781, 110, 20) self._jComboDBMS.setBounds(143, 778, 191, 26) self._jLabelOS.setBounds(352, 781, 132, 20) self._jComboOS.setBounds(502, 778, 191, 26) self._jSeparator7.setBounds(15, 820, 790, 10) self._jLabelProxy.setBounds(15, 844, 171, 20) self._jTextFieldProxy.setBounds(204, 841, 256, 26) self._jSeparator8.setBounds(15, 887, 790, 10) self._jCheckTor.setBounds(15, 911, 171, 20) self._jLabelTorType.setBounds(206, 908, 65, 26) self._jComboTorType.setBounds(291, 908, 100, 26) self._jLabelTorPort.setBounds(460, 908, 129, 26) self._jTextFieldTorPort.setBounds(545, 908, 65, 26) self._jSeparator9.setBounds(15, 954, 790, 10) self._jLabelTamper.setBounds(15, 979, 171, 20) self._jTextFieldTamper.setBounds(204, 976, 256, 26) self._jSeparator10.setBounds(15, 1024, 790, 10) self._jButtonStartScan.setBounds(346, 1047, 103, 29) self._jLabelScanAPI.setBounds(167, 16, 275, 20) # Create main panel self._jScanPanel = swing.JPanel() self._jScanPanel.setLayout(None) self._jScanPanel.setPreferredSize(awt.Dimension(1010,1010)) self._jScanPanel.add(self._jLabelScanText) self._jScanPanel.add(self._jLabelScanIPListen) self._jScanPanel.add(self._jLabelScanPortListen) self._jScanPanel.add(self._jTextFieldScanIPListen) self._jScanPanel.add(self._jTextFieldScanPortListen) self._jScanPanel.add(self._jSeparator1) self._jScanPanel.add(self._jLabelURL) self._jScanPanel.add(self._jTextFieldURL) self._jScanPanel.add(self._jLabelData) self._jScanPanel.add(self._jScrollPaneData) self._jScanPanel.add(self._jLabelCookie) self._jScanPanel.add(self._jTextFieldCookie) self._jScanPanel.add(self._jLabelReferer) self._jScanPanel.add(self._jTextFieldReferer) self._jScanPanel.add(self._jLabelUA) self._jScanPanel.add(self._jTextFieldUA) self._jScanPanel.add(self._jSeparator2) self._jScanPanel.add(self._jLabelParam) self._jScanPanel.add(self._jTextFieldParam) self._jScanPanel.add(self._jCheckTO) self._jScanPanel.add(self._jSeparator3) self._jScanPanel.add(self._jComboLevel) self._jScanPanel.add(self._jLabelLevel) self._jScanPanel.add(self._jLabelRisk) self._jScanPanel.add(self._jComboRisk) self._jScanPanel.add(self._jSeparator4) self._jScanPanel.add(self._jCheckHPP) self._jScanPanel.add(self._jCheckCU) self._jScanPanel.add(self._jCheckDB) self._jScanPanel.add(self._jCheckHost) self._jScanPanel.add(self._jCheckDBA) self._jScanPanel.add(self._jCheckUsers) self._jScanPanel.add(self._jCheckPswds) self._jScanPanel.add(self._jCheckPrivs) self._jScanPanel.add(self._jCheckRoles) self._jScanPanel.add(self._jCheckDBs) self._jScanPanel.add(self._jSeparator5) self._jScanPanel.add(self._jLabelThreads) self._jScanPanel.add(self._jLabelDelay) self._jScanPanel.add(self._jLabelTimeout) self._jScanPanel.add(self._jLabelRetry) self._jScanPanel.add(self._jLabelTimeSec) self._jScanPanel.add(self._jComboThreads) self._jScanPanel.add(self._jComboDelay) self._jScanPanel.add(self._jComboTimeout) self._jScanPanel.add(self._jComboRetry) self._jScanPanel.add(self._jComboTimeSec) self._jScanPanel.add(self._jSeparator6) self._jScanPanel.add(self._jLabelDBMS) self._jScanPanel.add(self._jComboDBMS) self._jScanPanel.add(self._jLabelOS) self._jScanPanel.add(self._jComboOS) self._jScanPanel.add(self._jSeparator7) self._jScanPanel.add(self._jLabelProxy) self._jScanPanel.add(self._jTextFieldProxy) self._jScanPanel.add(self._jSeparator8) self._jScanPanel.add(self._jCheckTor) self._jScanPanel.add(self._jLabelTorType) self._jScanPanel.add(self._jComboTorType) self._jScanPanel.add(self._jLabelTorPort) self._jScanPanel.add(self._jTextFieldTorPort) self._jScanPanel.add(self._jSeparator9) self._jScanPanel.add(self._jLabelTamper) self._jScanPanel.add(self._jTextFieldTamper) self._jScanPanel.add(self._jSeparator10) self._jScanPanel.add(self._jButtonStartScan) self._jScanPanel.add(self._jLabelScanAPI) self._jScrollPaneMain = swing.JScrollPane(self._jScanPanel) self._jScrollPaneMain.setViewportView(self._jScanPanel) self._jScrollPaneMain.setPreferredSize(awt.Dimension(999,999)) # Create SQLMap log JPanel self._jLogPanel = swing.JPanel() self._jLogPanel.setLayout(None) # Create label, combobox, and button to get logs and textarea to display them self._jLabelLog = swing.JLabel("Logs for Scan ID:") self._jComboLogs = swing.JComboBox(self.scantasks) self._jButtonGetLogs = swing.JButton('Get', actionPerformed=self.getLogs) self._jButtonRemoveLogs = swing.JButton('Remove', actionPerformed=self.removeLogs) self._jTextLogs = swing.JTextArea() self._jTextLogs.setColumns(50) self._jTextLogs.setRows(50) self._jTextLogs.setLineWrap(True) self._jTextLogs.setEditable(False) self._jScrollPaneLogs = swing.JScrollPane(self._jTextLogs) self._jScrollPaneLogs.setVerticalScrollBarPolicy(swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS) self._jLabelLog.setBounds(15, 16, 126, 20) self._jComboLogs.setBounds(167, 16, 535, 20) self._jButtonGetLogs.setBounds(718, 16, 50, 20) self._jButtonRemoveLogs.setBounds(783, 16, 80, 20) self._jScrollPaneLogs.setBounds(15, 58, 846, 400) self._jLogPanel.add(self._jLabelLog) self._jLogPanel.add(self._jComboLogs) self._jLogPanel.add(self._jButtonGetLogs) self._jLogPanel.add(self._jButtonRemoveLogs) self._jLogPanel.add(self._jScrollPaneLogs) # Create SQLMap stop scan JPanel self._jStopScanPanel = swing.JPanel() self._jStopScanPanel.setLayout(None) # Create label, combobox, and button to stop scans and textfield to display success self._jLabelStopScan = swing.JLabel("Stop Scan ID:") self._jComboStopScan = swing.JComboBox(self.scantasks) self._jButtonStopScan = swing.JButton('Stop', actionPerformed=self.stopScan) self._jButtonRemoveScan = swing.JButton('Remove', actionPerformed=self.removeScan) self._jLabelStopStatus = swing.JLabel() self._jLabelStopScan.setBounds(15, 16, 126, 20) self._jComboStopScan.setBounds(167, 16, 535, 20) self._jButtonStopScan.setBounds(718, 16, 55, 20) self._jButtonRemoveScan.setBounds(783, 16, 80, 20) self._jLabelStopStatus.setBounds(167, 58, 846, 20) self._jStopScanPanel.add(self._jLabelStopScan) self._jStopScanPanel.add(self._jComboStopScan) self._jStopScanPanel.add(self._jButtonStopScan) self._jStopScanPanel.add(self._jButtonRemoveScan) self._jStopScanPanel.add(self._jLabelStopStatus) # Setup Tabs self._jConfigTab = swing.JTabbedPane() self._jConfigTab.addTab("SQLMap API", self._jPanel) self._jConfigTab.addTab("SQLMap Scanner", self._jScrollPaneMain) self._jConfigTab.addTab("SQLMap Logs", self._jLogPanel) self._jConfigTab.addTab("SQLMap Scan Stop", self._jStopScanPanel) callbacks.customizeUiComponent(self._jConfigTab) callbacks.addSuiteTab(self) return
def initGui(self): self.tab = swing.JPanel() self.titleLabel = swing.JLabel("Burp Importer") self.titleLabel.setFont(Font("Tahoma", 1, 16)) self.titleLabel.setForeground(Color(235, 136, 0)) self.infoLabel = swing.JLabel( "Burp Importer loads a list of URLs or parses output from various automated scanners and populates the sitemap with each successful connection." ) self.infoLabel.setFont(Font("Tahoma", 0, 12)) self.fileOptionLabel = swing.JLabel("File Load Option") self.fileOptionLabel.setFont(Font("Tahoma", 1, 12)) self.fileDescLabel = swing.JLabel( "This option is only used when loading a file to be parsed for http(s) connections. You can disregard this option and paste a list of URLs in the box below." ) self.fileDescLabel.setFont(Font("Tahoma", 0, 12)) self.fileDescLabel2 = swing.JLabel( "Supported files: .gnamp, .nessus, .txt") self.fileDescLabel2.setFont(Font("Tahoma", 0, 12)) self.parseFileButton = swing.JButton("Load File to Parse", actionPerformed=self.loadFile) self.urlLabel = swing.JLabel("URL List") self.urlLabel.setFont(Font("Tahoma", 1, 12)) self.urlDescLabel = swing.JLabel( "URLs in this list should be in the format: protocol://host:port/optional-path" ) self.urlDescLabel.setFont(Font("Tahoma", 0, 12)) self.urlDescLabel2 = swing.JLabel( "Example: https://127.0.0.1:443/index. Port is optional, 80 or 443 will be assumed." ) self.urlDescLabel2.setFont(Font("Tahoma", 0, 12)) self.pasteButton = swing.JButton("Paste", actionPerformed=self.paste) self.loadButton = swing.JButton("Copy List", actionPerformed=self.setClipboardText) self.removeButton = swing.JButton("Remove", actionPerformed=self.remove) self.clearButton = swing.JButton("Clear", actionPerformed=self.clear) self.urlListModel = swing.DefaultListModel() self.urlList = swing.JList(self.urlListModel) self.urlListPane = swing.JScrollPane(self.urlList) self.addButton = swing.JButton("Add", actionPerformed=self.addURL) self.runLabel = swing.JLabel( "<html>Click the <b>RUN</b> button to attempt a connection to each URL in the URL List. Successful connections will be added to Burp's sitemap.</html>" ) self.runLabel.setFont(Font("Tahoma", 0, 12)) self.redirectsCheckbox = swing.JCheckBox( "Enable: Follow Redirects (301 or 302 Response)") self.runButton = swing.JButton("RUN", actionPerformed=self.runClicked) self.runButton.setFont(Font("Tahoma", 1, 12)) self.addUrlField = swing.JTextField("New URL...", focusGained=self.clearField, focusLost=self.fillField) self.logLabel = swing.JLabel("Log:") self.logLabel.setFont(Font("Tahoma", 1, 12)) self.logPane = swing.JScrollPane() self.logArea = swing.JTextArea( "Burp Importer Log - Parsing and Run details will be appended here.\n" ) self.logArea.setLineWrap(True) self.logPane.setViewportView(self.logArea) self.webPortDict = {'80':'http','81':'http','82':'http','83':'http','443':'https','2301':'http','2381':'https','8000':'http','8008':'http','8080':'http','8083':'https','8180':'http','8400':'http',\ '8443':'https','8834':'https','8888':'http','9001':'http','9043':'https','9080':'http','9090':'http','9100':'http','9443':'https'} self.bar = swing.JSeparator(swing.SwingConstants.HORIZONTAL) self.bar2 = swing.JSeparator(swing.SwingConstants.HORIZONTAL) layout = swing.GroupLayout(self.tab) self.tab.setLayout(layout) # Credit to Antonio Sánchez and https://github.com/Dionach/HeadersAnalyzer/ layout.setHorizontalGroup( layout.createParallelGroup(swing.GroupLayout.Alignment.LEADING). addGroup(layout.createSequentialGroup().addGap(15).addGroup( layout.createParallelGroup( swing.GroupLayout.Alignment.LEADING).addComponent( self.titleLabel).addComponent( self.infoLabel).addComponent( self.fileOptionLabel).addComponent( self.fileDescLabel).addComponent( self.fileDescLabel2).addComponent( self.parseFileButton).addComponent( self.bar).addComponent( self.urlLabel). addComponent(self.urlDescLabel).addComponent( self.urlDescLabel2).addComponent(self.bar2).addComponent( self.runLabel).addComponent( self.redirectsCheckbox).addComponent( self.runButton).addComponent( self.logPane, swing.GroupLayout.PREFERRED_SIZE, 525, swing.GroupLayout.PREFERRED_SIZE). addGroup(layout.createSequentialGroup().addGroup( layout.createParallelGroup( swing.GroupLayout.Alignment.TRAILING). addComponent(self.addButton).addGroup( layout.createParallelGroup( swing.GroupLayout.Alignment.LEADING).addComponent( self.logLabel).addGroup( layout.createParallelGroup( swing.GroupLayout.Alignment.TRAILING, False).addComponent( self.removeButton, swing.GroupLayout.DEFAULT_SIZE, swing.GroupLayout.DEFAULT_SIZE, lang.Short.MAX_VALUE).addComponent( self.pasteButton, swing.GroupLayout.DEFAULT_SIZE, swing.GroupLayout.DEFAULT_SIZE, lang.Short.MAX_VALUE). addComponent( self.loadButton, swing.GroupLayout.DEFAULT_SIZE, swing.GroupLayout.DEFAULT_SIZE, lang.Short.MAX_VALUE).addComponent( self.clearButton, swing.GroupLayout.DEFAULT_SIZE, swing.GroupLayout.PREFERRED_SIZE, lang.Short.MAX_VALUE))) ).addPreferredGap( swing.LayoutStyle.ComponentPlacement.UNRELATED).addGroup( layout.createParallelGroup( swing.GroupLayout.Alignment.LEADING).addComponent( self.urlListPane, swing.GroupLayout.PREFERRED_SIZE, 350, swing.GroupLayout.PREFERRED_SIZE).addComponent( self.addUrlField, swing.GroupLayout.PREFERRED_SIZE, 350, swing.GroupLayout.PREFERRED_SIZE)))). addContainerGap(26, lang.Short.MAX_VALUE))) layout.setVerticalGroup( layout.createParallelGroup(swing.GroupLayout.Alignment.LEADING). addGroup( layout.createSequentialGroup().addGap(15).addComponent( self.titleLabel).addGap(10).addComponent( self.infoLabel).addGap(10).addComponent( self.fileOptionLabel).addGap(10).addComponent( self.fileDescLabel).addGap(10).addComponent( self.fileDescLabel2).addGap(10). addComponent(self.parseFileButton).addGap(10).addComponent( self.bar).addComponent( self.urlLabel).addGap(10).addComponent( self.urlDescLabel).addGap(10). addComponent(self.urlDescLabel2).addPreferredGap( swing.LayoutStyle.ComponentPlacement.UNRELATED).addGroup( layout.createParallelGroup( swing.GroupLayout.Alignment.LEADING). addGroup(layout.createSequentialGroup().addGroup( layout.createParallelGroup( swing.GroupLayout.Alignment.LEADING). addGroup(layout.createSequentialGroup( ).addComponent(self.pasteButton).addPreferredGap( swing.LayoutStyle.ComponentPlacement.RELATED ).addComponent(self.loadButton).addPreferredGap( swing.LayoutStyle.ComponentPlacement.RELATED ).addComponent(self.removeButton).addPreferredGap( swing.LayoutStyle.ComponentPlacement.RELATED ).addComponent(self.clearButton)).addComponent( self.urlListPane, swing.GroupLayout.PREFERRED_SIZE, 138, swing.GroupLayout.PREFERRED_SIZE)).addGap(10). addGroup( layout.createParallelGroup( swing.GroupLayout.Alignment.BASELINE). addComponent(self.addButton).addComponent( self.addUrlField, swing.GroupLayout.PREFERRED_SIZE, swing.GroupLayout.DEFAULT_SIZE, swing.GroupLayout.PREFERRED_SIZE))) ).addGap(10).addComponent(self.bar2).addComponent( self.runLabel).addGap(10).addComponent( self.redirectsCheckbox).addGap(10).addComponent( self.runButton).addGap(10). addComponent(self.logLabel).addPreferredGap( swing.LayoutStyle.ComponentPlacement.RELATED).addGap( 8, 8, 8).addComponent( self.logPane, swing.GroupLayout.PREFERRED_SIZE, 125, swing.GroupLayout.PREFERRED_SIZE).addPreferredGap( swing.LayoutStyle.ComponentPlacement.RELATED ).addContainerGap(swing.GroupLayout.DEFAULT_SIZE, lang.Short.MAX_VALUE))) return
def initGui(self): self.tab = swing.JPanel() layout = swing.GroupLayout(self.tab) self.tab.setLayout(layout) self.titleLabel = swing.JLabel("RSA Plugin") self.titleLabel.setFont(Font("Tahoma", 1, 16)) self.titleLabel.setForeground(Color(235,136,0)) self.infoLabel = swing.JLabel("Try to use eazier by use custom cotext menu button for RSA en/decode.") self.infoLabel.setFont(Font("Tahoma", 0, 12)) self.attentionLabel = swing.JLabel("[*] ONlY SUPPORT PKCS#1, you could trans PKCS#8 to PKCS#1 for use this extension.") self.attentionLabel.setFont(Font("Tahoma", 1, 12)) self.attentionLabel.setForeground(Color(255,0,0)) self.keyLabel = swing.JLabel("RSA keys") self.keyLabel.setFont(Font("Tahoma", 1, 12)) self.rsapublickeyLabel = swing.JLabel("PublicKey") self.rsapublickeyTextArea = swing.JTextArea("") self.rsaprivatekeyLabel = swing.JLabel("PrivateKey") self.rsaprivatekeyTextArea = swing.JTextArea("") self.setkeyButton = swing.JButton("Set", actionPerformed=self.setOptions) self.generateButton = swing.JButton("Generate", actionPerformed=self.generateKeys) self.settingLabel = swing.JLabel("Settings") self.settingLabel.setFont(Font("Tahoma", 1, 12)) self.autoreplaceCheckBox = swing.JCheckBox("Auto Replace (auto replace the words selected with the RSA result)", actionPerformed=self.autoReplaceCheck) self.urlcodeenableCheckBox = swing.JCheckBox("Urlcode Enable (for the data needs to be base64 en/decoded before/after RSA)", actionPerformed=self.urlcodeEnableCheck) self.logLabel = swing.JLabel("Log") self.logLabel.setFont(Font("Tahoma", 1, 12)) self.logPane = swing.JScrollPane() self.logArea = swing.JTextArea("RSA Log - Every action's info will be appended here.\n") self.logArea.setLineWrap(True) self.logPane.setViewportView(self.logArea) self.logClearButton = swing.JButton("Clear", actionPerformed=self.logClear) self.bar = swing.JSeparator(swing.SwingConstants.HORIZONTAL) self.bar2 = swing.JSeparator(swing.SwingConstants.HORIZONTAL) self.bar3 = swing.JSeparator(swing.SwingConstants.HORIZONTAL) # 设置水平布局 layout.setHorizontalGroup( layout.createParallelGroup(swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(15) .addGroup(layout.createParallelGroup(swing.GroupLayout.Alignment.LEADING) .addComponent(self.titleLabel) .addComponent(self.infoLabel) .addComponent(self.attentionLabel) .addComponent(self.bar) .addComponent(self.keyLabel) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup() .addComponent(self.setkeyButton) .addComponent(self.generateButton)) .addPreferredGap(swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup() .addComponent(self.rsapublickeyLabel) .addComponent(self.rsapublickeyTextArea, swing.GroupLayout.PREFERRED_SIZE, 500, swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup() .addComponent(self.rsaprivatekeyLabel) .addComponent(self.rsaprivatekeyTextArea, swing.GroupLayout.PREFERRED_SIZE, 500, swing.GroupLayout.PREFERRED_SIZE))) .addComponent(self.bar2) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup() .addComponent(self.settingLabel)) .addPreferredGap(swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup() .addComponent(self.autoreplaceCheckBox) .addComponent(self.urlcodeenableCheckBox))) .addComponent(self.bar3) .addComponent(self.logLabel) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup() .addComponent(self.logClearButton)) .addPreferredGap(swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup() .addComponent(self.logPane, swing.GroupLayout.PREFERRED_SIZE, 1100, swing.GroupLayout.PREFERRED_SIZE))) ))) # 设置垂直布局 layout.setVerticalGroup( layout.createParallelGroup(swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(15) .addComponent(self.titleLabel) .addGap(10) .addComponent(self.infoLabel) .addGap(10) .addComponent(self.attentionLabel) .addGap(10) .addComponent(self.bar) .addGap(10) .addComponent(self.keyLabel) .addGap(10) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup() .addComponent(self.rsapublickeyLabel) .addComponent(self.rsaprivatekeyLabel)) .addPreferredGap(swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup() .addGroup(layout.createSequentialGroup() .addComponent(self.setkeyButton) .addGap(20) .addComponent(self.generateButton)) .addComponent(self.rsapublickeyTextArea, swing.GroupLayout.PREFERRED_SIZE, 250, swing.GroupLayout.PREFERRED_SIZE) .addComponent(self.rsaprivatekeyTextArea, swing.GroupLayout.PREFERRED_SIZE, 250, swing.GroupLayout.PREFERRED_SIZE))) .addGap(10) .addComponent(self.bar2) .addGap(10) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup() .addComponent(self.settingLabel)) .addPreferredGap(swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createSequentialGroup() .addComponent(self.autoreplaceCheckBox) .addGap(5) .addComponent(self.urlcodeenableCheckBox))) .addGap(10) .addComponent(self.bar3) .addGap(10) .addComponent(self.logLabel) .addGap(10) .addGroup(layout.createParallelGroup() .addComponent(self.logClearButton) .addComponent(self.logPane, swing.GroupLayout.PREFERRED_SIZE, 400, swing.GroupLayout.PREFERRED_SIZE)) ))