057-基于frida的一键脱壳+反编译

057-基于frida的一键脱壳+反编译基本上能看我这篇的基本都是脱壳一知半解的脚本小子(我自己也是),所以不会讲很高深的(比如 常见android app加固厂商脱壳方法研究) 。本文主要讲如何安装frida(国内装frida有些坑)和常见脱壳操作。 如果安装frida时卡在 Running setup.py in…

这是坚持技术写作计划(含翻译)的第57篇,定个小目标999,每周最少2篇。

开场 冷知识 ,脱壳(qiao)不是脱壳(ke),当然大多数人还是习惯读ke

基本上能看我这篇的基本都是脱壳一知半解的脚本小子(我自己也是),所以不会讲很高深的(比如 常见android app加固厂商脱壳方法研究) 。本文主要讲如何安装frida(国内装frida有些坑)和常见脱壳操作。

安装Frida

安装Python3环境

可以自行安装,也可以参考之前写的安装anaconda

安装Frida

# pip安装组件
pip install frida frida-tools

如果安装frida时卡在 Running setup.py install for frida ... – 超过2分钟,基本会下载失败,此时用别的姿势打开 pypi.org/project/fri… ,根据实际情况下载对应的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调试
image.png
打开cmd,进入夜神安装目录\bin

# 测试adb是否已连接
xxx\Nox\bin>adb.exe devices
List of devices attached
127.0.0.1:62001 device

# 获取cpu架构
xxx\Nox\bin>adb.exe shell getprop ro.product.cpu.abi
x86

安装frida手机端

github.com/frida/frida… (国内如果慢,可以用hub.fastgit.org/frida/frida… 加速下载)
image.png
解压下载下来的firda-server-${version}-android-x86.xz,并将frida-server移动到虚拟机里,有些app会监测frida的进程,所以将文件随便命名

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

另起一个cmd,

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

以网易云音乐为例,www.wandoujia.com/apps/293217…
为啥用豌豆荚下载,而不是别的应用市场,因为豌豆荚支持历史版本,意味着如果新版不好搞,可以多下几个版本,用最低能用版本作为切入点

开始脱壳

安装

# 如果端口改了需要clone后手动修改main.py
git clone https://github.com/hluwa/FRIDA-DEXDump
cd FRIDA-DEXDump/frida-dexdump
python main.py -h

# 如果不改端口,可以直接用pip安装
pip install frida-dexdump
frida-dexdump -h

如果要修改默认连接地址,修改 github.com/hluwa/FRIDA… 的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到环境变量,会报错

'adb' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

脱壳

(python3.8) xxx\FRIDA-DEXDump\frida_dexdump>python main.py -p 4336

------------------------------------------------------------------------------------------------------------------------
                  ____________ ___________  ___        ______ _______   _______                                         
                  |  ___| ___ \_   _|  _  \/ _ \       |  _  \  ___\ \ / /  _  \                                        
                  | |_  | |_/ / | | | | | / /_\ \______| | | | |__  \ V /| | | |_   _ _ __ ___  _ __                    
                  |  _| |    /  | | | | | |  _  |______| | | |  __| /   \| | | | | | | '_ ` _ \| '_ \                   
                  | |   | |\ \ _| |_| |/ /| | | |      | |/ /| |___/ /^\ \ |/ /| |_| | | | | | | |_) |                  
                  \_|   \_| \_|\___/|___/ \_| |_/      |___/ \____/\/   \/___/  \__,_|_| |_| |_| .__/                   
                                                                                               | |                      
                                                                                               |_|                      
                                      https://github.com/hluwa/FRIDA-DEXDump                                            
------------------------------------------------------------------------------------------------------------------------

02-04/17:25:45 INFO [DEXDump]: found target [4336] com.netease.cloudmusic
'adb' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
[DEXDump]: DexSize=0x8c5e74, DexMd5=ae00d7d709366721d36acd3d9323463c, SavePath=xxx\FRIDA-DEXDump\frida_dexdump/com.netease.cloudmusic/0x9e1aa7dc.dex

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

反编译

下载 jad-gui github.com/skylot/jadx…
image.png

参考资料

今天的文章057-基于frida的一键脱壳+反编译分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/20730.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注