StoryDistiller快速部署指南

  • Author:ZERO-A-ONE
  • Date:2021-10-01

0x1 准备的文件和工具

1.1 环境需求

官方提供的环境需求如下:

Ubuntu/Macbook
Python: 2.7
APKTool: 2.4.1
Android emulator:X86, Android 7.1.1, Google APIs, 1920 * 1080
Android environment: adb, aapt
Java environment (jdk): jdk1.8.0_45

1.2 文件准备

我们大概需要准备一下几个东西,其中下载连接如下:

链接:https://pan.baidu.com/s/1CNqKKS1MMxdbypnGflKAZg 
提取码:ub2y 

我们应当检查我们是否拥有以下文件:

  • apktool.jar
  • apktool.sh
  • genymotion-3.2.1-linux_x64.bin
  • Genymotion-ARM-Translation_for_8.0.zip
  • android-studio-2020.3.1.24-linux.tar.gz
  • IC3.zip
  • jadx-master.zip
  • StoryDistill-main.zip

1.3 加速镜像配置

如果之前配置过Ubuntu镜像和Python镜像可以略过此步

Ubuntu镜像:

Ubuntu镜像这里推荐使用华为云开源镜像站提供的加速镜像,是我用过目前最快最稳定的Linux发行版加速镜像

  • Ubuntu的仓库地址为:https://repo.huaweicloud.com/ubuntu/
  • Ubuntu-CD的镜像地址为:https://repo.huaweicloud.com/ubuntu-cdimage/
  • Ubuntu-Cloud的镜像地址为:https://repo.huaweicloud.com/ubuntu-cloud-images/
  • Ubuntu-Ports的仓库地址为:https://repo.huaweicloud.com/ubuntu-ports/
  • Ubuntu-Releases的镜像地址为:https://repo.huaweicloud.com/ubuntu-releases/

首先备份配置文件:

sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.bak 

2、修改sources.list文件,将http://archive.ubuntu.comhttp://security.ubuntu.com替换成http://repo.huaweicloud.com,可以参考如下命令:

sudo sed -i "s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list
sudo sed -i "s@http://.*security.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list 

3、执行apt-get update更新索引

Python镜像:

临时使用的话,运行以下命令使用华为开发云软件源安装软件包:

pip install --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple <some-package> 

这里建议平时设为默认,Pip的配置文件为用户根目录下的:~/.pip/pip.conf(Windows路径为:C:\Users\<UserName>\pip\pip.ini), 您可以配置如下内容:

[global]
index-url = https://repo.huaweicloud.com/repository/pypi/simple
trusted-host = repo.huaweicloud.com
timeout = 120 

0x2 安装Android Studio

2.1 安装Java OpenJDK

Android Studio需要将OpenJDK版本8或更高版本安装到您的系统。

我们将安装OpenJDK8。安装非常简单,首先更新包索引:

sudo apt update

通过键入以下命令来安装OpenJDK 8软件包:

sudo apt install openjdk-8-jdk

通过键入以下命令来验证安装,该命令将打印Java版本:

java -version

输出应如下所示:

openjdk version "1.8.0_191" OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-2ubuntu0.18.04.1-b12) OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

2.2 安装Android Studio

在撰写本文时,Android Studio的最新稳定版本为3.3.1.0版。 最简单的方法是通过使用snappy打包系统在Ubuntu 18.04上安装Android Studio。

要下载并安装Android Studio snap软件包,请使用Ctrl+Alt+T键盘快捷键打开您的终端,然后键入:

sudo apt install snap -y
sudo snap install android-studio --classic

安装完成后,您将看到以下输出:

android-studio 2020.3.1.22 from Snapcrafters installed

而已。 Android Studio已安装在您的Ubuntu桌面上。

2.3 启动Android Studio

在启动前将当前用户添加到root用户组上

通过命令 sudo adduser $USER root将当前用户加入到root组

您可以通过在终端中键入android-studio或单击Android Studio图标(“ Activities -> Android Studio )来启动Activities -> Android Studio

2.4 解决/dev/kvm device permission denied问题

我用的是Ubuntu系统,首先需要安装qemu-kvm:

sudo apt install qemu-kvm

将当前用户添加到kvm用户组:

sudo adduser $USER kvm

检查/dev/kvm所有者:

ls -al /dev/kvm

一般结果就是所有者是root以及kvm这个组

添加完了之后检查一下kvm组里有没有你的用户名:

grep kvm /etc/group

一般结果就是这样:

kvm:x:数字:用户名

之后重启系统生效,如果不想重启可以运行以下命令(仍然得注销后再登录才生效):

udevadm control --reload-rules && udevadm trigger

ps:反正我选择重启

0x3 安装Genymotion

需要注意2点:

  • Genymotion 依赖 VirtualBox,必须安装 VirtualBox 才能安装 Genymotion
  • Genymotion 必须注册登录后才能正常使用,否则即使安装完成也无法使用,且国内访问 Genymotion 的网站和程序都有可能在网络上受限,

也就是说大陆地区网络直接访问官网或者在程序中登录,可能很慢可能无法访问,所以慎用

3.1 安装VirtualBox

安装 Genymotion 前先确认有没有装 VirtualBox,这里 ubuntu 用户推荐直接用命令安装

# update 可选运行或不运行
sudo apt update
sudo apt install virtualbox

3.2 安装Genymotion

# 先自行cd到文件目录 然后给文件赋权
sudo chmod u+x ./genymotion-3.2.1-linux_x64.bin 
# 安装到指定路径 也可以写绝对路径
sudo ./genymotion-3.2.1-linux_x64.bin -d ~/opt
# 之后脚本会二次确认路径,如果正确输入y 回车 即可
Installing to folder [/opt/genymotion]. Are you sure [y/n] ? y

