(frida小记) 03 修改类成员及枚举所有类和类的方法

本文介绍了如何使用Java.perform进行代码注入,修改静态和非静态类成员,并通过enumerateLoadedClasses枚举所有类及其方法。重点展示了hook技术在修改类属性和遍历类结构的应用。
摘要由CSDN通过智能技术生成

修改类成员

修改静态static的类成员(类被初始化时就创建了)
修改非静态的类成员(类被实例化时才创建),当出现同名的name参数和name方法时,要修改参数name时要写成_name!!!

//hook类成员字段
function hooktest8(){
    Java.perform(function(){
        //对于静态字段static
        var myuser=Java.use("com.alex.javahooktarget.MyUser");
        myuser.flag.value="hell yeah!";
        send(myuser.flag.value);
        console.log(JSON.stringify(myuser.flag.value));

        //对于非静态字段
        Java.choose("com.alex.javahooktarget.MyUser",{
            onMatch:function(obj){
                obj.trueName.value="hahaha";
            },
            onComplete:function(){

            }
        });
    })
}

枚举所有类和类的方法

异步的方法

function hookTest7(){
    Java.perform(function(){
        Java.enumerateLoadedClasses({
                onMatch:function(name,handler){
                    if(name.indexOf("com.alexw.app")!=-1){
                        console.log(name);
                        var clazz=Java.use(name);
                        console.log(clazz);
                        var methods=clazz.class.getDeclaredMethods();
                        for(var i=0;i<methods.length;i++){
                            console.log(methods[i]);
                        }
                    }
                },
                onComplete:function(){

                }
           }
        });
    });
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值