• [恶意软件分析]DroidBox的环境搭建与使用


    1 DroidBox介绍

    DroidBox旨在提供对Android应用程序的动态分析。项目地址: Github:Droidbox
    分析完成后生成的结果中描述了以下信息:

    • 所分析软件包的哈希
    • 传入/传出网络数据
    • 文件读写操作
    • 通过DexClassLoader启动服务并加载类
    • 通过网络、文件和短信泄漏的信息
    • 规避的权限
    • 使用Android API执行的加密操作
    • 列出广播接收器
    • 已发送短信和电话

    此外,还将生成了两个图表以可视化包装的行为。
    一个显示操作的时间顺序,另一个显示为树图,可用于检查已分析包之间的相似性。

    2 Java环境

    2.1 Java下载

    • 下载JDK安装包,下载地址: Oracle:JDK 7U80
      备注:下载JDK安装包需要登录Oracle账号,可以选择自行注册,也可以使用公共账号: CSDN:Oracle账号

    2.2 Java环境配置

    • 将安装包解压缩到指定位置(以 /usr/lib/jvm/ 为例)
      sudo tar -zxvf jdk-7u80-linux-x64.gz -C /usr/lib/jvm/
    • 修改环境变量
      sudo gedit ~/.bashrc或者sudo gedit /etc/profile
    • 在文件末尾注册环境变量
    ###java环境变量
    #set oracle jdk environment
    export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_60  
    export JRE_HOME=${JAVA_HOME}/jre  
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
    export PATH=${JAVA_HOME}/bin:$PATH  
    
    • 生效环境变量
      source ~/.bashrc或者对应使用source /etc/profile
    • 向系统注册此JDK
    sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_80/bin/java 300  
    sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_80/bin/javac 300  
    sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.7.0_80/bin/jar 300   
    sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/jdk1.7.0_80/bin/javah 300   
    sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jdk1.7.0_80/bin/javap 300    
    

    2.3 Java环境验证

    • 运行代码查看
      java -version
    • 返回下图则成功
      运行java -version后的正确反馈结果

    3 Android SDK环境

    3.1 Android SDK下载

    3.2 Android SDK环境配置

    • 将安装包解压缩到指定位置(以 /usr/local/ 为例)
      sudo tar -zxvf android-sdk_r24.4.1-linux.tgz -C /usr/local/
    • 修改环境变量
      sudo gedit ~/.bashrc或者使用sudo gedit /etc/profile
    • 在文件末尾注册环境变量
    ###Android SDK环境变量
    export ANDROID_HOME=/usr/local/android-sdk-linux
    export PATH=${PATH}:${ANDROID_HOME}/tools
    export PATH=${PATH}:${ANDROID_HOME}/platform-tools
    
    • 生效环境变量
      source ~/.bashrc或者对应使用source /etc/profile

    3.3 API版本和Platform-tools安装

    • 在android-sdk-linux文件夹打开终端,执行命令
      tools/android update sdk
    • 在Android ADK Manager中对应安装以下Packages
      • Android SDK Build-tools:19.1
      • Android 4.1.2(API 16):全部内容
      • Extras:全部内容(可选项)

    4 DroidBox安装

    4.1 DroidBox下载

    4.2 DroidBox解压缩

    • 将安装包解压缩到指定位置(以 /usr/local/ 为例)
      sudo tar -zxvf DroidBox411RC.tar.gz -C /usr/local/

    4.3 DroidBox需要的库(结果可视化-可选)

    • pylab和matplotlib以提供分析结果的可视化

    5 DroidBox使用

    5.1 DroidBox常用命令

    • 查看可获取的安卓虚拟机
      android list target
    • 创建模拟器(序号为API16 Android 4.1.2的ID)
      android create avd -n 模拟器名字 -t 序号
    • 查看已创建的安卓模拟器
      android list avd
    • 启动模拟器
      ./startemu.sh 模拟器名字
    • 安装要分析的APK
      adb install APK名字
    • 分析安装的APK
      ./droidbox.sh APK名字 需分析的时长 (60表示60s)

    5.2 关于DroidBox使用的补充命令

    • 终止模拟器内所有后台进程
      adb shell am kill-all
    • 卸载已安装的软件(com.android.security为样例软件名字)
      adb uninstall com.android.security
    • 清除模拟器数据(只清除本机数据,不清除Sd卡数据)
      emulator @模拟器名字 -wipe-data
    • 创建SdCardFile(想要格式化Sd卡数据,只需要重新创建同名字Sd卡)
      mksdcard -l mySdCard 512M Sd卡名字.img (512M为Sd卡大小,可自定义)
    • 搭载Sd卡启动模拟器
      ./startemu.sh 模拟器名字 -sdcard Sd卡名字.img
    • 安装要分析APK到Sd卡上
      adb install APK名字 -s(-s表示安装到Sd卡上)
    • 循环执行安装APK命令(示例:安装名字为Mal1.apk到Mal9.apk的APK)
    i=1; while (( $i < 10 )); do adb install Mal$i.apk -s; ((i=$i+1)); done;
    
    • 循环执行分析APK命令(示例:分析60秒名字为Mal1.apk到Mal9.apk的APK,并在分析完一个APK后清除后台)
    i=1; while (( $i < 10 )); do ./droidbox.sh Mal$i.apk 60;((i=$i+1)); adb shell am kill-all;  done;
    

    5.3 DroidBox输出结果分析

    在分析完成后,会生成以DroidBox开头的代码,其后的结果是以json数据的方式输出的。

     ____                        __  ____
    /  _`               __    / /  _`
      /   _ __  ___ /\_   \_   L    ___   __  _
         /\`'__ __`/   /'_`    _ <' / __`/ /'
        \_   / L   / L   L  L />  </
        \____/ \_ \____/ \_ \___,_ \____/ \____//\_/\_
        /___/  /_//___/  /_//__,_ //___/ /___/ ///_/
    

    对于json数据的处理,可以借助菜鸟工具进行JSON 在线解析

    6 参考资料

  • 相关阅读:
    为什么Android的图片质量会比iPhone的差?
    第二次作业-编程
    印像最深的三位老师
    c++的类型转换(转)
    SpringMVC入门详解
    java基础
    springmvc
    Maven配置下载包速度更快
    spring中的bean.xml
    pom.xml依赖
  • 原文地址:https://www.cnblogs.com/MagicM37/p/13047492.html
Copyright © 2020-2023  润新知