資源共享吧|易語(yǔ)言論壇|逆向破解教程|輔助開發(fā)教程|網(wǎng)絡(luò)安全教程|rigasin.com|我的開發(fā)技術(shù)隨記

 找回密碼
 注冊(cè)成為正式會(huì)員
查看: 2147|回復(fù): 1
打印 上一主題 下一主題

[安卓逆向] firda Hook類的所有方法,遇到的重載問題

[復(fù)制鏈接]

3

主題

136

帖子

0

精華

終身高級(jí)VIP會(huì)員

Rank: 7Rank: 7Rank: 7

資源幣
9
積分
138
貢獻(xiàn)
0
在線時(shí)間
18 小時(shí)
注冊(cè)時(shí)間
2021-2-21
最后登錄
2024-11-9

終身VIP會(huì)員

跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2021-2-24 15:41:26 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
1資源幣
在練習(xí)用frida hook java類所有方法時(shí),遇到如下問題,請(qǐng)高手指點(diǎn),怎么改?

Error: setName(): argument types do not match any of:
        .overload('java.lang.String')
    at ge (frida/node_modules/frida-java-bridge/lib/class-factory.js:584)
    at frida/node_modules/frida-java-bridge/lib/class-factory.js:996
    at je (frida/node_modules/frida-java-bridge/lib/class-factory.js:633)
    at frida/node_modules/frida-java-bridge/lib/class-factory.js:616



hook代碼如下:

//獲取所有方法,Hook
function HookAllMethod() {
    var student=Java.use('com.example.encrptiondemo.Person');
    var methods=student.class.getDeclaredMethods();
    for (var i=0;i<methods.length;i++){
        var methodName=methods.getName();
        console.log(methodName);
        //多個(gè)重載
        for(var k=0;k<student[methodName].overloads.length;k++){
            student[methodName].overloads[k].implementation=function() {
                 console.log("arguments:",JSON.stringify(arguments));
            //多個(gè)參數(shù)
            for (var j=0;j<arguments.length;j++){
                  console.log(arguments[j]);
            }

            return this[methodName].apply(this,arguments);
            }
        }

    }

}

android源碼如下:package com.example.encrptiondemo;

public class Person {
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public Person(Student student){
        this.name=student.getName();
        this.age=student.getAge();
    }
    public void print(){
        System.out.println(serialize());
    }
    public String serialize(){
        return this.name+","+this.age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}



回復(fù)

使用道具 舉報(bào)

2

主題

120

帖子

0

精華

終身高級(jí)VIP會(huì)員

Rank: 7Rank: 7Rank: 7

資源幣
88
積分
124
貢獻(xiàn)
0
在線時(shí)間
34 小時(shí)
注冊(cè)時(shí)間
2019-8-31
最后登錄
2023-4-27

終身VIP會(huì)員

沙發(fā)
發(fā)表于 2021-3-3 23:28:51 | 只看該作者
函數(shù)名.overload("數(shù)據(jù)類型")
回復(fù)

使用道具 舉報(bào)

 點(diǎn)擊右側(cè)快捷回復(fù)  

本版積分規(guī)則

小黑屋|資源共享吧 ( 瓊ICP備2023000410號(hào)-1 )

GMT+8, 2024-12-22 09:45 , Processed in 0.045941 second(s), 12 queries , MemCached On.

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回復(fù) 返回頂部 返回列表