• frida so


    function main(){
    Java.perform(function() {
            //这个API可以枚举被加载到内存的modules。
            console.log(JSON.stringify(Process.enumerateModules()));
            //来查找要hook的函数所在的so的基地址,如果找不到就返回null。
            const lib_arr=Module.findBaseAddress("libnative-lib.so")
            console.log("libnative-lib.so基地址是",lib_arr)
            if(lib_arr){
                //来查找导出函数的绝对地址
                const myfirstJNI = Module.findExportByName("libnative-lib.so","Java_com_example_demoso1_MainActivity_myfirsyjniJNI")
                console.log("myfirstJNI函数地址",myfirstJNI);
                const offset = myfirstJNI-lib_arr
                //偏移量=函数的地址-so文件的基址,这个偏移量就是ida需要搜的
                console.log(offset,"0x"+offset.toString(16));
            //如果没有循环调用它,就需要主动去触发了
            //找到地址之后,就可以拦截function/instruction的执行。
            Interceptor.attach(myfirstJNI, {
            onEnter: function (args) {
                console.log("myfirstJNI args: " + args[0], args[1], args[2])
                //另外为了将jstring的值打印出来,可以使用jenv的函数getStringUtfChars
                console.log(Java.vm.getEnv().getStringUtfChars(args[2], null).readCString())
            },
            onLeave: function (retval) {
                console.log("retval:", retval)
                console.log(Java.vm.getEnv().getStringUtfChars(retval, null).readCString())
                var newRetval = Java.vm.getEnv().newStringUtf("new retval from hook_native");
                retval.replace(ptr(newRetval));
            }
        })
    
    
            }
    
        var symbols = Process.findModuleByName("libssl.so").enumerateSymbols();
        for(var i = 0;i<symbols.length;i++){
            var symbol = symbols[i].name;
            console.log("symbol",symbol,"address",symbol.address)
        }
    
    })
    
    }
    setImmediate(main)
    
  • 相关阅读:
    工作笔记(一)
    如何修改mindmanager默认字体为微软雅黑
    彻底解决zend studio 下 assignment in condition警告
    PHP5.2至5.6的新增功能详解
    ThinkPHP中的模型命名
    12大网站建设技巧 让访客信任你
    CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14
    几种不错的编程字体
    大型网站的灵魂——性能
    MySQL: InnoDB 还是 MyISAM?
  • 原文地址:https://www.cnblogs.com/c-x-a/p/15163775.html
Copyright © 2020-2023  润新知