xVision is a plugin for the JadX decompiler that aims to integrate with Large Language Models (LLMs) to provide code analysis directly in the JAdX. This plugin allows you to analyze Java code for functionality, security issues, and notable patterns using LLMs like GPT-4, Claude or any custom local LLMs.
- LLM Integration: Supports GPT-4 & Claude-sonnet-latest, DeepSeak V3 and R1 models. Responds in local language.
- Code Analysis: Analyze Java code for functionality, security issues, and notable patterns.
- Custom Prompts: Configure custom prompts for analysis.
- GUI Integration: Integrates with JadX GUI for easy access.
- JadX v1.5.0 or later (CLI or GUI)
- Java Development Kit (JDK) 11 or higher
-
Clone the repository:
git clone https://github.com/samanl33t/jadx-xvision-plugin.git cd jadx-xvision-plugin
-
Build the plugin:
./gradlew clean build
-
Install the plugin:
- For
jadx-cli
:jadx plugins --install-jar build/libs/jadx-xVision-plugin-dev.jar
- For
jadx-gui
:- Open JadX GUI.
- Go to Plugins > Install plugin.
- Select the
jadx-xVision-plugin-dev.jar
file from thebuild/libs
directory.
- For
- Open JadX GUI.
- Load a supported package to analyze.
- Click Menu -> 'Xvision Config' - Select LLM to use and add API Key
- Right-click on a class or method and select Analyze with xVision Plugin.
The Plugin options can be configured from Menu bar > Plugins > xVision Config. Following configurations are available:
- LLM Type Select LLM to use
- API Key API Key for selected LLM
- Custom Endpoint API endpoint if you're using a custom LLM
- Set Default Prompt Replace the default prompt with your own prompt for all further analysis.
- Select a code block in JadX GUI.
- Right-click and choose Analyze with xVision Plugin.
- Check the Custom Prompt checkox in the dialog that appears.
- Enter the custom prompt to use.
Note: The custom prompt will replace the default prompt
- MartinKayJr - for default prompt.
- Devilx86 - LLM response Code Rendering in a new window.
- bobbylight RSyntaxTextArea
Contributions are welcome! Please open an issue or submit a pull request on GitHub.