# from https://frida.re/docs/installation/ import frida session = frida.attach("hello") script = session.create_script(""" // Find the module for the program itself, always at index 0: const m = Process.enumerateModules()[0]; rpc.exports.enumerateModules = function () { return Process.enumerateModules()[0].enumerateSymbols(); }; """) script.load() data = script.exports.enumerate_modules() function_f = [x for x in data if x['name']=='f'][0] function_f_address = function_f['address'] script = session.create_script(""" // Find the module for the program itself, always at index 0: const m = Process.enumerateModules()[0]; Interceptor.attach(ptr("%s"), { onEnter: function(args) { send(args[0].toInt32()); } }); """ % int(function_f_address, 16)) def on_message(message, data): print(message) script.on('message', on_message) script.load() input()