#1 - Security/Android
Android Frida Script by ChatGPT
zzzzzzzzzzzzsleep
2022. 12. 16. 11:19
ChatGPT 이용하여 libc.so 의 open함수 Frida Hooking code 요청을 해봤다.
전체 소스코드는 이렇다
// First, import the Frida API and the `Process` module
var frida = require('frida');
var Process = frida.Process;
// Next, find the PID of the process you want to attach to
// In this example, we'll attach to the process with PID 1234
var pid = 1234;
// Attach to the process
Process.attach(pid).then(function (process) {
// Enumerate the imports of the process to find the `open` function
var imports = process.enumerateImportsSync("libc.so");
var openFunction = null;
imports.forEach(function (imp) {
if (imp.name === "open") {
openFunction = imp.address;
}
});
// If the `open` function was found, create a trampoline to hook it
if (openFunction !== null) {
// Define the hook function
var hook = function () {
console.log("open function called with arguments:", JSON.stringify(arguments));
return 0; // Return a value to avoid the application crashing
};
// Create the trampoline
var trampoline = Memory.alloc(Process.pageSize);
var hookCode = new NativeFunction(hook, 'int', ['pointer', 'int']);
hookCode.copy(trampoline, { size: Process.pageSize });
// Enable the hook
Interceptor.attach(openFunction, {
onEnter: function (args) {
// args[0] is the first argument of the `open` function (the file name)
console.log("Opening file: " + Memory.readUtf8String(args[0]));
args[0] = trampoline.add(Process.pageSize);
},
onLeave: function (retval) {
// retval is the return value of the `open` function
console.log("File opened with descriptor: " + retval);
}
});
}
});
신기하기도 하고.. 앞으로 많은 활용이 가능할거로 보인다
위의 코드는 전체 다 사용할 필욘 없어보이고 적당히 커스텀해서 쓰면 될 거 같다.
추후엔 string obfuscation, control flow graph 등 여러가지 deobfuscation 영역까지도
활성화되면 분석하기 참 편할거 같다
나중가면 사실 기계가 다 분석할듯..