3.3 Genymotion的ADB设置

因为Genymotion模拟器default的ADB是它自己实现的Genymotion ADB,然后StoryDroid脚本使用的adb是AndroidSDK里面自带的ADB,所以要把Genymotion的ADB修改为本机AndroidSDK里面的ADB

例如我本机SDK的位置如下:

/usr/lib/android-sdk/

0x4 安装apktool

官网如下:

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

首先需要下载一个sh脚本文件:

https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/windows/apktool.bat

将其改名为apktool,因为windows的Unix的换行符定义不一致,所以需要进行修改,运行如下命令:

sudo sed -i -e 's/\r$//' apktool

然后下载apktool.jar

https://bitbucket.org/iBotPeaches/apktool/downloads/

分别进入下载的2个文件所在的目录,将其复制到/usr/local/bin/下:

sudo cp apktool /usr/local/bin
sudo cp apktool.jar /usr/local/bin

将两个文件修改为可执行权限,进入/usr/local/bin目录下:

cd /usr/local/bin
sudo chmod 755 apktool apktool.jar

打开终端输入apktool -version,显示对应的版本信息,则说明安装成功

syc@ubuntu:/usr/local/bin$ apktool -version
2.6.0

安装aapt和adb

sudo apt install adb aapt -y

0x5 安装StoryDistiller

IC3jadx-master解压到用户目录下

syc@ubuntu:~$ ls -l
total 665400
......
drwxrwxr-x  4 syc  syc       4096 Jun 22  2019 IC3
-rw-rw-r--  1 syc  syc  559229407 Jul 31 21:49 IC3.zip
drwxrwxr-x 10 syc  syc       4096 Jul  2  2018 jadx-master
-rw-rw-r--  1 syc  syc  122068361 Jul 31 21:51 jadx-master.zip
......

解压StoryDistiller-main,将获得的code文件夹复制粘贴进入main-flolder文件夹中,文件目录如图所示:

syc@ubuntu:~/Downloads/StoryDistill/StoryDistiller-main/main-folder$ ls -all
total 80
drwxrwxr-x 16 syc syc  4096 Sep 30 21:07 .
drwxrwxr-x  4 syc syc  4096 Jun 28 03:33 ..
drwxrwxr-x  2 syc syc  4096 Jun 28 03:33 apks
drwxrwxr-x  2 syc syc  4096 Jun 28 03:33 atgs
drwxrwxr-x  3 syc syc  4096 Jun 28 03:33 code
drwxrwxr-x  4 syc syc  4096 Jun 28 03:33 config
-rw-rw-r--  1 syc syc 14340 Jun 28 03:33 .DS_Store
drwxrwxr-x  2 syc syc  4096 Jun 28 03:33 ic3_atgs
drwxrwxr-x  3 syc syc  4096 Jun 28 03:33 java_code
drwxrwxr-x  3 syc syc  4096 Jun 28 03:33 libs
drwxrwxr-x  2 syc syc  4096 Jun 28 03:33 manifest
drwxrwxr-x  2 syc syc  4096 Jun 28 03:33 outputs
drwxrwxr-x  2 syc syc  4096 Jun 28 03:33 parsed_cgs
drwxrwxr-x  2 syc syc  4096 Jun 28 03:33 parsed_ic3
drwxrwxr-x  2 syc syc  4096 Jun 28 03:33 parsed_manifest
drwxrwxr-x  2 syc syc  4096 Jun 28 03:33 soot_cgs
drwxrwxr-x  2 syc syc  4096 Jun 28 03:33 storydroid_atgs

将待测试的APK文件放入main-folder

进入code文件夹中,修改run_storydistiller.py中的路径配置信息,修改为,具体情况根据自己的机器情况来设定:

'''
Ubuntu and Macbook
'''
java_home_path = '/usr/lib/jvm/jdk1.8.0_45' # Ubuntu
#java_home_path = '/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home' # Macbook

sdk_platform_path = '/home/syc/Downloads/StoryDistill/StoryDistiller-main/main-folder/config/libs/android-platforms/'
#sdk_platform_path = '/Users/chensen/Tools/storydistiller/config/libs/android-platforms/'

lib_home_path = '/home/syc/Downloads/StoryDistill/StoryDistiller-main/main-folder/config/libs/'
#lib_home_path = '/Users/chensen/Tools/storydistiller/config/libs/'

callbacks_path = '/home/syc/Downloads/StoryDistill/StoryDistiller-main/main-folder/config/AndroidCallbacks.txt'
#callbacks_path = '/Users/chensen/Tools/storydistiller/config/AndroidCallbacks.txt'

jadx_path = '/home/syc/jadx-master/'
ic3_path = '/home/syc/IC3/'
#jadx_path = '/Users/chensen/Tools/storydroid_v1/jadx-master/'
#ic3_path = '/Users/chensen/Tools/storydroid_v1/IC3/'

然后在这个路径下进行运行:

/StoryDistiller-main/main-folder/code

运行前需要启动Genymotion的虚拟机,推荐使用Google Nexus 5X进行测试

首先需要安装treelibpython-scrapypython-opencv

pip install treelib
sudo apt install python-scrapy python-opencv -y

用一下命令进行运行:

sudo python2 run_storydistiller.py /home/syc/Downloads/StoryDistill/StoryDistiller-main/main-folder/

0x6 查看结果

具体的程序输出结果在outputs文件夹里面,每个APP具有对应的文件夹名字,其中还有一个output文件夹里面存在一个index.html文件,点击即可获得可视化的网页展示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值