Skip to content

Instantly share code, notes, and snippets.

@decidedlygray
Created August 10, 2017 00:58
  • Star 8 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save decidedlygray/26dea0e4faa55a009a9bd1875f918b6f to your computer and use it in GitHub Desktop.
Modifying and Building Burp Extensions Quick Reference

Quick Reference

This section is a boiled down version of everything above. It should serve as an easy reference. These steps assume you've identified and installed the correct JDK.

Modify and Re-Jar Extension

  1. Locate the jar file: Extender > Extensions > Select extension > Details. bapps\ directory is located at C:\Users\yourusername\AppData\Roaming\BurpSuite\bapps
  2. Backup the original jar file to a different folder, outside of bapps.
  3. Change extension from .jar to .zip, extract contents, delete .zip file
  4. Make your modifications
  5. Re-jar: jar cvf yourJarName.jar -C extractedContentsDirectory/ .
  6. Reload extension in Burp: Extender > Extensions, uncheck Load and check it again

Compile Extension from Source

  1. Clone or download extension source code
  2. Make your modifications, and create build location
  3. Compile source code: javac -cp "C:\Program Files\BurpSuitePro\burpsuite_pro.jar" -d buildLocation sourceCodeLocation\*.java
  4. Create Jar: jar cvf yourJarName.jar buildLocation/*.class anyOtherDependencies1 anyOtherDependencies2
  5. Load Jar into Burp: Extender > Extensions, Add, Extension type Java and locate built jar, Next, Close
  6. Disable original version of extension from BApp store
@ethicalhack3r
Copy link

ethicalhack3r commented Sep 5, 2018

For the Compile Extension from Source

Make sure you run the jar cvf command from within the buildLocation to avoid the java.lang.ClassNotFoundException: burp.BurpExtender error as detailed here https://www.vanstechelman.eu/content/solution-javalangclassnotfoundexception-when-loading-your-burp-suite-extention

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment