DroidBox的环境搭建与使用(Android沙箱、未验证)
1 DroidBox介绍
DroidBox旨在提供对Android应用程序的动态分析。项目地址: Github:Droidbox
分析完成后生成的结果中描述了以下信息:
- 所分析软件包的哈希
- 传入/传出网络数据
- 文件读写操作
- 通过DexClassLoader启动服务并加载类
- 通过网络、文件和短信泄漏的信息
- 规避的权限
- 使用Android API执行的加密操作
- 列出广播接收器
- 已发送短信和电话
此外,还将生成了两个图表以可视化包装的行为。
一个显示操作的时间顺序,另一个显示为树图,可用于检查已分析包之间的相似性。
2 Java环境
2.1 Java下载
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
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环境验证
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
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下载
- 下载DroidBox安装包,下载地址: Github:Droidbox 4.1.1
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;
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 参考资料
- Java相关
- Ubuntu 18.04安装Java JDK8三种方式
- Droid相关
- Droidbox:Android应用程序的动态分析
- 【Linux】ubuntu虚拟机搭建Droidbox环境
- Droidbox恶意软件动态分析环境搭建
- DroidBox环境搭建
- Droidbox:Android应用程序的动态分析
- Android Dynamic Code Analysis - Mastering DroidBox
- Linux命令行相关
- Linux命令行,循环执行shell命令
- 模拟器使用相关
- 通过命令行管理AVD
- Android开发者指南:从命令行启动模拟器
- Android开发者指南:mksdcard
- Android开发者指南:Android Debug Bridge (adb)
DroidBox的环境搭建与使用(Android沙箱、未验证)相关推荐
- 悬剑2.0 tools安装_APP自动化测试之环境搭建:2. Android SDK安装配置
APP自动化测试之环境搭建:2. Android SDK安装配置 1.前提 基于win10专业版64位系统+jdk1.8+python3+pycharm+android SDK+appium+unit ...
- Android基础-系统架构分析,环境搭建,下载Android Studio,AndroidDevTools,Git使用教程,Github入门,界面设计介绍
系统架构分析 Android体系结构 安卓结构有四大层,五个部分,Android分四层为: 应用层(Applications),应用框架层(Application Framework),系统运行层(L ...
- eclipse开发cocos2dx 3.2环境搭建之一: Android C\C++环境搭建(ndk r9d)
这几天有时间,琢磨一下cocos2dx.cocos2d家族其实挺庞大的,也有cocos2d-android这种可以直接用Java语言来开发的,但是cocos2d-android资料相对少一些,而且貌似 ...
- python安卓版开发环境搭建_React Native Android 开发环境搭建(Windows 版)
补上之前说的 Windows 系统的 React Native 开发环境搭建,坑还是比 Mac 环境下的多些.此文的受众还是已经搭建过 Android 开发环境的同学. 需要安装的软件 Chocola ...
- 【明哥版】Auto.Js环境搭建如何与Android手机建立连接教程
前言 为什么要写这篇文章呢?主要是翻阅Auto.js文档没有找到环境搭建这章节,而且在翻阅一些社区要看见一些Auto.js入门的新手不知道怎么操作,且博主本人在搭建开发环境时同样也遇见了一些问题,发现 ...
- go语言android开发环境搭建,golang开发android应用(一) - go语言android应用环境搭建...
基于golang的android动态库开发,很久以前golang就支持开发android上的动态库及应用了,golang的环境搭建就不说了,直接从gomobile开始 软件依赖 golang, gom ...
- android 7 开发环境搭建,win7下android 开发环境搭建
第一步:准备JDK最小版本1.5 第二部:准备环境所需要的安装介质Eclipse ,ADT和windows平台下的SDK. 等待安装JDK和eclipse完成后,在eclipse中选择Help-> ...
- Android Camera 测试环境搭建:编译Android模拟器
在 Ubuntu 下面我编译 android 12 已经尝试过很多次,都失败了. 都是执行下面这步的时候,编译了几个小时以后报错 make sdk sdk_repo -j12 一开始给虚拟机分配了 8 ...
- React native 环境搭建遇到问题解决(android)
新建项目 react-native init TestApp 运行项目 react-native run-android 不好意思,错误马上就到了 问题一 通常遇到这个错误之后,系统会给出这个具体详情 ...
最新文章
- 百度程序员抱怨:告诉下家去哪里,才给批准离职!
- CentOS7Jenkins安装
- html的区域大小,JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性...
- React中的路由react-router
- Nunit2.5.10快速上手
- Linux sed工具用法
- ftp 追加远程文件_远程办公彻底火了,高效办公,拒绝卡顿,远程利器你选对了么?...
- python批处理代码_【原创源码】【python】python文本文件批处理
- 9600kf功耗和温度评测_i5-9400F与i5-9600KF性能差距大吗?i5 9600KF和9400F区别对比
- 2018.09.23 codeforces 1053B. Vasya and Good Sequences(前缀和)
- 现代控制理论(4)——李雅普诺夫稳定性理论
- 二进制 八进制 十进制 转换
- win7 下修改无限网卡Mac地址
- REUSE_ALV_GRID_DISPLAY_LVC-可编辑单元格
- 2022年1月国产数据库排行榜:TiDB霸榜两年势头不减,openGauss与OceanBase分数大涨
- Bi-LSTM-CRF命名实体识别实战
- 看电影学英语--欧美经典电影
- Progressive Downloader for Mac(mac不限速下载器)
- 2020年工博会看什么?机器人、工业互联网、自动化……
- 有序序列插入c语言,已有一个排好序的序列,输入一个数插入到该序列中,使其仍然保持有序....
热门文章
- ggplot2绘图点的形状不够用怎么办?
- 16款测序平台性能大PK,华大表现不俗!基于人类和细菌基因组DNA水平的多平台测序数据研究成果发布...
- [perl]perl界大牛唐凤传说
- 如何关闭mac烦人的更新升级提醒
- 1.13 编程基础之综合应用_14求满足条件的3位数 python
- php采集绕过cloudflare,三行代码带你绕过cloudflare反爬
- mysql内存报警_[MySQL生产环境] Innodb存储引擎内存报警问题处理过程_MySQL
- 【ES6(2015)】Generator
- python的flask实现第三方登录怎么写_Python语言的Flask框架应用程序实现使用QQ账号登录的方法...
- MySQL笔记-Slave_IO_Running:No【Could ... ... in binary log index file (server_errno=1236)】