frida使用技巧


获取类中的成员变量/方法

Java.perform(function(){
    var hook = Java.use("com.xxx.xxx");
    console.log("aa: ", hook)
    //获取成员变量
    //getFields():获得某个类的所有的公共(public)的字段,包括父类中的字段。 
    //getDeclaredFields():获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。
    //同样类似的还有getConstructors()和getDeclaredConstructors()、getMethods()和getDeclaredMethods(),这两者分别表示获取某个类的方法、构造函数
    var members = hook.class.getDeclaredFields();
    members.forEach(function(member) {
        // 
        console.log("member: ", member);
    });  
})

java层打印调用堆栈

console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()));

java.use(com.xxx.xxx)

Java.perform(function(){
    targetClass = "com.xxx.xxx"
    try {
        // 先用 java.use 如果找不到 在枚举classload
        Java.use(targetClass);
    } catch (error) {
        Java.enumerateClassLoaders({
            onMatch: function (loader) {
                try {
                    if (loader.findClass(targetClass)) {
                        console.log("loader find: " + loader);
                        Java.classFactory.loader = loader;
                    }
                } catch (error) {
                    //console.log("classloader failed" + error);
                }
            }, onComplete: function () {

            }
        });
    }
    var hook = Java.use(targetClass);
})

frida 通过wifiadb实现群控

import frida
import os
import time

app = "com.xxx.xxx";

deviceIds = [];
devices = frida.enumerate_devices();
for device in devices :
    # print(device)
    ## 枚举所有通过wifiadb 连的机器
    if device.id.find(":") > 0:
        #print(device.id)
        deviceIds.append(device.id.replace("5555", "9999"))

for id in deviceIds :
    print(id)
    device = frida.get_device_manager().add_remote_device(id)
    print(device)
    pid = device.spawn([app])
    print(pid)
    device.resume(pid)
    time.sleep(1)
    session = device.attach(pid)
    with open("load_hook.js") as f:
        script = session.create_script(f.read())
        script.load()
input()

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM