frida-rpc調用


一.js代碼講解

rpc.exports = {       //固定寫法   
    myfunction: function (data){        //自定義方法名  myfunction  ,入參
        function byte_ToHexString(uint8arr) {   //busr數組轉16進制
            var hexStr = String();
            for (var i = 0; i < uint8arr.length; i++) {
                var hex = (uint8arr[i] & 0xff).toString(16);
                hex = (hex.length === 1) ? '0' + hex : hex;
                hexStr += hex;
            }
            return hexStr.toUpperCase();
        }
        Java.perform(function () {
            var Gorgon = Java.use("xx.xxx.xxx");       //hook類名
            result = Gorgon.leviathan(data);   //leviathan為方法名 
            result = {"code": 0, "value": byte_ToHexString(result)};   // 返回給py端內容
        });
        return result
    }
}

二.python代碼以及注釋

# -*- coding: utf-8 -*-
# @Time    : 2021/3/24 15:34
import logging
import frida
import sys
logging.basicConfig(level=logging.DEBUG)

def on_message(message, data):
    print(message)


def frida_rpc(session):
    #hook相關js代碼
    rpc_hook_js = """                                  
           上述展示代碼
    """
    #固定寫法
    script = session.create_script(rpc_hook_js)
    script.on('message', on_message)
    script.load()
    return script


rdev = frida.get_usb_device(10)
processes = rdev.enumerate_processes()  # 安卓手機中的所有進程
session = rdev.attach("com.ss.android.ugc.aweme")   #hook的包名
script = frida_rpc(session)

#調用
user_info1 = script.exports.douyingorgon(_data)
print(user_info1)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM