【安卓】基于frida的一键脱壳+反编译

admin 2021年10月31日07:50:02评论727 views字数 2369阅读7分53秒阅读模式
声明:该公众号大部分文章来自作者日常学习笔记,也有少部分文章是经过原作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白

文章来源安家

原文:https://anjia0532.github.io/


0x01 说明

本文主要讲如何安装 frida和常见脱壳操作,相对比较基础,容易上手,所以不会讲很高深


0x02 环境准备

安装 Python3 环境


https://www.python.org/

安装 Frida

pip install frida frida-tools

如果安装 frida 时卡在 Running setup.py install for frida ... – 超过 2 分钟,基本会下载失败,此时用别的姿势打开 https://pypi.org/project/frida/#files ,根据实际情况下载对应的 egg,比如你是装的 python3.8,那就搜 py3.8-win 比如 frida-14.2.10-py3.8-win-amd64.egg

然后 easy_install frida-14.2.10-py3.8-win-amd64.egg ,重新执行 pip install frida frida-tools

安装虚拟机或者准备实体机

本文假设使用虚拟机,比如 夜神,打开虚拟机,开启开发者模式,启用usb调试

【安卓】基于frida的一键脱壳+反编译

打开 cmd,进入夜神安装目录bin

# 测试adb是否已连接xxxNoxbin>adb.exe devicesList of devices attached127.0.0.1:62001 device
# 获取cpu架构xxxNoxbin>adb.exe shell getprop ro.product.cpu.abix86

安装 frida 手机端

https://github.com/frida/frida/releases (国内如果慢,可以用https://hub.fastgit.org/frida/frida/releases 加速下载)

【安卓】基于frida的一键脱壳+反编译


解压下载下来的 firda-server-${version}-android-x86.xz,并将 frida-server 移动到虚拟机里,有些 app 会监测 frida 的进程,所以将文件随便命名

xxxNoxbin>adb push frida-server-14.2.10-android-x86 /data/local/tmp/abd[100%] /data/local/tmp/abdxxxNoxbin>adb shell chmod +x /data/local/tmp/abd && /data/local/tmp/abd# 转发frida端口xxxNoxbin>adb forward tcp:27042 tcp:27042xxxNoxbin>adb forward tcp:27043 tcp:27043xxxNoxbin>adb forward tcp:38089 tcp:38089# 启动frida并修改监听端口(防止部分app监测默认端口)xxxNoxbin>adb shell /data/local/tmp/abd -l 0.0.0.0:38089

另起一个 cmd

# 切换到安装frida 和frida-tools的环境下activate python3.8# 测试是否连上frida-server(python3.8) xxxNoxbin>frida-ps -H 127.0.0.1:38089 | findstr net# 网易云音乐4336  com.netease.cloudmusic1892  netd

以网易云音乐为例,https://www.wandoujia.com/apps/293217/history

为啥用豌豆荚下载,而不是别的应用市场,因为豌豆荚支持历史版本,意味着如果新版不好搞,可以多下几个版本,用最低能用版本作为


0x03 开始脱壳


安装FRIDA-DEXDump

# 如果端口改了需要clone后手动修改main.pygit clone https://github.com/hluwa/FRIDA-DEXDumpcd FRIDA-DEXDump/frida-dexdumppython main.py -h
# 如果不改端口,可以直接用pip安装pip install frida-dexdumpfrida-dexdump -h

如果要修改默认连接地址,修改 https://github.com/hluwa/FRIDA-DEXDump/blob/master/frida_dexdump/main.py#L177-L183 的 connect_device 函数,如果是手机,使用 usb 连接的话,可以不用改

def connect_device(timeout=15):    manager = frida.get_device_manager()    device = manager.add_remote_device("127.0.0.1:38089")    return device

将夜神 bin 目录配置到环境变量里

如果不配置 adb.exe 到环境变量,会报错

脱壳

【安卓】基于frida的一键脱壳+反编译

类似使用 frida 脱壳的方案还有很多,可以参考 抖音数据采集 Frida 脱壳工具

0x04 反编译

下载 jad-gui https://github.com/skylot/jadx/releases

最后使用jad-gui打开*.dex文件即可

【安卓】基于frida的一键脱壳+反编译

走过路过的大佬们留个关注再走呗【安卓】基于frida的一键脱壳+反编译


最后

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。


无害实验室sec拥有对此文章的修改和解释权如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的


原文始发于微信公众号(无害实验室sec):【安卓】基于frida的一键脱壳+反编译

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年10月31日07:50:02
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【安卓】基于frida的一键脱壳+反编译http://cn-sec.com/archives/606151.html

发表评论

匿名网友 填写信息