Android逆向环境搭建

记录在Android 学习中工具的配置及相关环境的搭建。

Frida的安装

过程非常的曲折,好在最终是装上了的,或许你坚持走的路,他始终就是个优雅的错误,梦醒了,还要继续走🚩。

Frida 下载

网上很多教程都是直接pip install fridapip install frida-tools即可,可是我在安装时却不是如此。(记得关掉梯子,否则会出错)

其实后来在装好后 学习用法的时看到很多前辈在安装时候都有强调版本问题,只能怪自己当时有点急躁,漏掉了许多细节😞。

image-20220401233143141

这是我安装成功后用python3.10运行时的报错(部分),其余版本也是如此,对此我测试了python3.7-3.10间的版本。

image-20220401233315327

在使用python3.8和python2.7安装时,发现其缓存中的库都是同一个版本frida-15.1.17这在pypi上标注是针对3.10的,然后错误是在setup.py所以是版本处理不当,不过python3.10也运行出错就有点意外。

image-20220401234359678

他这一步其实是下载了 frida-15.1.17.tar.gz , 并运行其中的setup.py ,故可以直接在网上下载一个对应python3.7版本的frida文件 ,手动来运行setup.py

python3.7对应win-amd64版本 frida-12.8.20.tar.gz ,之后在任意目录解压,并在命令行依次运行如下指令。

  1. python3.7 setup.py install

    该步过后会在Python37\Lib\site-packages 目录下生成frida-12.8.20-py3.7-win-amd64.egg,在运行的最后一步可能需要等待一段时间。

    之后不要再去pip install frida ,接着去安装 frida-tools,不过直接pip 也会有报错。

  2. pip3.7 install frida-tools==7.2.1

​ 指定frida-tools的版本为7.2.1,接着等待一段时间,出现success就算成功。

image-20220402000244440

之后安装frida-server 版本要和frida一致 frida --version ,到frida-github安装对应版本的server。

image-20220403004209807

adb shell getprop ro.product.cpu.abi 查看手机cpu版本下载对应的server架构

下载解压后,将文件重命名为 frida-server ,或者加上对应的架构,夜神模拟器的话选Android-x86

adb调试环境

首先进入夜神模拟器的bin目录,打开终端。

  1. nox_adb.exe connect 127.0.0.1:62001 模拟器连到62001这个端口上
  2. 在非夜神bin目录的终端下 运行 adb connect 127.0.0.1:62001
  3. adb devices 检测是否连接

如果其中出现不匹配的问题,就到Android_SDK目录下把adb.exe复制到夜神模拟器的bin目录,重命名为nox_adb.exe之后再进行上述步骤。

配置好夜神后,将frida-server传到其\data\local\tmp目录下,修改权限并运行。

  1. adb push ./frida-server /data/local/tmp
  2. adb shell
  3. cd data/local/tmp
  4. chmod 777 frida-server
  5. ./frida-server
  6. adb tcp:27042 tcp:27042 进行端口转发

夜神模拟器中打开一个app程序,在主机上通过frida-ps -U查看USB调试进程,发现自己启动的程序包即为成功😃。

image-20220403004501603

使用firdahook包,frida-trace -i “open” -U com.test.hufu22

image-20220403104658735

当然基于frida的使用还有待进一步的学习,使用夜神模拟器等也只能是正对程序中带了x86的so文件才能进行IDA调试和Frida hook,要想用于实战必须要配备root机。

最终简介一下:frida是一款基于python + javascript 的hook框架,可运行在android、ios、linux、winosx等各平台,主要使用动态二进制插桩技术。

Objection安装

objection是一个基于Frida开发的命令行工具,它可以很方便的Hook Java函数和类,并输出参数,调用栈。其git地址为objection-github-release

1
frida --version #打印frida版本  12.11.18

安装对版本也又要求,如果frida安装的是12.11.18 ,那么安装的版本在1.8.4 ~ 1.9.0左右,更多可以根据frida版本的发行时间去objection找靠后一点的版本。

1
pip3.7 install objection==1.9.0 #直接指定相应版本即可

image-20220403195842070

frida install and 夜神模拟器

Android逆向-firda Hook 框架

Python-HOOK神器-Frida学习