demo
frida-rpc通過調用已加載到內存中的函數,直接獲取到結果:
import fridardev = frida.get_remote_device()
session = rdev.attach("大姨媽")scr = """rpc.exports = { encrypt(j2, str){var res;Java.perform(function () {var Crypt = Java.use("com.yoloho.libcore.util.Crypt"); res = Crypt.encrypt_data(j2, str);});return res;}}"""
script = session.create_script(scr)
script.load()sign = script.exports.encrypt(0,"38a6b024user/login8GGjp1eHdaK4e22QpCp0kfg==")
print(sign)
解釋:在最外層使用rpc.exports導出了encrypt方法的定義,所以在script.exports里就能調用encrypt方法。
類型的處理
在執行frida-rpc時,會涉及到參數類型的處理和轉換:
在python中給frida的JavaScript腳本傳入參數時,一般有如下幾種情況:
-
字符串/整型/浮點型等直接傳遞
import fridardev = frida.get_remote_device() session = rdev.attach("大姨媽") scr = """ rpc.exports = { encrypt:function(v1,v2,v3,v4,v5){console.log(v1,ty