frida-rpc初体验

frida-rpc记录

下载地址:aHR0cDovL3d3dy5kb3duY2MuY29tL3NvZnQvMjc2ODc3Lmh0bWw=

1.抓包 ,查看请求参数
在这里插入图片描述

只有 sign 加密 其他为明文

2.sign 长度为 32 位 首先猜md5

3.使用算法自吐脚本,

在这里插入图片描述

确实是 MD5 加密

4.使用 jadx-gui进行反编译时 发现定位不到加密位置

5.使用 mt 管理器查看 发现是 360 加固

6.一开始使用 dex-dump 进行脱壳,能脱壳成功,但是文件内容不太对

7.改用 BlackDex 进行脱壳 脱下来后 pull 到电脑端 用 jadx-gui打开

8.全局搜索"sign"
在这里插入图片描述

9.第一处跟第二处都很像 但是第二处的类名是包名 所以第二处概率更大

在这里插入图片描述
10.参数都是抓包时看到的参数 所以大概率是这个地方 hook 后发现能触发,

在这里插入图片描述
11.只要主动调用这个方法 就可完成 frida-rpc调用

import frida
from datetime import datetime

def on_message(message,data):
    if message['type'] == 'seen':
        print(f'参数为--{message["payload"]}')
    else:
        print(message)

js_code = """
    var sign = function(s){
        var result = '';
        Java.perform(function(){
            result = Java.use('com.jx885.library.http.network.HttpUtils').getStringMD5toUpperCase(s);
            
        });
        return result
    }
rpc.exports = {
    getsign:sign
}
"""

process = frida.get_usb_device().attach('驾培创业教练')
script = process.create_script(js_code)
script.on('message',on_message)
script.load()

t = datetime.now().strftime("%Y%m%d%H%M%S")

type = '1'

str1 = 'wocaonima'
str2 = 'xxx'  #手机号`在这里插入代码片`

s = t + type + str1 + str2
sign = script.exports_sync.getsign(s)
print(sign)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值