Code: Select all
function main()
{
Interceptor.attach(Module.getExportByName(null, 'open'), {
onEnter(args) {
const originalPath = args[0].readCString();
if (shouldReplace(originalPath)){
args[0].writeUtf8String('/tmp/predefined'); // (1)
//args[0] = Memory.allocUtf8String("/tmp/predefined"); (2)
}
},
});
}
function shouldReplace(path) {
if (!path) return false;
// Do not replace essential system or config files:
if (path.startsWith("/usr/") || path.startsWith("/etc/") || path.startsWith("/lib") ||
path.startsWith("/var/") || path.startsWith("/proc/") || path.startsWith("/sys/") ||
path.startsWith("/dev/") || path.startsWith("/run/") || path.startsWith("/home/user/.config/")
|| path.startsWith("/home/user/.cache") || path.startsWith("/home/user/.local") ) {
return false;
}
// Avoid replacing if it's already the predefined file (prevent infinite loop)
if (path === "/tmp/predefined") {
return false;
}
// Otherwise, assume it's a user-requested file and should be repalced
return true;
}
main()
frida als: ./frida -l Patcher.js -f/usr/bin/gnom-text-editor/tmp/originalfile anscheinend gearbeitet:/tmp/tmpiled. /tmp/originalfile . Aber wenn ich einen neuen Speicher für String "/tmp/vordefiniert" zuordnen und diesem neuen Speicher den Argums [0] einen Zeiger zuweisen möchte, anstatt den Inhalt des Gedächtnisses neu zu schreiben, auf die Args [0] [0] (2) Zeile (1), kommentieren (1) Zeile), erhalte ich Fehler. Öffnen Sie die Datei Sie haben keine Berechtigungen, um die Datei zu öffnen
Im Terminal: (Gnome-Text-Educt: 9036): Editor-Document-Warning **: 11: 11: 33.542: fehlgeschlagen, um Datei zu laden: Fehler öffnen/tmp/originalFile: Keine Datei- oder Directory- oder Directory- oder Directory- oder Directory- oder Directory- oder Direktorie. existiert.>