Flutter Spy:从逆向工程 Flutter 应用程序中探索、分析并获取有价值的数据和见解

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

Usage: flutter-spy <file>

Arguments:
  file          The APK file to spy on

概述

Flutter Spy 是一款基于 Bash 的命令行工具,旨在通过逆向工程从构建的​​ Flutter 应用程序中提供深入的代码分析和数据提取功能。它使开发人员、错误搜寻者和安全爱好者能够探索和发现 Flutter 应用程序二进制文件中的有价值的信息。

Flutter Spy 目前仅支持从 Android 应用程序(APK 文件)收集信息,因此它对于几乎所有其他平台都是通用的,因为这就是 Flutter 的用途。

特征

  • 数据提取:提取重要信息,例如 API 端点、URL、电子邮件、使用的包、电话号码、秘密/公钥、环境变量和配置文件。
    • 提取电子邮件。
    • 提取 URL/URI。
    • 提取潜在的电话号码。
    • 提取潜在的 API 端点/路由。
    • 在pub.dev中提取使用的 Flutter 包及其链接。
    • 提取 SQL 和其他数据库查询…
    • 提取.env(环境变量)文件。
    • 提取潜在的 JSON/YAML 配置文件。
    • 提取特定于内容的文件。(md、html、css、js…)
    • 提取潜在的本地化文件。
    • 提取所有其他 Flutter 资源(PNG、GIF、SVG、TTF、PSD、WEBP…)。
    • 提取使用的Flutter Engine信息作为使用的Flutter引擎。
    • 提取原始项目文件结构。
  • 可导出的报告:输出包含所有结果的详细报告文件夹。
  • 易于使用:Flutter Spy 的设计易于使用,不需要先了解 Flutter 或 Dart,您可以在任何构建的 Flutter 应用程序上使用它。

计划的功能

如果有需要,请告诉我:

  • 提取常见 API 密钥,例如 Firebase、Stripe、OpenAI、AWS…
  • 代码分析:对应用程序的代码执行静态分析,以识别潜在的安全问题和漏洞。
    •  分析AndroidManifest.xml文件并收集权限、意图、活动、服务、compileSdkVersion、minSdkVersion 和 targetSdkVersion。
    •  分析MainActivity.java使用的平台通道、初始化…
  • 自动错误搜寻:识别常见的安全问题和漏洞,例如不安全的 API 端点、暴露的敏感数据和不安全的 Firebase 数据库(计划使用另一种语言来完成,可能是 Python 或 Dart 本身)。

先决条件

要顺利运行 Flutter Spy,请确保这些实用程序已全局安装在您的计算机中。

  •  Jadx CLI:用于反编译 APK 文件,Flutter Spy 将使用命令获取其完整路径which jadx。(如果您使用的是基于 Debian 的发行版,例如 Ubuntu/Kali Linux,则可以通过 sudo apt install jadx 安装它)

安装

注意:在安装 Flutter Spy 之前,请注意 Flutter Spy 正在积极开发中,有很多功能尚未实现或不完整。

在终端中运行以下命令来安装 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

这将在您的主目录中安装 Flutter Spy,~/.flutter-spy/并将导出路径命令添加到正确的配置文件(.bashrc对于 Bash、.zshrcZSH 和.profileFish)。

打开一个新的终端窗口并运行flutterspy以确保安装成功。

用法

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

就是这样,脚本将完成剩下的工作,通过导出包含所有结果的报告文件夹来显示所有结果,该文件夹根据导出的确切日期进行命名:

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

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

它将包含一切。

项目地址:

Flutter Spy:【GitHub

© 版权声明
THE END
喜欢就支持一下吧
点赞1290赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容