image.png

    1. public static String myPrint(Object... objArr) {
    2. StringBuilder sb = new StringBuilder();
    3. for (Object obj : objArr) {
    4. sb.append(obj);
    5. sb.append("|");
    6. }
    7. return sb.toString();
    8. }

    如上面的图片所示,传入的类型各不相同,所以选用可变参数
    可变参数本质上就是数组,按数组处理即可
    只需要处理基本数据类型的包装,其他的frida会处理

    1. function test(){
    2. Java.perform(function () {
    3. //logOutPut(Utils.myPrint("xiaojianbang", 30, true, this.bankCard));this.bankCard是一个实例对象
    4. //值得注意的是,Frida只会自动处理字符串,int 和 boolean 不会自动处理
    5. var Utils = Java.use("com.xiaojianbang.hook.Utils");
    6. var bankCard = Java.use("com.xiaojianbang.hook.BankCard");
    7. var bankCardObj = bankCard.$new("dudu", "123456789", "CBDA", 1, "15900000000");
    8. var integer = Java.use("java.lang.Integer");
    9. var boolean = Java.use("java.lang.Boolean");
    10. console.log(Utils.myPrint(["xiaojianbang", integer.$new(30), boolean.$new(true),bankCardObj]))
    11. })};
    12. setImmediate(function(){
    13. setTimeout(test(), 5000);
    14. });