so主動調用任意函數读写文件jni函数hook及调用so堆栈二级指针构造native在哪个so

本文介绍了使用Frida进行JNI函数hook以实现读写文件的操作,包括通过libc直接写文件,以及两种JNI hook方法:按函数名过滤和按偏移定位。重点讨论了如何主动调用JNIEnv指针,并提到了构造函数的使用。同时,文章还探讨了如何打印调用堆栈,特别是在确定native函数位于哪个SO文件时,区分了动态和静态注册的区别,以及静态注册时利用dlsym进行hook的策略。
摘要由CSDN通过智能技术生成
function poscall(){
    var soAddr = Module.findBaseAddress("libxiaojianbang.so");
    var funAddr=hexdump(soAddr.add(0x16E0));

    var jsr2cstr=new NativeFunction(funAddr, 'pointer', [ 'pointer', 'pointer'])
    //第一个是env  第二个是jstring
    var env=Java.vm.getEnv();  //构造env
    var jstring=env.newStringUtf("hello world");  //构造jstring


    st=jsr2cstr(env,jstring);
    console.log("st:",st.readCString());
}
poscall()

frida 读写文件

通过libc 写文件


function libcwrite(){

    var addr_fopen=Module.findExportByName("libc.so", "fopen");
    var addr_fwrite=Module.findExportByName("libc.so", "fputs");
    var addr_fclose=Module.findEx
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sugar椰子皮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值