diff --git a/examples/child_gating.py b/examples/child_gating.py index 371cbe1..4c7ed13 100644 --- a/examples/child_gating.py +++ b/examples/child_gating.py @@ -42,7 +42,8 @@ class Application: print("✔ enable_child_gating()") session.enable_child_gating() print("✔ create_script()") - script = session.create_script("""\ + script = session.create_script( + """\ Interceptor.attach(Module.getGlobalExportByName('open'), { onEnter(args) { send({ @@ -51,7 +52,8 @@ Interceptor.attach(Module.getGlobalExportByName('open'), { }); } }); -""") +""" + ) script.on("message", lambda message, data: self._reactor.schedule(lambda: self._on_message(pid, message))) print("✔ load()") script.load() diff --git a/examples/rpc.py b/examples/rpc.py index e775908..83c6c69 100644 --- a/examples/rpc.py +++ b/examples/rpc.py @@ -1,7 +1,8 @@ import frida session = frida.attach("Twitter") -script = session.create_script("""\ +script = session.create_script( + """\ rpc.exports = { hello: function () { return 'Hello'; @@ -10,7 +11,8 @@ rpc.exports = { oops; } }; -""") +""" +) script.load() api = script.exports_sync print("api.hello() =>", api.hello()) diff --git a/examples/session_persist_timeout.py b/examples/session_persist_timeout.py index 8dcf1ed..d749d11 100644 --- a/examples/session_persist_timeout.py +++ b/examples/session_persist_timeout.py @@ -22,7 +22,8 @@ class Application: self._session = session session.on("detached", lambda *args: self._reactor.schedule(lambda: self._on_detached(*args))) - script = session.create_script(""" + script = session.create_script( + """ let _puts = null; Interceptor.attach(DebugSymbol.getFunctionByName('f'), { @@ -47,7 +48,8 @@ function puts(s) { } _puts(Memory.allocUtf8String(s)); } -""") +""" + ) self._script = script script.on("message", lambda *args: self._reactor.schedule(lambda: self._on_message(*args))) script.load() diff --git a/examples/spawn_gating.py b/examples/spawn_gating.py index c8af1a2..297dcec 100644 --- a/examples/spawn_gating.py +++ b/examples/spawn_gating.py @@ -29,7 +29,8 @@ class Application: session = self._device.attach(pid) session.on("detached", lambda reason: self._reactor.schedule(lambda: self._on_detached(pid, session, reason))) print("✔ create_script()") - script = session.create_script("""\ + script = session.create_script( + """\ const puts = new NativeFunction(Module.getGlobalExportByName('puts'), 'int', ['pointer']); puts(Memory.allocUtf8String('Hello from Frida agent')); Interceptor.attach(Module.getGlobalExportByName('open'), { @@ -40,7 +41,8 @@ Interceptor.attach(Module.getGlobalExportByName('open'), { }); } }); -""") +""" + ) script.on("message", lambda message, data: self._reactor.schedule(lambda: self._on_message(pid, message))) print("✔ load()") script.load() diff --git a/frida/frida_bindgen/codegen.py b/frida/frida_bindgen/codegen.py index 05cee3d..10ccf44 100644 --- a/frida/frida_bindgen/codegen.py +++ b/frida/frida_bindgen/codegen.py @@ -1303,13 +1303,15 @@ def generate_object_type_toplevel_definitions(model: Model) -> str: cprefix = otype.c_symbol_prefix if otype.name == "Object": - defs.append(f"""PYFRIDA_DEFINE_BASETYPE ("_frida.{otype.py_name}", {otype.py_name}, g_object_unref, + defs.append( + f"""PYFRIDA_DEFINE_BASETYPE ("_frida.{otype.py_name}", {otype.py_name}, g_object_unref, {{ Py_tp_doc, "{otype.name}" }}, {{ Py_tp_init, {cprefix}_init }}, {{ Py_tp_dealloc, {cprefix}_dealloc }}, {{ Py_tp_methods, {cprefix}_methods }}, {{ Py_tp_getset, {cprefix}_getsets }}, -);""") +);""" + ) continue parent = otype.parent @@ -1329,12 +1331,14 @@ def generate_object_type_toplevel_definitions(model: Model) -> str: ) continue - defs.append(f"""PYFRIDA_DEFINE_TYPE ("_frida.{otype.py_name}", {otype.py_name}, {parent_name}, g_object_unref, + defs.append( + f"""PYFRIDA_DEFINE_TYPE ("_frida.{otype.py_name}", {otype.py_name}, {parent_name}, g_object_unref, {{ Py_tp_doc, "{otype.name}" }}, {{ Py_tp_init, {cprefix}_init }}, {{ Py_tp_methods, {cprefix}_methods }}, {{ Py_tp_getset, {cprefix}_getsets }}, -);""") +);""" + ) return "\n\n".join(defs) @@ -2764,10 +2768,12 @@ def generate_object_type_structs(model: Model) -> str: for otype in model.regular_object_types: if otype.name == "Object": continue - structs.append(f"""struct _{otype.c_symbol_prefix} + structs.append( + f"""struct _{otype.c_symbol_prefix} {{ {otype.parent_c_symbol_prefix} parent; -}};""") +}};""" + ) return "\n\n".join(structs)