anasfik / flutter-spy

Explore, analyze, and gain valuable data & insights from reverse engineered Flutter apps.
MIT License
579 stars 43 forks source link
bugbounty flutter osint recon reconnaissance reverse-engineering security-tools

Flutter Spy

    ________      __  __               _____            
   / ____/ __  __/ /_/ /____  _____   / ___/____  __  __
  / /_  / / / / / __/ __/ _ \/ ___/   \__ \/ __ \/ / / /
 / __/ / / /_/ / /_/ /_/  __/ /      ___/ / /_/ / /_/ / 
/_/   /_/\__,_/\__/\__/\___/_/      /____/ .___/\__, /  
                                        /_/    /____/

Usage: flutter-spy <file>

Arguments:
  file          The APK file to spy on

Demo

Overview

Flutter Spy is a Bash-based command-line tool designed to provide insightful code analysis and data extraction capabilities from built Flutter apps with reverse engineering. It empowers developers, bug hunters, and security enthusiasts to explore and uncover valuable information within Flutter app binaries.

Flutter Spy supports currently gathering info from Android apps only (APK files), thus it is universal for almost all other platforms since this is what Flutter is used for.

Features

Prerequisites

To run Flutter Spy without issues, make sure these utilities are installed globally in your machine.

NOTE: For Termux Installation You don't need to do the installation manually, the installation script will take care of it, also if you've jadx previously installed it'll skip jadx installation.

Installation

Run this command in your terminal to install Flutter Spy:

git clone https://github.com/anasfik/flutter-spy.git # Clone the repo
cd flutter-spy # Change the directory to the repo
chmod +x INSTALLER.sh # Make the installer executable
./INSTALLER.sh # Run the installer

This will install Flutter Spy in your home directory, at ~/.flutter-spy/, and add the export path command to the correct profile file (.bashrc for Bash, .zshrc for ZSH, and .profile for Fish).

Open a new terminal window and run flutterspy to make sure that the installation was successful.

Usage

flutter-spy /path/to/apk/file.apk

And that's it, the script will do the rest for showing you all findings by exporting a report folder containing all findings is named based on the exact date of export:

report-$(date +%Y-%m-%d-%H-%M-%S)

# Example: report-2023-12-18-18-17-43

it will contain everything.

Want to help this?

as a Developer, and, because I don't know everything, you can help this project by informing me about possible findings in a FLutter app other than existing ones, and this is by:

License

This project is licensed under the MIT License - see the LICENSE file for details.