def __init__(self, reaclabel=REACTINV, scalelabel=SCALEFAC): WriterPanel.__init__(self) self.reacpanel = swing.Box(swing.BoxLayout.LINE_AXIS) self.reacpanel.add(swing.JLabel(reaclabel)) self.reacfield = swing.JTextField() self.reacpanel.add(self.reacfield) self.reacpanel.add( swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0))) self.add(self.reacpanel, awt.BorderLayout.CENTER) self.numscalepanel = swing.Box(swing.BoxLayout.LINE_AXIS) self.add(self.numscalepanel, awt.BorderLayout.EAST) self.numpanel = swing.Box(swing.BoxLayout.LINE_AXIS) self.numpanel.add(swing.JLabel(NUMBER)) self.numfield = swing.JFormattedTextField(value=lang.Float(1.0)) self.numfield.setPreferredSize( awt.Dimension(FIELDWIDTH, self.numfield.getHeight())) self.numpanel.add(self.numfield) self.scalepanel = swing.Box(swing.BoxLayout.LINE_AXIS) self.scalepanel.add(swing.JLabel(scalelabel)) self.scalefield = swing.JFormattedTextField( value=lang.Float(Data.Problem.VMAX)) self.scalefield.setPreferredSize( awt.Dimension(FIELDWIDTH, self.scalefield.getHeight())) self.scalepanel.add(self.scalefield) self.optLayout()
def addOptions(self): self.optpanel = swing.JPanel(layout=awt.BorderLayout()) self.add(self.optpanel, awt.BorderLayout.EAST) self.commentcheck = swing.JCheckBox( COMMENTS, horizontalTextPosition=swing.SwingConstants.LEFT) self.commentcheck.setSelected(SHOWCOMMENTS) self.optpanel.add(self.commentcheck, awt.BorderLayout.EAST) # self.grbcheck = swing.JCheckBox('Gurobi:', horizontalTextPosition = swing.SwingConstants.LEFT)#w# # self.grbcheck.setSelected(False)#w# self.LPbox = swing.Box(swing.BoxLayout.LINE_AXIS) self.LPbox.add( swing.Box.createRigidArea(awt.Dimension(2 * BORDERWIDTH, 0))) self.LPbox.add(swing.JLabel(SOLVER)) self.solverbox = swing.JComboBox(Data.Problem.SOLVERS) self.solverbox.addActionListener(self.SolverSwitcher(self)) self.LPbox.add(self.solverbox) self.LPbox.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0))) self.trimcheck = swing.JCheckBox( REDUCE, horizontalTextPosition=swing.SwingConstants.LEFT) self.LPbox.add(self.trimcheck) self.LPbox.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0))) self.optpanel.add(self.LPbox, awt.BorderLayout.WEST) #CENTER->WEST
def registerExtenderCallbacks(self, callbacks): self._callbacks = callbacks self._helpers = callbacks.getHelpers() self.context = None callbacks.setExtensionName("quoted-printable Parser") self._jPanel = swing.JPanel() self._jPanel.setLayout( swing.BoxLayout(self._jPanel, swing.BoxLayout.Y_AXIS)) self._jTextIn = swing.JTextArea("Input", 20, 10) self._jTextIn.setLineWrap(True) self._jScrollPaneIn = swing.JScrollPane(self._jTextIn) self._jScrollPaneIn.setVerticalScrollBarPolicy( swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS) self._jScrollPaneIn.setPreferredSize(awt.Dimension(20, 10)) self._jTextOut = swing.JTextArea("Output", 20, 10) self._jTextOut.setLineWrap(True) self._jScrollPaneOut = swing.JScrollPane(self._jTextOut) self._jScrollPaneOut.setVerticalScrollBarPolicy( swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS) self._jScrollPaneOut.setPreferredSize(awt.Dimension(20, 10)) self._jButtonPanel = swing.JPanel() self._jButtonDecode = swing.JButton('Decode', actionPerformed=self.decode) self._jButtonPanel.add(self._jButtonDecode) self._jPanel.add(self._jScrollPaneIn) self._jPanel.add(self._jButtonPanel) self._jPanel.add(self._jScrollPaneOut) callbacks.customizeUiComponent(self._jPanel) callbacks.addSuiteTab(self) return
def __init__(self): GNIWriterPanel.__init__(self) self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0))) self.samlabel = swing.JLabel(Util.SAMSIZE) self.add(self.samlabel) self.samfield = swing.JTextField() self.samfield.setMinimumSize(awt.Dimension(1, 0)) self.samfield.setPreferredSize(awt.Dimension(80, 0)) self.samfield.setMaximumSize(awt.Dimension(80, 50)) self.add(self.samfield)
def __init__(self): WriterPanel.__init__(self) self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0))) self.explabel = swing.JLabel(EXPRESSION) self.add(self.explabel) self.expfield = swing.JTextField() self.expfield.setMinimumSize(awt.Dimension(1, 0)) self.expfield.setPreferredSize(awt.Dimension(120, 0)) self.expfield.setMaximumSize(awt.Dimension(120, 50)) self.add(self.expfield) self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0))) self.thrlabel = swing.JLabel(THRESHOLD) self.add(self.thrlabel) self.thrfield = swing.JTextField('1.0') # self.thrfield = swing.JFormattedTextField('1.0') self.thrfield.setMinimumSize(awt.Dimension(1, 0)) self.thrfield.setPreferredSize(awt.Dimension(50, 0)) self.thrfield.setMaximumSize(awt.Dimension(50, 50)) self.add(self.thrfield) self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0))) self.argwriter = ArgWriterPanel('Reactions/Genes: ') self.add(self.argwriter)
def __init__(self, name, fun=None): super.__init__(self, swing.BoxLayout.LINE_AXIS) self.add(swing.JLabel(name)) self.add(swing.Box.createRigidArea(awt.Dimension(self.BORDERWIDTH, 0))) button = swing.JButton(CLOSELABEL, actionPerformed=self.close) button.setContentAreaFilled(False) button.setBorder(swing.BorderFactory.createEtchedBorder()) button.setPreferredSize(awt.Dimension(CLOSESIZE, CLOSESIZE)) self.add(button) self.fun = fun self.name = name
def __init__(self): WriterPanel.__init__(self) self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0))) self.bmlabel = swing.JLabel('Biomass: ') self.add(self.bmlabel) self.bmfield = swing.JTextField() self.bmfield.setMinimumSize(awt.Dimension(1, 0)) self.bmfield.setPreferredSize(awt.Dimension(120, 0)) self.bmfield.setMaximumSize(awt.Dimension(120, 50)) self.add(self.bmfield) self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH * 2, 0))) self.argwriter = ArgWriterPanel('Genes: ') self.add(self.argwriter)
def run(self): self.splash = splash = swing.JWindow() splash.setAlwaysOnTop(1) cpane = splash.getContentPane() rp = splash.getRootPane() tb = sborder.TitledBorder("Leo") tb.setTitleJustification(tb.CENTER) rp.setBorder(tb) splash.setBackground(awt.Color.ORANGE) dimension = awt.Dimension(400, 400) splash.setPreferredSize(dimension) splash.setSize(400, 400) sicon = g.os_path_join(g.app.loadDir, "..", "Icons", "Leosplash.GIF") #ii = swing.ImageIcon( "../Icons/Leosplash.GIF" ) ii = swing.ImageIcon(sicon) image = swing.JLabel(ii) image.setBackground(awt.Color.ORANGE) cpane.add(image) self.splashlabel = splashlabel = swing.JLabel("Leo Starting....") splashlabel.setBackground(awt.Color.ORANGE) splashlabel.setForeground(awt.Color.BLUE) cpane.add(splashlabel, awt.BorderLayout.SOUTH) w, h = self._calculateCenteredPosition(splash) splash.setLocation(w, h) splash.visible = True
def __init__(self): self.frame=swing.JFrame(title="My Frame", size=(300,300)) self.frame.defaultCloseOperation=swing.JFrame.EXIT_ON_CLOSE; self.frame.layout=awt.BorderLayout() self.panel1=swing.JPanel(awt.BorderLayout()) self.panel2=swing.JPanel(awt.GridLayout(4,1)) self.panel2.preferredSize = awt.Dimension(10,100) self.panel3=swing.JPanel(awt.BorderLayout()) self.title=swing.JLabel("Text Rendering") self.button1=swing.JButton("Print Text", actionPerformed=self.printMessage) self.button2=swing.JButton("Clear Text", actionPerformed=self.clearMessage) self.textField=swing.JTextField(30) self.outputText=swing.JTextArea(4,15) self.panel1.add(self.title) self.panel2.add(self.textField) self.panel2.add(self.button1) self.panel2.add(self.button2) self.panel3.add(self.outputText) self.frame.contentPane.add(self.panel1, awt.BorderLayout.PAGE_START) self.frame.contentPane.add(self.panel2, awt.BorderLayout.CENTER) self.frame.contentPane.add(self.panel3, awt.BorderLayout.PAGE_END)
def __init__(self): self.size = ABOUT_WINDOW_SIZE self.title = ABOUT_TITLE self.setLocationRelativeTo(None) self.contentPane.setLayout( swing.BoxLayout(self.contentPane, swing.BoxLayout.Y_AXIS)) copyrightInfoArea = swing.JTextPane() copyrightInfoArea.setEditable(0) #Load copyright information from the JES copyright file copyrightFile = open(COPYRIGHT_FILE, 'r') copyrightInfoArea.text = copyrightFile.read() copyrightInfoArea.setCaretPosition(0) copyrightFile.close() okButton = swing.JButton(OK_BUTTON_CAPTION, actionListener=self) topPane = swing.JScrollPane(copyrightInfoArea) topPane.setPreferredSize( awt.Dimension(lang.Short.MAX_VALUE, lang.Short.MAX_VALUE)) bottomPanel = swing.JPanel() bottomPanel.add(okButton) self.contentPane.add(topPane) self.contentPane.add(bottomPanel)
def __init__(self, id, client): self.id = id self.client = client self.events = {} self.actions = {} self.frame = swing.JFrame() self.frame.contentPane.layout = awt.BorderLayout() self.attr = ThingAttrModel(self) self.attrTable = ThingAttrTable(self.attr, client) self.attrTable.preferredSize = 200, 75 # self.frame.contentPane.add(swing.JScrollPane(self.attrTable)) self.frame.contentPane.add(self.attrTable) self.actionList = swing.Box.createVerticalBox() self.actionControls = {} self.frame.contentPane.add(self.actionList, 'North') self.eventBox = swing.Box.createVerticalBox() self.frame.contentPane.add(self.eventBox, 'South') self.frame.setDefaultCloseOperation( swing.WindowConstants.DO_NOTHING_ON_CLOSE) self.frame.windowClosing = self.clickedOnClose self.frame.show() self.frame.setSize(awt.Dimension(200, 200)) self.frame.validate()
def __init__(self): self.frame=swing.JFrame(title="Simple Jython Interpreter", size=(600,500)) self.frame.defaultCloseOperation=swing.JFrame.EXIT_ON_CLOSE; self.frame.layout=awt.BorderLayout() self.panel1=swing.JPanel(awt.BorderLayout()) self.panel2=swing.JPanel(awt.BorderLayout()) self.title=swing.JLabel("Jython Code") self.title2 = swing.JLabel("Interpreter Output") self.button1=swing.JButton("Run", actionPerformed=self.printMessage) self.button2=swing.JButton("Clear Output", actionPerformed=self.clearMessage) self.buttonPane = swing.JPanel() self.buttonPane.layout = swing.BoxLayout(self.buttonPane, swing.BoxLayout.LINE_AXIS) self.buttonPane.border = swing.BorderFactory.createEmptyBorder(0, 10, 10, 10) self.buttonPane.add(swing.Box.createHorizontalGlue()) self.buttonPane.add(self.button1) self.buttonPane.add(swing.Box.createRigidArea(awt.Dimension(10, 0))) self.buttonPane.add(self.button2) self.textField=swing.JTextArea(4,15) self.textField.lineWrap = True self.scrollPaneOne = swing.JScrollPane(self.textField) self.scrollPaneOne.verticalScrollBarPolicy = swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS self.outputText=swing.JTextArea(4,15) self.outputText.lineWrap = True self.outputText.editable = False self.scrollPane2 = swing.JScrollPane(self.outputText) self.scrollPane2.verticalScrollBarPolicy = swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS self.panel1.add(self.title, awt.BorderLayout.PAGE_START) self.panel1.add(self.scrollPaneOne, awt.BorderLayout.CENTER) self.panel2.add(self.title2, awt.BorderLayout.PAGE_START) self.panel2.add(self.scrollPane2, awt.BorderLayout.CENTER) self.splitPane = swing.JSplitPane(swing.JSplitPane.VERTICAL_SPLIT, self.panel1, self.panel2) self.splitPane.oneTouchExpandable = True self.minimumSize = awt.Dimension(50, 100) self.panel1.minimumSize = self.minimumSize self.panel2.minimumSize = self.minimumSize self.frame.contentPane.add(self.splitPane, awt.BorderLayout.CENTER) self.frame.contentPane.add(self.buttonPane, awt.BorderLayout.PAGE_END)
def __init__(self): GFAWriterPanel_gfva.__init__(self) self.remove(self.thrlabel) self.remove(self.thrfield) self.remove(self.argwriter) self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH * 2, 0))) self.argwriter = ArgWriterPanel('Reactions: ') self.add(self.argwriter)
def __init__(self): WriterPanel.__init__(self) self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0))) self.explabel = swing.JLabel(EXPRESSION) self.add(self.explabel) self.expfield = swing.JTextField() self.add(self.expfield)
def registerExtenderCallbacks(self, callbacks): print "Install Successful...." # 测试文本 testtext = u''' admin u'\u8fd9\u662f\u4e00\u4e2a\u6d4b\u8bd5\u9875\u9762' root u'\u4f60\u4ee5\u4e3a\u6709\u91cd\u8981\u4fe1\u606f\u4e48\uff1f' \u6211\u662F\u4E00\u4E2A\u7C89\u5237\u5320\uFF0C\u7C89\u5237\u672C\u9886\u5F3A\uFF0C \u6211\u8981\u628A\u90A3\u5C0F\u623F\u5B50\uFF0C\u5237\u7684\u5F88\u6F02\u4EAE\u3002 %u6211%u662F%u4E00%u4E2A%u7C89%u5237%u5320%uFF0C%u7C89%u5237%u672C%u9886%u5F3A%uFF0C %u6211%u8981%u628A%u90A3%u5C0F%u623F%u5B50%uFF0C%u5237%u7684%u5F88%u6F02%u4EAE%u3002 \x31\x2C\x31\x29\x3B\x75\x70\x64\x61\x74\x65\x20\x5B\x64\x76\x5F\x75\x73\x65\x72\x5D\x20\x73\x65\x74\x20\x75\x73\x65\x72\x67\x72\x6F\x75\x70\x69\x64\x3D\x31\x20\x77\x68\x65\x72\x65\x20\x75\x73\x65\x72\x69\x64\x3D\x32\x3B\x2D\x2D\x20 \x75\x73\x65\x72\x69\x64\x3D\x32\x3B\x2D\x2D\x20 0x310x2C0x310x290x3B0x750x700x640x610x740x650x200x5B0x640x760x5F0x750x730x650x720x5D0x200x730x650x740x200x750x730x650x720x670x720x6F0x750x700x690x640x3D0x310x200x770x680x650x720x650x200x750x730x650x720x690x640x3D0x320x3B0x2D0x2D0x20 0x312C31293B757064617465205B64765F757365725D20736574207573657267726F757069643D31207768657265207573657269643D323B2D2D20 闲话不说了,base64模块真正用的上的方法只有8个,分别是encode, decode, ZW5jb2Rlc3RyaW5n, ZGVjb2Rlc3RyaW5n, YjY0ZW5jb2Rl,b64decode, dXJsc2FmZV9iNjRkZWNvZGUsdXJsc2FmZV9iNjRlbmNvZGXjgII=他们8个可以两两分为4组, ZW5jb2RlLGRlY29kZQ==一组,专门用来编码和 解码文件的,也可以对StringIO里的数据做编解码; ZW5jb2Rlc3RyaW5nLGRlY29kZXN0cmluZw==一组,专门用来编码和解码字符串; ''' # 保持对象的引用 self._callbacks = callbacks # 获得扩展辅助对象 self._helpers = callbacks.getHelpers() # 设置Extender里面显示的插件名 callbacks.setExtensionName("DecodeAssistantDev0.2") # 用java的swing库创建一个标签 self._jPanel = swing.JPanel() self._jPanel.setLayout( swing.BoxLayout(self._jPanel, swing.BoxLayout.Y_AXIS)) # 文本框 self._jTextIn = swing.JTextArea(testtext, 20, 120) self._jTextIn.setLineWrap(True) self._jScrollPaneIn = swing.JScrollPane(self._jTextIn) self._jScrollPaneIn.setVerticalScrollBarPolicy( swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS) self._jScrollPaneIn.setPreferredSize(awt.Dimension(20, 120)) # 定义2个按钮,编码和解码 self._jButtonPanel = swing.JPanel() self._jButtonEncode = swing.JButton('Encode', actionPerformed=self.encode) self._jButtonDecode = swing.JButton('Decode', actionPerformed=self.decode) self._jButtonPanel.add(self._jButtonEncode) self._jButtonPanel.add(self._jButtonDecode) self._jPanel.add(self._jScrollPaneIn) self._jPanel.add(self._jButtonPanel) callbacks.customizeUiComponent(self._jPanel) # register ourselves as a message editor tab factory callbacks.addSuiteTab(self) return
def __init__(self): WriterPanel.__init__(self) self.dirlabel = swing.JLabel(DIRECTION) self.add(self.dirlabel) self.dirbox = swing.JComboBox(DIRORDER) self.add(self.dirbox) self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0))) self.objlabel = swing.JLabel(OBJECTIVE) self.add(self.objlabel) self.objfield = swing.JTextField() self.add(self.objfield)
def __init__(self): ObjArgWriterPanel.__init__(self, CONSTRAINT) theclass = swing.JTextField self.args = Util.OrderedDict.OrderedDict([ (FROM, theclass()), (TO, theclass()), (STEP, theclass()), ]) for label in self.args: self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0))) self.add(swing.JLabel(label)) self.add(self.args[label]) self._3D = False
def __init__(self, title=""): JFrame.__init__(self, title) self.size = 400, 500 self.windowClosing = self.closing label = JLabel(text="Class Name:") label.horizontalAlignment = JLabel.RIGHT tpanel = JPanel(layout=awt.FlowLayout()) self.text = JTextField(20, actionPerformed=self.entered) btn = JButton("Enter", actionPerformed=self.entered) tpanel.add(label) tpanel.add(self.text) tpanel.add(btn) bpanel = JPanel() self.tree = JTree(default_tree()) scrollpane = JScrollPane(self.tree) scrollpane.setMinimumSize(awt.Dimension(200, 200)) scrollpane.setPreferredSize(awt.Dimension(350, 400)) bpanel.add(scrollpane) bag = GridBag(self.contentPane) bag.addRow(tpanel, fill='HORIZONTAL', weightx=1.0, weighty=0.5) bag.addRow(bpanel, fill='BOTH', weightx=0.5, weighty=1.0)
def __init__(self): WriterPanel.__init__(self) self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0))) self.objlabel = swing.JLabel(OBJECTIVE) self.add(self.objlabel) self.objfield = swing.JTextField() self.objfield.setMinimumSize(awt.Dimension(1, 0)) self.objfield.setPreferredSize(awt.Dimension(120, 0)) self.objfield.setMaximumSize(awt.Dimension(120, 50)) self.add(self.objfield) self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0))) self.explabel = swing.JLabel(EXPRESSION) self.add(self.explabel) self.expfield = swing.JTextField() self.expfield.setMinimumSize(awt.Dimension(1, 0)) self.expfield.setPreferredSize(awt.Dimension(50, 0)) self.expfield.setMaximumSize(awt.Dimension(50, 50)) self.add(self.expfield) self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0))) self.argwriter = ArgWriterPanel('Reactions: ') self.add(self.argwriter)
def mkclk(self): global tmlab # create a borderless frame fclk = swing.JFrame("Clk",size=(390,295)) fclk.setUndecorated(True) fclk.getContentPane().setOpaque(True) fclk.contentPane.setLayout(swing.BoxLayout(fclk.contentPane,swing.BoxLayout.X_AXIS)) pan = swing.JPanel(size=(390,295),border= border.EtchedBorder(border.EtchedBorder.RAISED)) tmlab=swing.JLabel() self.updclk() pan.add(tmlab) fclk.contentPane.add(pan) fclk.setSize(awt.Dimension(400,200)) # this sets the location on the screen 400 across and 15 down. fclk.setLocation(awt.Point(400,15)) fclk.pack() fclk.show() #print "fin clk" return
def __init__(self): self.size = ABOUT_WINDOW_SIZE self.title = ABOUT_TITLE self.setLocationRelativeTo(None) self.contentPane.setLayout( swing.BoxLayout(self.contentPane, swing.BoxLayout.Y_AXIS)) introductionInfoArea = swing.JTextPane() introductionInfoArea.setEditable(0) #Load information from the JES introduction file introductionFile = open(INTRODUCTION_FILE, 'r') introductionInfoArea.text = introductionFile.read() introductionFile.close() okButton = swing.JButton(OK_BUTTON_CAPTION, actionListener=self) topPane = swing.JScrollPane(introductionInfoArea) topPane.setPreferredSize( awt.Dimension(lang.Short.MAX_VALUE, lang.Short.MAX_VALUE)) bottomPanel = swing.JPanel() bottomPanel.add(okButton) self.contentPane.add(topPane) self.contentPane.add(bottomPanel)
return JList(lstPrpVal) #=================================================================== # Get Sessions properties #=================================================================== ##inStream = io.FileInputStream("test/tn5250jMsgs.properties") config = tnj.GlobalConfigure.instance() prpSes = config.getProperties(config.SESSIONS) jLst1 = makeJListFromProperty(prpSes) #=================================================================== # Get System Properties #=================================================================== prpSys = System.getProperties() jLst2 = makeJListFromProperty(prpSys) #=================================================================== # GUI Stuff #=================================================================== minSize = awt.Dimension(100, 50) scrPan1 = JScrollPane(jLst1) scrPan1.setMinimumSize(minSize) scrPan2 = JScrollPane(jLst2) scrPan2.setMinimumSize(minSize) splitPane = JSplitPane(JSplitPane.VERTICAL_SPLIT, scrPan1, scrPan2) splitPane.setPreferredSize(awt.Dimension(600, 200)) frame = JFrame("System Properties") frame.getContentPane().add(splitPane) frame.pack() frame.show()
def registerExtenderCallbacks(self, callbacks): print "SAML BurpSuite Extension" print "Ben Campbell <eat_meatballs[at]hotmail.co.uk>" print "http://rewtdance.blogspot.co.uk" print "http://github.com/Meatballs1/burp_saml" # keep a reference to our callbacks object self._callbacks = callbacks # obtain an extension helpers object self._helpers = callbacks.getHelpers() # set our extension name callbacks.setExtensionName("SAML Decoder") # Create Tab self._jPanel = swing.JPanel() self._jPanel.setLayout( swing.BoxLayout(self._jPanel, swing.BoxLayout.Y_AXIS)) # SAML Binding Format self._jTextIn = swing.JTextArea("SAML Binding In", 20, 120) self._jTextIn.setLineWrap(True) self._jScrollPaneIn = swing.JScrollPane(self._jTextIn) self._jScrollPaneIn.setVerticalScrollBarPolicy( swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS) self._jScrollPaneIn.setPreferredSize(awt.Dimension(20, 120)) self._jTextOut = swing.JTextArea("SAML Binding Out", 20, 120) self._jTextOut.setLineWrap(True) self._jScrollPaneOut = swing.JScrollPane(self._jTextOut) self._jScrollPaneOut.setVerticalScrollBarPolicy( swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS) self._jScrollPaneOut.setPreferredSize(awt.Dimension(20, 120)) self._jButtonPanel = swing.JPanel() self._jButtonEncode = swing.JButton('Encode', actionPerformed=self.encode) self._jButtonDecode = swing.JButton('Decode', actionPerformed=self.decode) self._jButtonPanel.add(self._jButtonEncode) self._jButtonPanel.add(self._jButtonDecode) self._jPanel.add(self._jScrollPaneIn) self._jPanel.add(self._jButtonPanel) self._jPanel.add(self._jScrollPaneOut) # SAML Artifact Format self._jTextArtIn = swing.JTextArea("SAML Artifact In", 20, 120) self._jTextArtIn.setLineWrap(True) self._jScrollPaneArtIn = swing.JScrollPane(self._jTextArtIn) self._jScrollPaneArtIn.setVerticalScrollBarPolicy( swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS) self._jScrollPaneArtIn.setPreferredSize(awt.Dimension(20, 120)) self._jTextArtOut = swing.JTextArea("SAML Artifact Out", 20, 120) self._jTextArtOut.setLineWrap(True) self._jScrollPaneArtOut = swing.JScrollPane(self._jTextArtOut) self._jScrollPaneArtOut.setVerticalScrollBarPolicy( swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS) self._jScrollPaneArtOut.setPreferredSize(awt.Dimension(20, 120)) self._jButtonArtPanel = swing.JPanel() self._jButtonArtEncode = swing.JButton('Encode', actionPerformed=self.art_encode) self._jButtonArtDecode = swing.JButton('Decode', actionPerformed=self.art_decode) self._jButtonArtPanel.add(self._jButtonArtEncode) self._jButtonArtPanel.add(self._jButtonArtDecode) self._jPanel.add(self._jScrollPaneArtIn) self._jPanel.add(self._jButtonArtPanel) self._jPanel.add(self._jScrollPaneArtOut) callbacks.customizeUiComponent(self._jPanel) # register ourselves as a message editor tab factory callbacks.addSuiteTab(self) return
def __init__(self, maxSizeY, title, description, requestExecutor, responseExecutor, editBoxLabel=None, editBox=None, browseButton=None, tickBox=None): self.title = title self.descriptionLabel = swing.JLabel(description) self.requestExecutor = requestExecutor self.responseExecutor = responseExecutor self.panel = swing.JPanel() self.panel.setLayout( swing.BoxLayout(self.panel, swing.BoxLayout.Y_AXIS)) self.panel.setBorder(swing.BorderFactory.createTitledBorder(title)) self.panel.setAlignmentX(awt.Component.LEFT_ALIGNMENT) self.panel.setMaximumSize(awt.Dimension(1000, maxSizeY)) descriptionPanel = swing.JPanel() descriptionPanel.setLayout( swing.BoxLayout(descriptionPanel, swing.BoxLayout.X_AXIS)) descriptionPanel.add(self.descriptionLabel) self._setBorder(descriptionPanel, 10, 10) self.panel.add(descriptionPanel) optionPanel = swing.JPanel() optionPanel.setLayout( swing.BoxLayout(optionPanel, swing.BoxLayout.X_AXIS)) if editBox is not None: self.editBox = swing.JTextField(editBox) self.editBox.setMaximumSize(awt.Dimension(1000, 30)) optionPanel.add(swing.JLabel(editBoxLabel)) optionPanel.add(self.editBox) if browseButton is not None: self.browseButton = swing.JButton( 'Browse', actionPerformed=self.openBrowseDialog) optionPanel.add(self.browseButton) if editBox is not None or browseButton is not None: self._setBorder(optionPanel, 10, 10) self.panel.add(optionPanel) if tickBox is not None: self.tickBox = swing.JCheckBox(tickBox) tickBoxPanel = swing.JPanel() tickBoxPanel.setLayout( swing.BoxLayout(tickBoxPanel, swing.BoxLayout.X_AXIS)) tickBoxPanel.add(self.tickBox) self._setBorder(tickBoxPanel, 10, 10) self.panel.add(tickBoxPanel) enableButtonPanel = swing.JPanel() enableButtonPanel.setLayout( swing.BoxLayout(enableButtonPanel, swing.BoxLayout.X_AXIS)) self.enableButton = swing.JToggleButton('Disabled', actionPerformed=self.toggle) enableButtonPanel.add(self.enableButton) self._setBorder(enableButtonPanel, 10, 10) self.panel.add(enableButtonPanel)
def __init__(self): #"@sig public JESProgram()" #swing.UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); # self.userExperience = JESConfig.getInstance().getStringProperty(JESConfig.CONFIG_MODE); # self.gutterOn = JESConfig.getInstance().getBooleanProperty(JESConfig.CONFIG_GUTTER); # self.blockBoxOff = JESConfig.getInstance().getBooleanProperty(JESConfig.CONFIG_BLOCK); # self.autoSaveOnRun = JESConfig.getInstance().getBooleanProperty(JESConfig.CONFIG_AUTOSAVEONRUN); # self.backupSave = JESConfig.getInstance().getBooleanProperty(JESConfig.CONFIG_BACKUPSAVE); # self.wrapPixelValues = JESConfig.getInstance().getBooleanProperty(JESConfig.CONFIG_WRAPPIXELVALUES); # self.userFont = JESConfig.getInstance().getIntegerProperty(JESConfig.CONFIG_FONT); # self.showTurnin = JESConfig.getInstance().getBooleanProperty(JESConfig.CONFIG_SHOWTURNIN); # self.skin = JESConfig.getInstance().getStringProperty(JESConfig.CONFIG_SKIN); # self.webDefinitions = JESConfig.getInstance().getStringProperty(JESConfig.CONFIG_WEB_TURNIN); # self.mediaFolder = JESConfig.getInstance().getStringProperty(JESConfig.CONFIG_MEDIAPATH); self.logBuffer = JESLogBuffer.JESLogBuffer(self) # self.logBuffer.saveBoolean = JESConfig.getInstance().getBooleanProperty(JESConfig.CONFIG_LOGBUFFER); # let's just read the config file once, and if # it's no there, we'll handle it right now. # self.preCheckForConfigFile() # self.getSettingsLater = 0 # self.loadConfigFile() self.textForCommandWindow = '' self.aboutWindow = None self.introWindow = None self.gui = JESUI.JESUI(self) self.filename = ' ' self.settingsFileName = '' self.interpreter = JESInterpreter.JESInterpreter(self) # a gross hack?, see JESUI.py on why it's commentted out there self.interpreter.debugger.watcher.setMinimumSize( awt.Dimension(500, 400)) self.interpreter.debugger.watcher.setPreferredSize( awt.Dimension(600, 400)) self.gui.windowSetting(None) self.varsToHighlight = self.interpreter.getVarsToHighlight() self.chooser = JESFileChooser.JESFileChooser() self.defaultPath = io.File(JESConfig.getInstance().getStringProperty( JESConfig.CONFIG_MEDIAPATH)) self.setHelpArray() #self.loadSuccess(), 5/15/09 Dorn: removed as unnecessary and breaks due to needed code in loadSuccess for input self.gui.changeSkin(JESConfig.getInstance().getStringProperty( JESConfig.CONFIG_SKIN)) self.gui.show() if JESConfig.getInstance().getBooleanProperty(JESConfig.CONFIG_BLOCK): self.gui.editor.removeBox() else: self.gui.editor.addBox() if JESConfig.getInstance().getBooleanProperty(JESConfig.CONFIG_GUTTER): self.gui.turnOnGutter() else: self.gui.turnOffGutter() # self.checkForConfigFile() ## do these once we're started... # later is now! #if self.getSettingsLater: #self.openSettingsGUI() #self.openIntroductionWindow() #Show introduction window if settings could not be loaded (Either new JES user or bad write permissions) if not JESConfig.getInstance().isConfigLoaded(): self.openIntroductionWindow()
def __init__(self, title, host, port, service): # create window win = swing.JFrame(title, size=(800, 480)) win.setDefaultCloseOperation(swing.JFrame.EXIT_ON_CLOSE) win.contentPane.layout = awt.BorderLayout(10, 10) # add scrollable textfield status = swing.JTextPane(preferredSize=(780, 400)) status.setAutoscrolls(True) status.setEditable(False) status.setBorder(swing.BorderFactory.createEmptyBorder(20, 20, 20, 20)) paneScrollPane = swing.JScrollPane(status) paneScrollPane.setVerticalScrollBarPolicy( swing.JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED) win.contentPane.add(paneScrollPane, awt.BorderLayout.CENTER) # add server button self.started = "Start Server" self.stopped = "Stop Server" self.serverButton = swing.JButton(self.started, preferredSize=(150, 20), actionPerformed=self.controlServer) # add client button self.clientButton = swing.JButton("Invoke Method", preferredSize=(150, 20), actionPerformed=self.runClient) self.clientButton.enabled = False # position buttons buttonPane = swing.JPanel() buttonPane.setLayout( swing.BoxLayout(buttonPane, swing.BoxLayout.X_AXIS)) buttonPane.setBorder( swing.BorderFactory.createEmptyBorder(0, 10, 10, 10)) buttonPane.add(swing.Box.createHorizontalGlue()) buttonPane.add(self.serverButton) buttonPane.add(swing.Box.createRigidArea(awt.Dimension(10, 0))) buttonPane.add(self.clientButton) win.contentPane.add(buttonPane, awt.BorderLayout.SOUTH) # add handler that writes log messages to the status textfield txtHandler = TextFieldLogger(status) logger = logging.getLogger("") logger.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s - %(message)s') txtHandler.setFormatter(formatter) logger.addHandler(txtHandler) # setup server self.service_name = service self.url = "http://%s:%d" % (host, port) self.server = ThreadedAmfServer(host, port, self.service_name) # center and display window on the screen win.pack() us = win.getSize() them = awt.Toolkit.getDefaultToolkit().getScreenSize() newX = (them.width - us.width) / 2 newY = (them.height - us.height) / 2 win.setLocation(newX, newY) win.show()
def registerExtenderCallbacks(self, callbacks): self._callbacks = callbacks self._helpers = callbacks.getHelpers() callbacks.setExtensionName("Encoder") callbacks.registerContextMenuFactory(self) callbacks.registerIntruderPayloadProcessor(self) #Create Jpanel self._jPanel = swing.JPanel() self._jPanel.setLayout(None) self._jPanel.setPreferredSize(awt.Dimension(1200, 1200)) #Values for the combination boxes algOptions = [ 'Algorithm...', 'UTF-7', 'UTF-8', 'URL', 'Base64', 'XML', 'Binary', 'Overlong', 'zlib deflate' ] hashOptions = [ 'Hash...', 'md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512' ] #GUI Components self.jEncode = swing.JRadioButton('Encode', actionPerformed=self.encodeButton) self.jDecode = swing.JRadioButton('Decode', actionPerformed=self.decodeButton) self.jAlgMenu = swing.JComboBox(algOptions) self.jInput = swing.JTextArea() self.jInputLabel = swing.JLabel() self.jOutput = swing.JTextArea() self.jInputScroll = swing.JScrollPane(self.jOutput) self.jOutputScroll = swing.JScrollPane(self.jOutput) self.jOutputLabel = swing.JLabel() self.jHashLabel = swing.JLabel() self.jHashMenu = swing.JComboBox(hashOptions) self.jStart = swing.JButton('Go', actionPerformed=self.doStart) self.jHex = swing.JRadioButton('Hex', actionPerformed=self.toHex) self.jString = swing.JRadioButton('String', actionPerformed=self.toString) self.jOutputFormat = swing.ButtonGroup() self.jSendToRequest = swing.JButton('Send to request', actionPerformed=self.sendToRequest) self.jToInput = swing.JButton('Send to Input', actionPerformed=self.toInput) self.jNextHistory = swing.JButton('>', actionPerformed=self.nextHistory) self.jPreviousHistory = swing.JButton( '<', actionPerformed=self.previousHistory) #Input and Ouptut scroll self.jOutputScroll = swing.JScrollPane( swing.JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, swing.JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED) self.jOutputScroll.viewport.view = self.jOutput self.jInputScroll = swing.JScrollPane( swing.JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, swing.JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED) self.jInputScroll.viewport.view = self.jInput #Add buttons to group self.jOutputFormat.add(self.jString) self.jOutputFormat.add(self.jHex) #Configure GUIs self.jEncode.setSelected(True) self.jDecode.setSelected(False) self.jAlgMenu.setSelectedIndex(0) self.jInput.setLineWrap(True) self.jOutput.setLineWrap(True) self.jOutput.setEditable(False) self.jHashMenu.setSelectedIndex(0) self.jString.setSelected(True) #Component Locations self.jEncode.setBounds(15, 15, 70, 20) self.jDecode.setBounds(85, 15, 70, 20) self.jAlgMenu.setBounds(15, 45, 140, 25) self.jHashMenu.setBounds(15, 80, 140, 25) self.jStart.setBounds(15, 115, 140, 20) self.jSendToRequest.setBounds(15, 145, 140, 20) self.jHex.setBounds(15, 175, 70, 20) self.jString.setBounds(85, 175, 70, 20) self.jInputScroll.setBounds(165, 15, 800, 200) self.jOutputScroll.setBounds(165, 225, 800, 200) self.jToInput.setBounds(15, 405, 140, 20) self.jNextHistory.setBounds(85, 465, 70, 20) self.jPreviousHistory.setBounds(15, 465, 70, 20) #Add components to Panel self._jPanel.add(self.jEncode) self._jPanel.add(self.jDecode) self._jPanel.add(self.jAlgMenu) self._jPanel.add(self.jHashMenu) self._jPanel.add(self.jInputScroll) self._jPanel.add(self.jOutputScroll) self._jPanel.add(self.jStart) self._jPanel.add(self.jHex) self._jPanel.add(self.jString) self._jPanel.add(self.jSendToRequest) self._jPanel.add(self.jToInput) self._jPanel.add(self.jNextHistory) self._jPanel.add(self.jPreviousHistory) callbacks.customizeUiComponent(self._jPanel) callbacks.addSuiteTab(self) # set some values self._inputHex = False self._outputHex = False return
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 __init__(self, img, size): self.setPreferredSize(awt.Dimension(*size)) self.img = img
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