这篇文章上次修改于 1134 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

title: 制作安卓逆向分析镜像模板
date: 2020/10/20 19:50:33
updated: 2020/10/20 21:40:00
permalink: make-a-basic-reverse-environment-image/

toc: true


起因

主要是为了方便个人习惯,分析不同的APP可以马上有一个干净新环境。

步骤

初始设置

解压kali-linux-2019.4-vmware-amd64.zip

VmWare中选择文件->打开->解压后的Kali-Linux-2019.4-vmware-amd64.vmx


设置一下名称和内存,网络部分用NAT即可

系统配置

开启虚拟机,弹出提示选择我已复制该虚拟机

默认用户是root,密码是toor

首先设置时区,选择Shanghai

dpkg-reconfigure tzdata

修改镜像源为ustc

nano /etc/apt/sources.list

在文件最前面添加以下内容

deb https://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src https://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib

deb http://http.kali.org/kali kali-rolling main non-free contrib注释掉

然后更新一下源,安装中文字体

apt-get update
apt install xfonts-intl-chinese
apt install ttf-wqy-microhei

修改一下字体大小

修改下终端的用户名,重启后生效

nano /etc/hostname

软件配置

安装Android Studio,切换到bin目录启动

tar -zxvf android-studio-ide-193.6626763-linux.tar.gz
./studio.sh

如果需要设置代理,加快整体配置速度,请记得电脑上的代理软件把允许来自局域网的连接选上

另外某个软件的http端口比socks的端口大1


新建一个项目,完全初始化一次

载入后会提示说使用http代理,记得改下端口


直到最终需要的依赖加载完成

配置环境变量,在末尾添加具体路径信息

nano /root/.bashrc
PATH=$PATH:/root/Android/Sdk/platform-tools/

jarsignerkeytool添加到环境变量,为了避免影响系统的java环境,所以这里用软链接,注意路径

ln -s /root/android-studio/jre/bin/jarsigner /usr/local/bin/jarsigner
ln -s /root/android-studio/jre/bin/keytool /usr/local/bin/keytool

生成keystore以及签名

keytool -genkey -alias mydemo.keystore -keyalg RSA -validity 20000 -keystore mydemo.keystore
jarsigner -verbose -keystore mydemo.keystore -signedjar new.apk old.apk mydemo.keystore

安装apktool

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

顺便设置一下历史文件大小

设置proxychains.conf,可以在使用的命令前添加proxychains让命令走网络代理

nano /etc/proxychains.conf
socks5 192.168.2.161 10808

安装neofetch

apt install neofetch

安装jnettop

apt install jnettop

安装htop

apt install htop

安装curl

apt install curl

pyenv配置多版本python

首先安装依赖

由于一些变更导致依赖有问题,需要用aptitude来安装最好

apt install aptitude

aptitude install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl

改用miniconda吧,上面这个方法会把kali内置很多软件干掉

./Miniconda3-py38_4.8.3-Linux-x86_64.sh

开始会提示查看条款什么的,直接按q就可以退出,然后回车。

最后有一个提示要不要conda init,建议yes,然后通过下面这个命令关闭掉每次打开terminal就进入虚拟环境

conda config --set auto_activate_base false

记得先把conda添加到环境变量中,注意你的安装路径

export PATH="/root/miniconda3/bin:$PATH"

安装vscode

dpkg -i code_1.48.2-1598353430_amd64.deb

安装jeb ilbtcdnwiuypbzeo

mkdir jeb
7z x jeb-pro-3.19.1.202005071620_pwd_ilbtcdnwiuypbzeo_sn_#61641164873316763_.zip

安装nodejs(Node.js LTS (v14.x))

参见 https://github.com/nodesource/distributions/blob/master/README.md

# Using Debian, as root
curl -sL https://deb.nodesource.com/setup_lts.x | bash -
apt-get install -y nodejs

新建一个自己常用的环境

conda create -n frida_normal python==3.7.6
conda activate frida_normal

设置一下pypi的源

pip install pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

安装frida、frida-tools和objection

pip install frida==12.11.18
pip install frida-tools==8.2.0
pip install objection==1.9.6

创建一个方便编写frida脚本的配置

cd /root/Desktop
git clone git://github.com/oleavr/frida-agent-example.git
mv frida-agent-example frida-scripts
cd frida-scripts
npm install

使用命令示例

frida -U -f com.example.android --no-pause -l _agent.js

frida-scripts安装objection插件:

Wallbreaker

git clone https://github.com/hluwa/Wallbreaker .objection/plugins/Wallbreaker

FRIDA-DEXDump

git clone https://github.com/hluwa/FRIDA-DEXDump FRIDA-DEXDump
mv FRIDA-DEXDump/frida_dexdump .objection/plugins/dexdump

安装jadx

https://bintray.com/skylot/jadx/unstable/_latestVersion#files