Skip to content

Commit 3a77ccb

Browse files
author
isayan
committed
montoya API サポート
1 parent 702c72a commit 3a77ccb

13 files changed

+243
-180
lines changed

build.gradle

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ repositories {
66
mavenCentral()
77
}
88

9-
sourceCompatibility = '11' // -source
10-
targetCompatibility = '11' // -target
9+
sourceCompatibility = '17' // -source
10+
targetCompatibility = '17' // -target
1111

1212
mainClassName = 'aspx.viewstate.ViewStateDecoder'
1313
//mainClassName = 'yagura.view.ViewStateMainFrame'
@@ -64,18 +64,18 @@ task release(type: Zip, dependsOn: ['build']) {
6464
}
6565

6666
dependencies {
67-
// https://mvnrepository.com/artifact/net.portswigger.burp.extender/burp-extender-api
68-
// stand alone mode で実行させるため含める
69-
implementation 'net.portswigger.burp.extender:burp-extender-api:2.3'
70-
// https://github.com/raise-isayan/BurpExtlib
67+
// https://mvnrepository.com/artifact/net.portswigger.burp.extensions/montoya-api
68+
implementation 'net.portswigger.burp.extensions:montoya-api:2023.8'
69+
70+
// https://github.com/raise-isayan/BurpExtensionCommons
7171
implementation fileTree(dir: 'libs', include: ['*.jar'])
7272
// https://mvnrepository.com/artifact/com.google.code.gson/gson
73-
implementation 'com.google.code.gson:gson:2.9.0'
74-
// https://mvnrepository.com/artifact/com.googlecode.juniversalchardet/juniversalchardet
73+
implementation 'com.google.code.gson:gson:2.10.1'
74+
// https://mvnrepository.com/artifact/com.googlecode.juniversalchardet
7575
implementation 'com.googlecode.juniversalchardet:juniversalchardet:1.0.3'
7676

7777
// UnitTest
7878
// https://mvnrepository.com/artifact/net.portswigger.burp.extender/burp-extender-api
79-
testImplementation 'net.portswigger.burp.extender:burp-extender-api:2.3'
79+
testImplementation 'net.portswigger.burp.extensions:montoya-api:2023.8'
8080
testImplementation 'junit:junit:4.13.2'
8181
}

gradle.properties

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
netbeans.org-netbeans-modules-javascript2-requirejs.enabled=true
2-
release_version_major=0.5
3-
release_version_minor=3.0
1+
netbeans.org-netbeans-modules-javascript2-requirejs.enabled=true
2+
release_version_major=3.0
3+
release_version_minor=0.0
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
-146 KB
Binary file not shown.
185 KB
Binary file not shown.

release/ViewStateDecoder-v0.5.jar

-648 KB
Binary file not shown.

release/ViewStateDecoder-v3.0.jar

835 KB
Binary file not shown.

src/main/java/burp/BurpExtender.java

Lines changed: 0 additions & 36 deletions
This file was deleted.
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package burp;
2+
3+
import burp.api.montoya.MontoyaApi;
4+
import burp.api.montoya.ui.editor.extension.EditorCreationContext;
5+
import burp.api.montoya.ui.editor.extension.ExtensionProvidedHttpRequestEditor;
6+
import burp.api.montoya.ui.editor.extension.HttpRequestEditorProvider;
7+
import extension.burp.BurpExtensionImpl;
8+
import java.util.logging.Logger;
9+
import yagura.view.ViewStateDecoderTab;
10+
import yagura.view.ViewStateTabEditor;
11+
12+
/**
13+
*
14+
* @author isayan
15+
*/
16+
public class BurpExtension extends BurpExtensionImpl {
17+
18+
private final static Logger logger = Logger.getLogger(BurpExtension.class.getName());
19+
20+
public BurpExtension() {
21+
}
22+
23+
private final java.util.ResourceBundle BUNDLE = java.util.ResourceBundle.getBundle("burp/resources/release");
24+
25+
private final ViewStateDecoderTab viewStateDecoderTab = new ViewStateDecoderTab();
26+
27+
private final HttpRequestEditorProvider requestViewStateTab = new HttpRequestEditorProvider() {
28+
@Override
29+
public ExtensionProvidedHttpRequestEditor provideHttpRequestEditor(EditorCreationContext editorCreationContext) {
30+
final ViewStateTabEditor tab = new ViewStateTabEditor(editorCreationContext);
31+
return tab;
32+
}
33+
};
34+
35+
@Override
36+
public void initialize(MontoyaApi api) {
37+
super.initialize(api);
38+
api.userInterface().registerHttpRequestEditorProvider(this.requestViewStateTab);
39+
api.userInterface().registerSuiteTab(this.viewStateDecoderTab.getTabCaption(), this.viewStateDecoderTab);
40+
41+
}
42+
43+
}

src/main/java/yagura/view/ViewStateDecoderTab.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
package yagura.view;
22

3-
import burp.ITab;
43
import java.awt.BorderLayout;
54
import java.awt.Component;
5+
import java.util.logging.Logger;
6+
import extension.burp.IBurpTab;
67

78
/**
89
*
910
* @author isayan
1011
*/
11-
public class ViewStateDecoderTab extends javax.swing.JPanel implements ITab {
12+
public class ViewStateDecoderTab extends javax.swing.JPanel implements IBurpTab {
13+
14+
private final static Logger logger = Logger.getLogger(ViewStateDecoderTab.class.getName());
1215

1316
/**
1417
* Creates new form ViewStateView
@@ -92,18 +95,18 @@ public String getViewStateValue() {
9295
String viewState = this.txtViewState.getText().trim();
9396
return viewState;
9497
}
95-
96-
98+
99+
97100
private void btnDecodeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDecodeActionPerformed
98-
String viewStateValue = getViewStateValue();
101+
String viewStateValue = getViewStateValue();
99102
if (viewStateValue.length() > 0) {
100103
this.viewStateTab.setViewState(viewStateValue);
101104
}
102105
}//GEN-LAST:event_btnDecodeActionPerformed
103106

104107
private void btnClearActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnClearActionPerformed
105108
this.txtViewState.setText("");
106-
this.viewStateTab.clearViewState();
109+
this.viewStateTab.clearViewState();
107110
}//GEN-LAST:event_btnClearActionPerformed
108111

109112

@@ -115,17 +118,17 @@ private void btnClearActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS
115118
private javax.swing.JPanel pnlViewStateTab;
116119
private javax.swing.JTextArea txtViewState;
117120
// End of variables declaration//GEN-END:variables
118-
119-
private final ViewStateTab viewStateTab = new ViewStateTab();
120-
121+
122+
private final ViewStateTab viewStateTab = new ViewStateTab(null);
123+
121124
private void customizeComponents() {
122125
this.txtViewState.setWrapStyleWord(false);
123126
this.pnlViewStateTab.add(this.viewStateTab, BorderLayout.CENTER);
124127
}
125128

126129
@Override
127130
public String getTabCaption() {
128-
return "ViewStateDecoder";
131+
return "View State Decoder";
129132
}
130133

131134
@Override

0 commit comments

Comments
 (0)