Android逆向之frida-dexdump脱壳分析某肿瘤sign

声明:本文仅限学习交流使用,禁止用于非法用途、商业活动等。否则后果自负。如有侵权,请告知删除,谢谢!本教程也没有专门针对某个网站而编写,单纯的技术研究

 一、firda 的安装

国内下载很慢: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

二、firda服务插件下载

1.下载网址: https://github.com/frida/frida/releases 下载下来记得解压

adb连接手机(我的是模拟器)查看系统:adb shell getprop ro.product.cpu.abi

我的系统是x86_64的所以下载的firda也要对应版本

d829e8950544449a8f1f5797c67b5bf1.png

5e085ab2749d479db6979959c3a9fcad.png

 2.将frida服务推送的模拟器

推送命令:adb push 你的frida服务 手机文件路径

845b3071136f4ebd960ca98eeb7f29bd.png

3.给frida最高权限

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

a765a212cc304d939384e573bdbe792c.png

 4.启动friday服务命令:adb shell frida文件所在绝对路径

启动之后不要关闭终端不然服务会关闭 

a59f9cba8f2a4e6895ee044e9c8d1176.png

三、脱壳

工具介绍:BlackDex64、BlackDex32、firda-dexdump、Fdex2等,这些都是我自己常用的脱壳工具

 1.登录接口分析,sign加密

ced44ac84cb5458cad8f68892dfc97db.png

2.本期App:5ZKa5ZKa6IK/55ik56eRLmFwaw==

App有360(drizzleDumper)的壳,查壳推荐:apk查壳.exe

不过查壳工具这个检测不到自行百度

ab177c6d5be34dbc8ac93216c37866da.png

 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 恭喜你版本不配对重新安装吧

其它异常百度

15bd294ba2ad4129a8d588937c83f167.png

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

9a1f8038b9284719a2b27fb3bc738362.png

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

3267a3a2a3f54b5c8cc0b3acd1e50d94.png

 四、dex分析

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

22ad248a40e546d4a2f154c392ab267e.png

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

8228b3a6a73d432ca3012416c7d63fff.png

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

ffd4d647611949bfa453662b2e0ddf70.png

 五、还原结果附源码

2bd2d08358034360a4e73a4b886c9ee0.png

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())

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值