- Notifications
You must be signed in to change notification settings - Fork0
HelgeSverre/jadx-webgui
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This project demonstrates real-time output streaming from a backend process to a frontend using SocketIO and Python.It usesJADX to decompile an uploaded APK file, streaming the output to the frontendin real-time. Additional featuresinclude browsing decompiled files and scanning for URLs and Firebase keys.
The project serves as a testbed for ideas, exploring how to build upon this concept. It's not intended for productionuse but as a learning tool for working with websockets, Docker, and Flask, and building tools for APK analysis.
Feel free to fork and play around with it.
- Real-Time Output Streaming: Uses SocketIO to stream live output from the backend process (JADX) to the frontend,providing immediate feedback.
- Wrapping a Complex Process: Demonstrates how to handle and stream output from a non-trivial task like APKdecompilation.
- Dockerized Environment: Both backend and frontend are containerized using Docker, making it easy to build and runthe application.
- Tech Stack:
- Backend: Flask (Python) for the API, with SocketIO for real-time communication.
- Frontend: Svelte with TailwindCSS for building a responsive user interface.
Clone the repository to your local machine:
git clone git@github.com:HelgeSverre/jadx-webgui.gitcd jadx-webgui
To build and run the application using Docker Compose:
# Build and run the containersdocker compose up --build -d# Stop and remove containersdocker compose down
Access the application athttp://localhost:8080
.
To build and run the backend separately:
# Navigate to the API directorycd api# Format the Python codepipx run black app.py# Build the Docker imagedocker build -t decompiler-backend.# Run the Docker containerdocker run -p 8080:5000 \ -v$(pwd)/uploads:/tmp/uploads \ -v$(pwd)/decompiled:/tmp/decompiled \ decompiler-backend# Or as a one-linerdocker build -t decompiler-backend.&& docker run -p 8080:5000 -v$(pwd)/uploads:/tmp/uploads -v$(pwd)/decompiled:/tmp/decompiled decompiler-backend
# Build the Docker imagedocker build -t decompiler-frontend.# Run the Docker containerdocker run -p 3000:3000 decompiler-frontend
# Navigate to the web directorycd web# Install dependenciesyarn install# Format the codeyarn format# Run the development serveryarn dev
To maintain code consistency:
# Format backend Python codepipx run black api/app.py# Format frontend codeyarn --cwd web format# One-liner for bothpipx run black api/app.py&& yarn --cwd web format
This project is primarily an experiment to see how to stream output from a backend process to the frontend in real-timeusing sockets. It serves as a practical example of handling complex tasks within a Dockerized environment and streamingtheir output, rather than focusing solely on the APK decompilation.
This project is provided for educational and research purposes only. The authors and contributors are not responsiblefor any misuse or damage that may result from using this tool. Users should ensure they have the right to decompileandanalyze any APK files they process with this tool.
Remember that decompiling applications without permission may violate terms of service, copyright laws, or other legalagreements. Always respect intellectual property rights and use this tool responsibly and ethically.
By using this software, you agree to these terms and acknowledge that you use it at your own risk.
You know the drill.
About
🧪 Experimental Web GUI for real-time APK decompilation using JADX, Docker, Flask, and SocketIO.