sun博客

记录点滴!

搞了2个小时,需要查看目标apk保存日志的文件到底是什么。于是要把文件使用frida保存下来。以下是成功代码:

function saveFile(sourceFile, outPath) {
    //文件的目录为linux,包名下的,如:"/data/user/0/com.ximalaya.ting.lite/files/bkxx.txt",其它目录如sdcard是没有权限读取的,可以用trycatch查看报错。
    console.log("正在保存文件....");

    if((sourceFile.exists()) && (sourceFile.isFile())) {
        var File = Java.use("java.io.File");
        var FileInputStream = Java.use("java.io.FileInputStream");
        var FileOutputStream = Java.use("java.io.FileOutputStream");

        var fis = FileInputStream.$new(sourceFile);
        var file = File.$new(outPath);
        if (file.exists() && file.isFile()) {
            console.log("文件已找到", outPath);
        }else{
            try {
                if (file.createNewFile()) {
                    console.log("File created: " + file.getName());
                } else {
                    console.log("Failed to create file.");
                }
            } catch (e) {
                console.log(e)
            }
        }
        var fos = FileOutputStream.$new(file);
        // var bufferClass = Java.use("[B");
        //  var buffer = bufferClass.$new(1024);

        var buffer = Java.array('byte', [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]);
        var bytesRead;
        while ((bytesRead = fis.read(buffer)) != -1) {
            fos.write(buffer, 0, bytesRead);
        }

        // fis.close();
        fos.close();

        console.log("File copied successfully.");
    }else {
        console.log("源文件不存在或者不是文件类型")
    }



}


export default saveFile

发表评论

邮箱地址不会被公开。 必填项已用*标注