• DroidLysis:针对Android应用程序的安全检测预分析工具


    关于DroidLysis

    DroidLysis是一款针对Android应用程序安全的预分析工具,广大研究人员在对Android应用程序执行逆向分析的过程中,该工具可以帮助我们完成一些重复且无聊耗时的任务。

    该工具能够对Android应用程序样本进行反汇编处理,并将内容按照项目结构输出到目录中,同时会搜索代码中的可疑部分,而这种输出结果将有助于加快逆向工程分析的速度。

    DroidLysis支持对Android包(APK)、Dalvik可执行程序(DEX)、ZIP文件(ZIP)、RAR文件(RAR)或目录中的其他文件进行分析和处理。

    工具要求

    configparser>=4.0.2

    python-magic==0.4.12

    rarfile>=3.0

    requests

    SQLAlchemy>=1.1.1

    platformdirs

    工具安装

    首先,由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。

    然后安装该工具所需的系统包:

    sudo apt-get install default-jre git python3 python3-pip unzip wget libmagic-dev libxml2-dev libxslt-dev

    然后安装Android反汇编工具:

    1、Apktool

    2、Baksmali

    3、Dex2jar

    安装命令如下:

    $ mkdir -p ~/softs
    
    $ cd ~/softs
    
    $ wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.9.3.jar
    
    $ wget https://bitbucket.org/JesusFreke/smali/downloads/baksmali-2.5.2.jar
    
    $ wget https://github.com/pxb1988/dex2jar/releases/download/v2.4/dex-tools-v2.4.zip
    
    $ unzip dex-tools-v2.4.zip
    
    $ rm -f dex-tools-v2.4.zip

    接下来,广大研究人员可以创建一个Python虚拟环境,然后直接使用下列命令将该项目源码克隆至本地:

    $ python3 -m venv venv
    
    $ source ./venv/bin/activate
    
    (venv) $ pip3 install git+https://github.com/cryptax/droidlysis

    或者使用pip3命令从PyPi直接安装DroidLysis:

    pip3 install droidlysis

    配置“conf/general.conf”,确保修改“/home/axelle”为对应目录:

    [tools]
    
    apktool = /home/axelle/softs/apktool_2.9.3.jar
    
    baksmali = /home/axelle/softs/baksmali-2.5.2.jar
    
    dex2jar = /home/axelle/softs/dex-tools-v2.4/d2j-dex2jar.sh
    
    keytool = /usr/bin/keytool
    
    ...

    现在就可以直接使用下列命令运行DroidLysis了:

    python3 ./droidlysis3.py --help

    工具使用

    DroidLysis基于Python 3开发,因此可以直接使用下列方式运行DroidLysis并查看帮助选项:

    droidlysis --help

    下列命令可以对Signal的APK文件执行分析测试:

    droidlysis --input Signal-website-universal-release-6.26.3.apk --output /tmp --config /PATH/TO/DROIDLYSIS/conf/general.conf

    工具输出

    1、命令行窗口中输出测试概述;

    2、在输出目录的子目录中输出解压后的预处理样本数据,子目录的明明使用了样本文件名+256校验和。比如说,如果我们分析的是Signal应用程序,并设置“--output /tmp”,则结果会写入到“/tmp/Signalwebsiteuniversalrelease4.52.4.apk-f3c7d5e38df23925dd0b2fe1f44bfa12bac935a6bc8fe3a485a4436d4487a290”中;

    3、生成一个数据库文件(默认为SQLite)“droidlysis.db”,其中包含所有识别到的数据;

    工具运行样例

    许可证协议

    本项目的开发与发布遵循MIT开源许可协议。

    项目地址

    DroidLysis:【GitHub传送门

    参考资料

    https://ibotpeaches.github.io/Apktool/

    https://bitbucket.org/JesusFreke/smali/downloads

    https://github.com/pxb1988/dex2jar

    https://signal.org/android/apk/

  • 相关阅读:
    三种方式查看 JVM 垃圾收集器
    今年是嵌入式香还是互联网香?
    Elasticsearch倒排索引(一)简介
    橘子学JVM之命令行监控01之jps
    学习JavaEE的日子 Day39 注解,反射
    《机器学习分类器 二》——朴素的贝叶斯算法,项目实践,算法实践。
    Linux定时任务备份MySql和清理MySql日志
    探讨代理IP与Socks5代理在跨界电商中的网络安全应用
    Cisco Secure Firewall Management Center Virtual Release 7.2.0
    为什么 NGINX 的 reload 不是热加载?
  • 原文地址:https://www.freebuf.com/sectool/403832.html