Viewing All Read and Write Files
18 views
4e56f552...
Description
Script to view all files (and its contents) that app read or write.
How to Use
Download the script and run it with Frida CLI:
Download ScriptThen run with Frida:
frida -U -f YOUR_PACKAGE_NAME -l viewing-all-read-and-write-files.js
Replace YOUR_PACKAGE_NAME with the target app's package name.
Source Code
JavaScript
Java.perform(function() {
var Activity = Java.use('android.app.Activity');
var FileOutputStream = Java.use('java.io.FileOutputStream');
var File = Java.use('java.io.File');
var InputStreamReader = Java.use('java.io.InputStreamReader');
var BufferedReader = Java.use('java.io.BufferedReader');
var ByteArrayOutputStream = Java.use('java.io.ByteArrayOutputStream');
// Intercept method openFileInput
Activity.openFileInput.overload('java.lang.String').implementation = function(filename) {
var file = File.$new(filename);
var filePath = file.getAbsolutePath();
console.log('Activity:', this.getClass().getName());
console.log('Opening read files:', filePath);
var fileInputStream = this.openFileInput(filename);
var inputStreamReader = InputStreamReader.$new(fileInputStream);
var bufferedReader = BufferedReader.$new(inputStreamReader);
var line;
while ((line = bufferedReader.readLine()) !== null) {
console.log('File content:', line);
}
bufferedReader.close();
inputStreamReader.close();
fileInputStream.close();
return fileInputStream;
};
Activity.openFileOutput.overload('java.lang.String', 'int').implementation = function(filename, mode) {
var file = File.$new(filename);
var filePath = file.getAbsolutePath();
console.log('Activity:', this.getClass().getName());
console.log('Opening write files:', filePath);
var fileOutputStream = this.openFileOutput.call(this, filename, mode);
fileOutputStream.write.overload('[B', 'int', 'int').implementation = function(buffer, offset, count) {
var byteArrayOutputStream = ByteArrayOutputStream.$new();
byteArrayOutputStream.write(buffer, offset, count);
var content = byteArrayOutputStream.toString();
console.log('Write files content:', content);
this.write(buffer, offset, count);
};
return fileOutputStream;
};
});
Comments