Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
AndroPyTool — 一个用于自动提取Android应用程序静态和动态特征的框架。 | Kitploit
工具/GitHubGitHub/alexmyg/andropytool
Android安全静态分析动态分析 (沙盒)恶意软件分析移动安全
GitHubalexmyg/andropytool

AndroPyTool

一个用于自动提取Android应用程序静态和动态特征的框架。

查看仓库
381686年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

AndroPyTool

更新!DroidBox镜像已修复。动态分析现在可用。

这是一个用于从Android APK中提取静态和动态特征的工具。它结合了多种知名的Android应用分析工具,如DroidBox、FlowDroid、Strace、AndroGuard或VirusTotal分析。给定一个包含APK文件的源目录,AndroPyTool会应用所有这些工具进行预静态、静态和动态分析,并生成JSON和CSV格式的特征文件,还允许将所有数据保存到MongoDB数据库中。

要获取更多信息,可以阅读以下两篇论文:

  • Martín, A., Lara-Cabrera, R., & Camacho, D. (2018). 通过混合特征融合和集成分类器进行Android恶意软件检测:AndroPyTool框架和OmniDroid数据集。 信息融合。DOI: 10.1016/j.inffus.2018.12.006

  • Martín, A., Lara-Cabrera, R., & Camacho, D. (2018). 一种用于静态和动态Android恶意软件分析的新工具。 载于《数据科学与知识工程用于感知决策支持》(第509-516页)。世界科学出版社。

如果你使用此工具,请在论文中引用上述工作。

alt text

如何安装

有两种方式可以安装和使用AndroPyTool。

模式A - Docker: 下载一个包含所有必需文件的Docker容器。这是推荐选项,只需两步即可运行AndroPyTool。

模式B - 源代码: 安装和配置所有必要的库,然后运行Python源代码。

模式A - 使用Docker容器

为了提供快速且可靠的AndroPyTool版本,已构建了一个Docker容器。使用Docker运行AndroPyTool只需:

  • 安装Docker(如果尚未安装)。按照这里的说明操作。如果你不使用Ubuntu,请切换到正确的操作系统。

  • 从Docker Hub拉取容器:

    root@kitploit:~
    $ docker pull alexmyg/andropytool
    
  • 通过启动容器运行AndroPyTool:

    root@kitploit:~
    $ docker run --volume=</PATH/TO/FOLDER/WITH/APKS/>:/apks alexmyg/andropytool -s /apks/ <ARGUMENTS>
    

    你需要将 </PATH/TO/FOLDER/WITH/APKS/> 替换为主机上包含待分析APK的路径。必须按上面一行所示提供参数 "-s",指向 /apks/

    注意2: AndroPyTool会移动你的APK文件到不同的子文件夹以生成有序的工作目录。参见文件夹结构示意图。

可以提供给AndroPyTool的不同参数:

  • -h:显示帮助信息并退出。
  • -all, --allsteps:执行AndroPyTool的所有步骤(推荐)。要获取VirusTotal报告,必须同时提供参数 -vt 后跟VirusTotal API密钥。如果未提供 -all 选项,则仅执行最后一步以及提供的参数。
  • -s SOURCE_FOLDER, --source SOURCE_FOLDER:包含待分析APK的文件夹。所有样本必须具有 .apk 扩展名。如果之前的AndroPyTool执行被中断,必须提供之前的工作目录。
  • -S, --single:单独保存每个分析结果。默认:False。
  • -f, --filter:过滤有效和无效的APK(推荐)。
  • -vt VIRUSTOTAL_API_KEY, --virustotal VIRUSTOTAL_API_KEY:使用VirusTotal服务分析应用。必须后跟VirusTotal API密钥。
  • -cl, --classify:根据VirusTotal报告将应用分类为恶意软件或良性软件。必须设置 --virustotal 参数。

模式B - 使用源代码

注意:此过程仅在Ubuntu上测试过。

0. 要求

  • AndroPyTool有一系列依赖项。你可以通过执行以下命令安装所有依赖:
    root@kitploit:~
    $ sudo apt-get update
    $ sudo apt-get install -y --no-install-recommends software-properties-common wget git lib32gcc1 lib32ncurses5 lib32stdc++6 lib32z1 libc6-i386 libgl1-mesa-dev python-pip python-dev gcc python-tk curl
    $ sudo add-apt-repository ppa:webupd8team/java -y
    $ sudo apt-get update
    $ sudo echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections
    $ sudo apt-get install -y oracle-java8-installer
    $ sudo apt-get install -y python-setuptools
    $ sudo apt-get clean
    

1. 你需要安装Android SDK(如果已经安装,请跳到下一步) 以下步骤将允许你在非GUI模式下安装Android SDK:

  • 下载并解压Android SDK:

    root@kitploit:~
    $ cd
    $ wget http://dl.google.com/android/android-sdk_r24.2-linux.tgz
    $ tar -xvf android-sdk_r24.2-linux.tgz
    
  • 将Android SDK添加到路径(如果你不使用Bash,比如你更喜欢Zsh,记得修改正确的文件)。为此,将以下两行添加到 ~/.bashrc 文件中:

    root@kitploit:~
    export ANDROID_HOME=$HOME/android-sdk-linux/
    export PATH=$PATH:$ANDROID_HOME/tools
    export PATH=$PATH:$ANDROID_HOME/platform-tools
    
  • 在当前会话中加载库:

    root@kitploit:~
    $ source ~/.bashrc
    

