soniritesh124/Android-Application-Malware-Analysis-Framework

GitHub: soniritesh124/Android-Application-Malware-Analysis-Framework

一个结合静态分析、Frida 动态监控与 UI 自动化的 Android 应用恶意软件自动化检测框架,可通过单条命令完成全流程分析并生成报告。

Stars: 0 | Forks: 0

# 🛡️ Android 恶意软件分析器 ![Python](https://img.shields.io/badge/Python-3.10+-blue.svg) ![Android](https://img.shields.io/badge/Android-13+-green.svg) ![Frida](https://img.shields.io/badge/Frida-17.15.5-orange.svg) ![License](https://img.shields.io/badge/License-MIT-yellow.svg) # 📖 概述 Android 恶意软件分析器是一个自动化框架,可对 Android 应用程序执行全面的恶意软件分析。 该框架结合了: - 📦 APK 提取 - 🔍 静态分析 - ⚡ 动态运行时监控 - 🤖 自动化 UI 交互 - 📄 JSON 报告生成 所有操作均可通过**单条命令**完成。 # 🚀 功能特性 ### 静态分析 - APK 提取 - AndroidManifest.xml 分析 - 权限 - Activities - Services - Broadcast Receivers - Content Providers - 导出组件 - 签名证书分析 - URL 提取 - 域名提取 - IP 地址提取 - Native 库检测 ### 动态分析 由 **Frida** 提供支持 运行时监控包括: - Runtime.exec() - DexClassLoader - System.loadLibrary() - Native 库加载 - 运行时进程执行 - 动态代码加载 - Logcat 收集 ### UI 自动化 - Android Monkey - 基于事件的 UI 探索 - 覆盖率报告 - 崩溃检测 - 运行时 Activity 生成 ### 报告 该框架自动生成: ``` pipeline_report.json static_report.json dynamic_report.json ui_report.json monkey.txt logcat.txt ``` # 🏗 架构 ``` Android Application │ ▼ APK Extraction │ ▼ Static Analysis │ ▼ Start Dynamic Monitoring (Frida + Logcat) │ ▼ UI Automation (Android Monkey) │ ▼ Stop Dynamic Monitoring │ ▼ Generate JSON Reports ``` # 📂 项目结构 ``` android-malware-analyzer/ │ ├── analyzer.py ├── config.py │ ├── modules/ │ ├── apk_extractor.py │ ├── static_analyzer.py │ ├── dynamic_analyzer.py │ └── ui_analyzer.py │ ├── frida_scripts/ │ └── runtime_monitor_bundled.js │ ├── reports/ │ └── samples/ ``` # ⚙️ 环境要求 - macOS / Linux - Python 3.10+ - Android Emulator(已 Root) - Android SDK - ADB - Frida 17.15.5 # 📥 安装说明 克隆仓库 ``` git clone https://github.com/soniritesh124/android-malware-analyzer.git cd android-malware-analyzer ``` 创建虚拟环境 ``` python3 -m venv .venv ``` 激活 macOS/Linux ``` source .venv/bin/activate ``` 安装依赖项 ``` pip install -r requirements.txt ``` # 📱 Android Emulator 设置 启动 Android Emulator 验证 ADB ``` adb devices ``` 示例 ``` List of devices attached emulator-5554 device ``` Root 模拟器 ``` adb root adb wait-for-device ``` 验证 ``` adb shell id ``` 预期输出 ``` uid=0(root) ``` # 🧰 安装 Frida Server ## 步骤 1 下载匹配的 Frida Server 版本。 本项目使用的版本: ``` Frida 17.15.5 ``` 下载地址: https://github.com/frida/frida/releases 下载: ``` frida-server-17.15.5-android-arm64 ``` ## 步骤 2 将 Frida Server 推送到模拟器 ## 步骤 3 赋予可执行权限 ``` adb shell chmod 755 /data/local/tmp/frida-server ``` ## 步骤 4 启动 Frida Server ``` adb shell "/data/local/tmp/frida-server >/dev/null 2>&1 &" ``` ## 步骤 5 验证 ``` adb shell ps -A | grep frida ``` 预期结果 ``` frida-server ``` ## 步骤 6 验证 Frida 连接 ``` frida-ps -U ``` 您应该能看到正在运行的 Android 进程。 # ▶️ 运行分析 分析任何已安装的应用程序 ``` python analyzer.py com.badoo.mobile ``` 示例 ``` python analyzer.py com.whatsapp ``` # 📊 示例输出 ``` APK Extraction ✔ Static Analysis ✔ Dynamic Monitoring ✔ UI Automation ✔ Report Generation ✔ ``` # 📁 输出 ``` reports/ └── com.badoo.mobile/ └── 20260722_115829/ │ ├── pipeline_report.json │ ├── static/ │ └── static_report.json │ ├── dynamic/ │ ├── dynamic_report.json │ └── logcat.txt │ └── ui/ ├── ui_report.json └── monkey.txt ``` # 🔍 分析工作流 ``` APK │ ▼ Static Analysis │ ▼ Frida Runtime Hooks │ ▼ Android Monkey │ ▼ Log Collection │ ▼ Threat Detection │ ▼ JSON Reports ``` # 🛠 使用的技术 - Python - Androguard - Frida - Android Debug Bridge (ADB) - Android Emulator - Monkey - Logcat # ⚠️ 注意事项 - 请使用已 Root 的 Android Emulator。 - Frida 版本和 Frida Server 版本**必须匹配**。 - 确保模拟器架构与下载的 Frida Server 架构相匹配(本项目为 ARM64)。 - 在进行分析之前,该应用程序必须已经安装在模拟器上。 # 📄 许可证 MIT License Copyright (c) 2026 Ritesh Soni 特此免费向任何人授予获取本软件及相关文档文件(以下简称“软件”)副本的权限, 允许其无限制地处理本软件, 包括但不限于使用、复制、修改、合并、发布、分发、再授权和/或销售本软件副本的权利, 并允许向其提供本软件的人员在遵守以下条件的前提下这样做: 上述版权声明和本许可声明应包含在本软件的所有副本或大部分内容中。 本软件按“原样”提供,不提供任何形式的明示或暗示的保证, 包括但不限于适销性、特定用途适用性和非侵权性的保证。 在任何情况下, 对于任何索赔、损害赔偿或其他责任, 无论是在合同诉讼、侵权行为还是其他诉讼中,因本软件或其使用而产生的, 作者或版权持有人概不负责。
标签:Android安全, DAST, Docker支持, Frida, 云安全监控, 恶意软件分析, 自动化分析, 自定义脚本, 跨站脚本, 逆向工具, 静态分析