首页
论坛
课程
招聘
雪    币: 1895
活跃值: 活跃值 (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝

[求助]Frida 读写文件

2020-6-3 15:47 1795

[求助]Frida 读写文件

2020-6-3 15:47
1795

读取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)


[看雪官方培训]《安卓高级研修班(网课)》9月班开始招生!顶尖技术、挑战极限、工资翻倍!

最新回复 (6)
雪    币: 1895
活跃值: 活跃值 (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
passself 活跃值 2020-6-4 14:59
2
0
没有大佬做过吗
雪    币: 1895
活跃值: 活跃值 (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
passself 活跃值 2020-6-8 17:42
3
0
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++;
        }
基本解决了读的问题,但是速度太慢
雪    币: 262
活跃值: 活跃值 (18)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
fzyspark 活跃值 2020-6-30 09:55
4
0
frida 提供了 File的操作
雪    币: 1895
活跃值: 活跃值 (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
passself 活跃值 2020-6-30 12:16
5
0
fzyspark frida 提供了 File的操作
只提供了写,读的话,需要frida-fs,速度太慢
雪    币: 2052
活跃值: 活跃值 (476)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
小白abc 活跃值 2020-6-30 22:16
6
0
passself 只提供了写,读的话,需要frida-fs,速度太慢
frida有个IOStream可以读啊
雪    币: 1895
活跃值: 活跃值 (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
passself 活跃值 2020-7-2 11:08
7
0
小白abc frida有个IOStream可以读啊
你可以看看没有读本地的
游客
登录 | 注册 方可回帖
返回