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

被折叠的 条评论
为什么被折叠?



