コード例 #1
0
    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)
コード例 #2
0
    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
コード例 #3
0
    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)
コード例 #4
0
    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)
コード例 #5
0
    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
コード例 #6
0
ファイル: SQLiPy.py プロジェクト: Key20/sqlipy
  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
コード例 #7
0
    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
コード例 #8
0
ファイル: RSAPlugin.py プロジェクト: sari3l/Burp-Extensions
	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))
				))