首页
社区
课程
招聘
[求助]Frida 读写文件
发表于: 2020-6-3 15:47 10888

[求助]Frida 读写文件

2020-6-3 15:47
10888

读取sdcard 下文件 返回byte[]

 

第一个问题不知道为什么无法读取/data/data/packagenam/file 报的无权限,可我明明加了权限,也动态允许了。

 

第二个问题,读sdcard/下的文件,无法正常写入byte[] , 仿照Java的写法

 

求助大佬

function main(){
    function b2s(array) {
        var result = "";
        for (var i = 0; i < array.length; i++) {
            result += String.fromCharCode(modulus(array[i], 256));
        }
        return result;
    }

    Java.perform(function(){
        var File = Java.use('java.io.File');
        var FileInputStream = Java.use('java.io.FileInputStream');
        var ByteArrayOutputStream = Java.use('java.io.ByteArrayOutputStream');

        //var file = File.$new('/data/data/com.hello.normal/new_file.txt');
        var file = File.$new('/sdcard/tempFiles/new_file.txt');
        console.log("file is:"+file);
        console.log("ab file is:"+file.getAbsoluteFile());
        var file_length = parseInt(file.length());
        console.log("file_length is:"+file_length);

        var file_input_stream = FileInputStream.$new(file);
        console.log("parseInt(file_length) is:"+parseInt(file_length));

        var bytes = ByteArrayOutputStream.$new(parseInt(file_length)).toByteArray();

        //var array = new Array(20);
        /*var n = file_input_stream.read.overload("[B").call(this,bytes);

        while( n!= -1){
            bytes.write(bytes,n,0);
        }*/

        for (var i = 0; i < file.length(); i++) {
            console.log("file_input_stream.read() is:"+file_input_stream.read());
            bytes[i] = file_input_stream.read();
        }

        console.log("end read File");//打印
        console.log("bytes.length is:"+bytes.size());//打印0
        console.log("bytes.toString() is:"+b2s(bytes));//打印空
    });
}
setImmediate(main)

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 4520
活跃值: (1890)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
没有大佬做过吗
2020-6-4 14:59
0
雪    币: 4520
活跃值: (1890)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
var bytes = ByteArrayOutputStream.$new(parseInt(file_length));//.toByteArray();

        var n=0;
        var line = new Uint16Array(1024);


        while((n=file_input_stream.read(line))!=-1){
            bytes.write(line,0,n);
            //console.log("end read File"+ bytes[i]);//不要打开,打开后速度特别慢
            //i++;
        }
基本解决了读的问题,但是速度太慢
2020-6-8 17:42
0
雪    币: 263
活跃值: (454)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
4
frida 提供了 File的操作
2020-6-30 09:55
0
雪    币: 4520
活跃值: (1890)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
fzyspark frida 提供了 File的操作
只提供了写,读的话,需要frida-fs,速度太慢
2020-6-30 12:16
0
雪    币: 2270
活跃值: (5537)
能力值: ( LV8,RANK:146 )
在线值:
发帖
回帖
粉丝
6
passself 只提供了写,读的话,需要frida-fs,速度太慢
frida有个IOStream可以读啊
2020-6-30 22:16
0
雪    币: 4520
活跃值: (1890)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
小白abc frida有个IOStream可以读啊
你可以看看没有读本地的
2020-7-2 11:08
0
游客
登录 | 注册 方可回帖
返回
//