声明:本文仅限学习交流使用,禁止用于非法用途、商业活动等。否则后果自负。如有侵权,请告知删除,谢谢!本教程也没有专门针对某个网站而编写,单纯的技术研究
- 国内下载很慢:pip后面加上 -i https://pypi.tuna.tsinghua.edu.cn/simple
- Frida python 依赖包安装,frida-tools跟frida版本跨院太大回报错注意对应版本
- 工具包 --> pip install frida-tools===12.0.2
- 服务 --> pip install frida==16.0.3
- 脱壳服务 --> pip install frida-dexdump==2.0.1
1.下载网址: https://github.com/frida/frida/releases 下载下来记得解压
adb连接手机(我的是模拟器)查看系统:adb shell getprop ro.product.cpu.abi
我的系统是x86_64的所以下载的firda也要对应版本


2.将frida服务推送的模拟器
推送命令:adb push 你的frida服务 手机文件路径

3.给frida最高权限
| adb shell | 进入手机终端 |
| ls | 列出当前路径所有文件名 |
| chmod 777 | 赋予权限 |
| ls -l | 查看文件及其权限 |
| mv | 移动文件并修改名称 |
| exit | 退出手机终端 |

4.启动friday服务命令:adb shell frida文件所在绝对路径
启动之后不要关闭终端不然服务会关闭

工具介绍:BlackDex64、BlackDex32、firda-dexdump、Fdex2等,这些都是我自己常用的脱壳工具
1.登录接口分析,sign加密

2.本期App:5ZKa5ZKa6IK/55ik56eRLmFwaw==
App有360(drizzleDumper)的壳,查壳推荐:apk查壳.exe
不过查壳工具这个检测不到自行百度

3.打开app,查看手机进程命令:frida-ps -U -a
(进程ID,进程名,包名)
如果报错把端口转发
adb forward tcp:27042 tcp:27042
adb forward tcp:27043 tcp:27043
如果异常为:Failed to spawn: unable to handle 64-bit processes due to build configuration 恭喜你版本不配对重新安装吧
其它异常百度

4.开始脱壳命令:frida-dexdump -U -f com.shengwu315.patient 默认输出当前目录下com.shengwu315.patient文件, -o 可以指定输出目录

5.脱完壳就可以使用jadx-gui-1.2.0分析了

1.我这里随机分析classes02.dex,运气不错一发入魂

2.简单分析一下,拿了token不为空添加 hashMap,请求表单,requesttime时间戳

3.对 hashMap 排序,最后添加一个appkey,md5加密一下


- import time
- import requests
- from hashlib import md5
-
- # 请求数据
- data = {
- "phone": "13471392714",
- "type": "6",
- }
- # 加密数据、如果有TOKEN加上
- sign_data = {**{
- "requesttime": str(int(time.time() * 1000)),
- }, **data}
- sign = '&'.join((map(lambda x: '='.join(x), sorted(sign_data.items())))) + "&appkey=dongdongdev"
- print(f"加密字符串 --> {sign}")
- sign = md5(sign.encode()).hexdigest().upper()
- print(f"加密结果 --> {sign}")
-
- headers = {
- 'sign': sign,
- 'User-Agent': 'okhttp/3.12.0',
- 'requesttime': sign_data['requesttime']
- }
- url = "https://dd.shengwu315.com/v3/user/send-code"
- print(requests.post(url=url, data=data, headers=headers).json())