Skip to content

Commit

Permalink
added new lang clear button for binary code, added persistent data fo…
Browse files Browse the repository at this point in the history
…r language binary path, request response type #12
  • Loading branch information
Anof-cyber committed Jan 20, 2025
1 parent 9a24ab0 commit 5b944b0
Showing 1 changed file with 45 additions and 2 deletions.
47 changes: 45 additions & 2 deletions pycript.py
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,18 @@ def registerExtenderCallbacks(self, callbacks):
self.RequestTypeNoneRadio.setText("None");
self.RequestTypeNoneRadio.setSelected(True)
self.RequestTypeNoneRadio.addActionListener(self.requestypelistner)

self.selected_req_type = callbacks.loadExtensionSetting('selected_req_type')
if self.selected_req_type == "Complete Body":
self.CustomBodyRadio.setSelected(True)
elif self.selected_req_type == "Parameter Value":
self.parametervalueRadio.setSelected(True)
elif self.selected_req_type == "Parameter Key and Value":
self.paramkeyvalueRadio.setSelected(True)
elif self.selected_req_type == "None":
self.RequestTypeNoneRadio.setSelected(True)
self.selectedrequesttpye = self.selected_req_type


# Response Type UI
self.responslayerpane = JLayeredPane();
Expand Down Expand Up @@ -230,7 +242,17 @@ def registerExtenderCallbacks(self, callbacks):
self.ResponseTypeNoneRadio.setText("None");
self.ResponseTypeNoneRadio.setSelected(True)
self.ResponseTypeNoneRadio.addActionListener(self.responsetypelister)


self.selected_resp_type_config = callbacks.loadExtensionSetting('selected_resp_type_config')
if self.selected_resp_type_config == "Complete Body":
self.responseCustomBodyRadio.setSelected(True)
elif self.selected_resp_type_config == "JSON Value":
self.responsejsonvalueradio.setSelected(True)
elif self.selected_resp_type_config == "JSON Key and Value":
self.responsejsonkeyvalueradio.setSelected(True)
elif self.selected_resp_type_config == "None":
self.ResponseTypeNoneRadio.setSelected(True)
self.selectedresponsetpye =self.selected_resp_type_config


#Additional Setting UI
Expand All @@ -255,9 +277,18 @@ def registerExtenderCallbacks(self, callbacks):
self.languagepath.setText("C:/Program Files/nodejs/node.exe")
self.languagejpanel.add(self.languagepath,BorderLayout.NORTH)
self.languagejpanel.add(self.language_select_button,BorderLayout.NORTH)

self.languagepath_config = callbacks.loadExtensionSetting('languagepath_config')

if not self.languagepath_config == None:
self.languagepath.setText(self.languagepath_config)



self.language_clear_button = JButton("Clear Language Selection")
self.language_clear_button.addActionListener(self.language_clear_button_listner)
self.languagejpanel.add(self.language_clear_button,BorderLayout.NORTH)


self.reqmethodlabel = JLabel();
self.reqmethodlabel.setText("Encryption and Decryption Method(Only for Request)");

Expand Down Expand Up @@ -979,13 +1010,16 @@ def responsetypelister(self,e):
if None not in (self.responsedecryptionfilepath,self.responseencryptionfilepath):
self.ResponseTypeNoneRadio.setSelected(False)
self.selectedresponsetpye = selected.getText()
self.callbacks.saveExtensionSetting("selected_resp_type_config",selected.getText())
else:
JOptionPane.showMessageDialog(None, "Response Encryption and Decryption File Required to Start")
self.ResponseTypeNoneRadio.setSelected(True)
self.selectedresponsetpye = "None"
self.callbacks.saveExtensionSetting("selected_resp_type_config","None")
elif selected.getText() == "None":
self.selectedresponsetpye = "None"
self.ResponseTypeNoneRadio.setSelected(True)
self.callbacks.saveExtensionSetting("selected_resp_type_config","None")

if selected.getText() not in ["JSON Value", "JSON Key and Value"]:
self.responseparamnonebutton.setSelected(True);
Expand All @@ -1002,6 +1036,7 @@ def requestypelistner(self, e):
#self.Autoencryptonoffbutton.setEnabled(True)
self.RequestTypeNoneRadio.setSelected(False)
self.selectedrequesttpye = selected.getText()
self.callbacks.saveExtensionSetting('selected_req_type',selected.getText())
if self.AutoencryptTooltypeScanner.isSelected() or self.AutoencryptTooltypeExtender.isSelected() or self.AutoencryptTooltypeRepeater.isSelected() or self.AutoencryptTooltypeProxy.isSelected() or self.AutoencryptTooltypeIntruder.isSelected() == True:
self.Autoencryptonoffbutton.setEnabled(True)
else:
Expand All @@ -1011,10 +1046,12 @@ def requestypelistner(self, e):
self.Autoencryptonoffbutton.setEnabled(False)
self.Autoencryptonoffbutton.setSelected(False)
self.selectedrequesttpye = "None"
self.callbacks.saveExtensionSetting('selected_req_type',"None")
elif selected.getText() == "None":
self.selectedrequesttpye = "None"
self.Autoencryptonoffbutton.setEnabled(False)
self.Autoencryptonoffbutton.setSelected(False)
elf.callbacks.saveExtensionSetting('selected_req_type',"None")

if selected.getText() not in ["Parameter Value", "Parameter Key and Value"]:
self.Requestparamnonebutton.setSelected(True);
Expand Down Expand Up @@ -1121,6 +1158,12 @@ def select_language_file_path(self,e):
fileLoad = chooseFile.getSelectedFile()
self.languagefullpath = fileLoad.getAbsolutePath()
self.languagepath.setText(self.languagefullpath)
self.callbacks.saveExtensionSetting("languagepath_config",self.languagefullpath)

def language_clear_button_listner(self,e):
self.languagepath.setText("")
self.callbacks.saveExtensionSetting("languagepath_config","")


# Returning the Extension Tab name to burp ITAB
def getTabCaption(self):
Expand Down

0 comments on commit 5b944b0

Please sign in to comment.