2. 我们需要安装Android 16包

  • 安装Android 16,这是DroidBox支持的版本(平台和系统映像):
    root@kitploit:~
    $ echo y | android update sdk --filter platform-tools --no-ui --force -a
    $ echo y | android update sdk --filter tools --no-ui --force -a
    $ echo y | android update sdk --filter android-16 --no-ui --force -a
    $ echo y | android update sdk --filter sys-img-armeabi-v7a-android-16 --no-ui -a
    

3. 下载仓库

  • 现在我们可以从GitHub下载AndroPyTool仓库。它也会下载一些依赖项。对于DroidBox,也会下载原始DroidBox仓库的最新版本,以便复制系统映像和RAM映像:
    root@kitploit:~
     $ git clone --recursive https://github.com/alexMyG/AndroPyTool.git
     $ wget https://github.com/alexMyG/AndroPyTool/releases/download/droidbox_images_patched/images_droidbox.zip
     $ unzip -o images_droidbox.zip -d AndroPyTool/DroidBox_AndroPyTool/images
     $ touch AndroPyTool/avclass/__init__.py
    

3. 准备DroidBox

  • 我们需要为所有脚本赋予必要的权限
    root@kitploit:~
    $ chmod 744 AndroPyTool/DroidBox_AndroPyTool/*.sh
    
  • 现在创建Android设备:
    root@kitploit:~
    $ echo "no" | AndroPyTool/DroidBox_AndroPyTool/createDroidBoxDevice.sh
    

4. 安装所需的Python库

  • 此仓库需要几个Python库。我们建议你使用虚拟环境。如果不想使用,请跳到下一步: 安装 virtualenv:
    root@kitploit:~
    $ sudo pip install virtualenv
    
    创建虚拟环境并激活:
    root@kitploit:~
    $ virtualenv droidbox_env
    $ source droidbox_env/bin/activate
    
  • 需要的Python库如下:
    root@kitploit:~
    $ pip install -r AndroPyTool/requirements.txt
    

5. 现在我们可以运行AndroPyTool

  • 如果一切正常,我们现在可以运行AndroPyTool:
    root@kitploit:~
    $ cd AndroPyTool/
    $ python androPyTool.py -s </PATH/TO/FOLDER/WITH/APKS/>
    
  • 参见Docker部分中的可用参数

输入和输出文件夹结构

输入: 一个包含 ".apk" 扩展名文件的文件夹。 输出: 按以下方案组织的文件夹结构:

root@kitploit:~
/                      --> 根文件夹
/samples/              --> 样本,最初位于根文件夹
/samples/BW/           --> 良性软件样本
/samples/MW/           --> 恶意软件样本
/invalid_apks/         --> 找到的无效APK
/VT_analysis/          --> VirusTotal分析报告
/FlowDroid_outputs/    --> FlowDroid结果
/FlowDroid_processed/  --> 处理后的FlowDroid结果
/DroidBox_outputs/     --> DroidBox原始输出
/Dynamic/Droidbox/     --> DroidBox分析结果(JSON格式)
/Dynamic/Strace/       --> Strace分析结果(CSV格式)
/Features_files/       --> AndroPyTool生成的特征文件

致谢

  • phamhduy 修复了Droidbox镜像。
下载工具
  • -fw, --flowdroid:运行FlowDroid。
  • -dr, --droidbox:运行DroidBox。
  • -c, --cleanup:执行清理,删除临时工作文件。默认:True。
  • -P PACKAGEINDEX, --packgeIndex PACKAGEINDEX:包含所有Android API包的TXT文件。默认:info/package_index.txt
  • -C CLASSINDEX, --classIndex CLASSINDEX:包含所有Android API类的TXT文件。默认:info/class_index.txt
  • -C CLASSINDEX, --classIndex CLASSINDEX:包含所有Android API类的TXT文件。默认:info/class_index.txt
  • -SC SYSTEMCOMMANDSINDEX, --systemCommandsIndex SYSTEMCOMMANDSINDEX:包含所有系统命令的TXT文件。默认:info/system_commands.txt
  • -C CLASSINDEX, --classIndex CLASSINDEX:包含所有Android API类的TXT文件。默认:info/class_index.txt
  • -mg MONGODBURI, --mongodbURI MONGODBURI:将生成的报告导出到mongodb数据库。需要连接地址,遵循格式:localhost:27017
  • -csv EXPORTCSV, --cexportCSV EXPORTCSV:将生成的报告导出为CSV文件。仅包含静态特征。
  • --color:允许在打印消息时使用颜色。
  • --no-color:不使用颜色打印消息。