From 39b73f40b4cebc60ad48c0838294fea78ae954ac Mon Sep 17 00:00:00 2001 From: Ylarod Date: Sat, 25 May 2024 09:54:07 +0800 Subject: [PATCH] fix for frida 16.2.5 --- .github/workflows/build.yml | 69 ++++++++++--------- .../0001-Florida-string_frida_rpc.patch | 4 +- .../0002-Florida-frida_agent_so.patch | 4 +- ...0003-Florida-symbol_frida_agent_main.patch | 54 +++------------ .../0004-Florida-thread_gum_js_loop.patch | 4 +- .../0005-Florida-thread_gmain.patch | 4 +- ...-Florida-protocol_unexpected_command.patch | 8 +-- .../0007-Florida-update-python-script.patch | 4 +- .../frida-core/0008-Florida-pool-frida.patch | 4 +- .../0009-Florida-memfd-name-jit-cache.patch | 8 +-- 10 files changed, 65 insertions(+), 98 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 580d495..52200c6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -109,7 +109,7 @@ jobs: - uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 - name: Set up JDK 17 uses: actions/setup-java@v3 @@ -153,10 +153,16 @@ jobs: cd ../.. echo $i done - make core-android-arm - make core-android-arm64 - make core-android-x86 - make core-android-x86_64 + cd .. + ARCHES="android-arm android-arm64 android-x86 android-x86_64" + for ARCH in ARCHES + do + mkdir build-$ARCH + cd build-$ARCH + ./configure --host=$ARCH + make + cd .. + done - name: Split Repository Name id: split_name @@ -193,27 +199,22 @@ jobs: - name: package build result for Android shell: bash run: | - pushd frida - gzip build/frida-android-arm/bin/frida-server - gzip build/frida-android-arm64/bin/frida-server + gzip build-android-arm/subprojects/frida-core/server/frida-server + gzip build-android-arm64/subprojects/frida-core/server/frida-server + gzip build-android-x86/subprojects/frida-core/server/frida-server + gzip build-android-x86_64/subprojects/frida-core/server/frida-server - gzip build/frida-android-x86/bin/frida-server - gzip build/frida-android-x86_64/bin/frida-server + gzip build-android-arm/subprojects/frida-core/inject/frida-inject + gzip build-android-arm64/subprojects/frida-core/inject/frida-inject + gzip build-android-x86/subprojects/frida-core/inject/frida-inject + gzip build-android-x86_64/subprojects/frida-core/inject/frida-inject - gzip build/frida-android-arm/bin/frida-inject - gzip build/frida-android-arm64/bin/frida-inject + gzip build-android-arm/subprojects/frida-core/lib/gadget/frida-gadget.so + gzip build-android-arm64/subprojects/frida-core/lib/gadget/frida-gadget.so + gzip build-android-x86/subprojects/frida-core/lib/gadget/frida-gadget.so + gzip build-android-x86_64/subprojects/frida-core/lib/gadget/frida-gadget.so - gzip build/frida-android-x86/bin/frida-inject - gzip build/frida-android-x86_64/bin/frida-inject - - gzip build/frida-android-arm/lib/frida/32/frida-gadget.so - gzip build/frida-android-arm64/lib/frida/64/frida-gadget.so - - gzip build/frida-android-x86/lib/frida/32/frida-gadget.so - gzip build/frida-android-x86_64/lib/frida/64/frida-gadget.so - - popd - name: Upload android arm frida-server for Florida uses: actions/upload-release-asset@v1.0.2 @@ -221,7 +222,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}' - asset_path: '${{ github.workspace }}/frida/build/frida-android-arm/bin/frida-server.gz' + asset_path: '${{ github.workspace }}/build-android-arm/subprojects/frida-core/server/frida-server.gz' asset_name: 'florida-server-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-arm.gz' asset_content_type: application/octet-stream @@ -231,7 +232,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}' - asset_path: '${{ github.workspace }}/frida/build/frida-android-arm64/bin/frida-server.gz' + asset_path: '${{ github.workspace }}/build-android-arm64/subprojects/frida-core/server/frida-server.gz' asset_name: 'florida-server-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-arm64.gz' asset_content_type: application/octet-stream @@ -241,7 +242,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}' - asset_path: '${{ github.workspace }}/frida/build/frida-android-x86/bin/frida-server.gz' + asset_path: '${{ github.workspace }}/build-android-x86/subprojects/frida-core/server/frida-server.gz' asset_name: 'florida-server-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-x86.gz' asset_content_type: application/octet-stream @@ -251,7 +252,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}' - asset_path: '${{ github.workspace }}/frida/build/frida-android-x86_64/bin/frida-server.gz' + asset_path: '${{ github.workspace }}/build-android-x86_64/subprojects/frida-core/server/frida-server.gz' asset_name: 'florida-server-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-x86_64.gz' asset_content_type: application/octet-stream @@ -261,7 +262,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}' - asset_path: '${{ github.workspace }}/frida/build/frida-android-arm/bin/frida-inject.gz' + asset_path: '${{ github.workspace }}/build-android-arm/subprojects/frida-core/inject/frida-inject.gz' asset_name: 'florida-inject-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-arm.gz' asset_content_type: application/octet-stream @@ -271,7 +272,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}' - asset_path: '${{ github.workspace }}/frida/build/frida-android-arm64/bin/frida-inject.gz' + asset_path: '${{ github.workspace }}/build-android-arm64/subprojects/frida-core/inject/frida-inject.gz' asset_name: 'florida-inject-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-arm64.gz' asset_content_type: application/octet-stream @@ -281,7 +282,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}' - asset_path: '${{ github.workspace }}/frida/build/frida-android-x86/bin/frida-inject.gz' + asset_path: '${{ github.workspace }}/build-android-x86/subprojects/frida-core/inject/frida-inject.gz' asset_name: 'florida-inject-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-x86.gz' asset_content_type: application/octet-stream @@ -291,7 +292,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}' - asset_path: '${{ github.workspace }}/frida/build/frida-android-x86_64/bin/frida-inject.gz' + asset_path: '${{ github.workspace }}/build-android-x86_64/subprojects/frida-core/inject/frida-inject.gz' asset_name: 'florida-inject-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-arm-x86_64.gz' asset_content_type: application/octet-stream @@ -301,7 +302,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}' - asset_path: '${{ github.workspace }}/frida/build/frida-android-arm/lib/frida/32/frida-gadget.so.gz' + asset_path: '${{ github.workspace }}/build-android-arm/subprojects/frida-core/lib/gadget/frida-gadget.gz' asset_name: 'florida-gadget-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-arm.so.gz' asset_content_type: application/octet-stream @@ -311,7 +312,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}' - asset_path: '${{ github.workspace }}/frida/build/frida-android-arm64/lib/frida/64/frida-gadget.so.gz' + asset_path: '${{ github.workspace }}/build-android-arm64/subprojects/frida-core/lib/gadget/frida-gadget.gz' asset_name: 'florida-gadget-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-arm64.so.gz' asset_content_type: application/octet-stream @@ -321,7 +322,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}' - asset_path: '${{ github.workspace }}/frida/build/frida-android-x86/lib/frida/32/frida-gadget.so.gz' + asset_path: '${{ github.workspace }}/build-android-x86/subprojects/frida-core/lib/gadget/frida-gadget.gz' asset_name: 'florida-gadget-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-x86.so.gz' asset_content_type: application/octet-stream @@ -331,7 +332,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}' - asset_path: '${{ github.workspace }}/frida/build/frida-android-x86_64/lib/frida/64/frida-gadget.so.gz' + asset_path: '${{ github.workspace }}/build-android-x86_64/subprojects/frida-core/lib/gadget/frida-gadget.so.gz' asset_name: 'florida-gadget-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-x86_64.so.gz' asset_content_type: application/octet-stream diff --git a/patches/frida-core/0001-Florida-string_frida_rpc.patch b/patches/frida-core/0001-Florida-string_frida_rpc.patch index 065e75b..883863e 100644 --- a/patches/frida-core/0001-Florida-string_frida_rpc.patch +++ b/patches/frida-core/0001-Florida-string_frida_rpc.patch @@ -1,4 +1,4 @@ -From db22f5d7065cef473fe4fd7771583ddf9d2771dd Mon Sep 17 00:00:00 2001 +From d7201c32bd8cf347cacd7427a942e0e0188045a1 Mon Sep 17 00:00:00 2001 From: Ylarod Date: Tue, 18 Jul 2023 15:51:29 +0800 Subject: [PATCH 1/9] Florida: string_frida_rpc @@ -54,5 +54,5 @@ index 3695ba8c..664bd19c 100644 var request_id_value = rpc_message.get_element (1); -- -2.39.3 (Apple Git-145) +2.42.0 diff --git a/patches/frida-core/0002-Florida-frida_agent_so.patch b/patches/frida-core/0002-Florida-frida_agent_so.patch index 0b3a7f0..0672f90 100644 --- a/patches/frida-core/0002-Florida-frida_agent_so.patch +++ b/patches/frida-core/0002-Florida-frida_agent_so.patch @@ -1,4 +1,4 @@ -From 87052a5bb1abe2788ac1775d20154187081da390 Mon Sep 17 00:00:00 2001 +From 98034685d895e07aa0cf079eb7f73189f12c6d66 Mon Sep 17 00:00:00 2001 From: Ylarod Date: Tue, 18 Jul 2023 15:57:19 +0800 Subject: [PATCH 2/9] Florida: frida_agent_so @@ -29,5 +29,5 @@ index 50470ac8..64245792 100644 AgentMode.INSTANCED, tempdir); -- -2.39.3 (Apple Git-145) +2.42.0 diff --git a/patches/frida-core/0003-Florida-symbol_frida_agent_main.patch b/patches/frida-core/0003-Florida-symbol_frida_agent_main.patch index b863e03..88621b9 100644 --- a/patches/frida-core/0003-Florida-symbol_frida_agent_main.patch +++ b/patches/frida-core/0003-Florida-symbol_frida_agent_main.patch @@ -1,4 +1,4 @@ -From 32ec17a186c957fb4c5a3198655767a2bd442fc4 Mon Sep 17 00:00:00 2001 +From e108bdb7be0e5756a613fbe1162f07a8623da327 Mon Sep 17 00:00:00 2001 From: Ylarod Date: Tue, 18 Jul 2023 16:02:50 +0800 Subject: [PATCH 3/9] Florida: symbol_frida_agent_main @@ -7,22 +7,21 @@ Subject: [PATCH 3/9] Florida: symbol_frida_agent_main src/agent-container.vala | 2 +- src/anti-anti-frida.py | 27 +++++++++++++++++++++++++++ src/darwin/darwin-host-session.vala | 2 +- - src/embed-agent.sh | 8 ++++++++ src/freebsd/freebsd-host-session.vala | 2 +- src/linux/linux-host-session.vala | 2 +- src/qnx/qnx-host-session.vala | 2 +- src/windows/windows-host-session.vala | 2 +- tests/test-agent.vala | 2 +- tests/test-injector.vala | 2 +- - 10 files changed, 43 insertions(+), 8 deletions(-) + 9 files changed, 35 insertions(+), 8 deletions(-) create mode 100644 src/anti-anti-frida.py diff --git a/src/agent-container.vala b/src/agent-container.vala -index a8db6b29..afe514cb 100644 +index 73e0c017..a3db1112 100644 --- a/src/agent-container.vala +++ b/src/agent-container.vala -@@ -25,7 +25,7 @@ namespace Frida { - assert (container.module != null); +@@ -28,7 +28,7 @@ namespace Frida { + } void * main_func_symbol; - var main_func_found = container.module.symbol ("frida_agent_main", out main_func_symbol); @@ -77,39 +76,6 @@ index ab9b2900..4369922d 100644 #if HAVE_EMBEDDED_ASSETS id = yield fruitjector.inject_library_resource (pid, agent, entrypoint, agent_parameters, cancellable); #else -diff --git a/src/embed-agent.sh b/src/embed-agent.sh -index 6a3bf9ed..e6a69e41 100755 ---- a/src/embed-agent.sh -+++ b/src/embed-agent.sh -@@ -12,6 +12,7 @@ lipo=$9 - agent_dbghelp_prefix=${10} - agent_symsrv_prefix=${11} - -+custom_script="$output_dir/../../../../frida-core/src/anti-anti-frida.py" - priv_dir="$output_dir/frida-agent@emb" - - mkdir -p "$priv_dir" -@@ -41,6 +42,9 @@ collect_unix_agent () - else - touch "$embedded_agent" - fi -+ if [ -f "$custom_script" ]; then -+ python3 "$custom_script" "$embedded_agent" -+ fi - embedded_assets+=("$embedded_agent") - } - -@@ -81,6 +85,10 @@ case $host_os in - exit 1 - fi - -+ if [ -f "$custom_script" ]; then -+ python3 "$custom_script" "$embedded_agent" -+ fi -+ - exec "$resource_compiler" --toolchain=gnu -c "$resource_config" -o "$output_dir/frida-data-agent" "$embedded_agent" - ;; - *) diff --git a/src/freebsd/freebsd-host-session.vala b/src/freebsd/freebsd-host-session.vala index a2204a4e..eac16116 100644 --- a/src/freebsd/freebsd-host-session.vala @@ -163,11 +129,11 @@ index 67f1f3ef..518cd256 100644 injectee_by_pid[pid] = id; diff --git a/tests/test-agent.vala b/tests/test-agent.vala -index 62fb8260..6e5eba51 100644 +index d28e67fd..bbdc29b3 100644 --- a/tests/test-agent.vala +++ b/tests/test-agent.vala -@@ -449,7 +449,7 @@ Interceptor.attach(Module.getExportByName('libsystem_kernel.dylib', 'open'), () - assert_nonnull (module); +@@ -452,7 +452,7 @@ Interceptor.attach(Module.getExportByName('libsystem_kernel.dylib', 'open'), () + } void * main_func_symbol; - var main_func_found = module.symbol ("frida_agent_main", out main_func_symbol); @@ -176,7 +142,7 @@ index 62fb8260..6e5eba51 100644 main_impl = (AgentMainFunc) main_func_symbol; diff --git a/tests/test-injector.vala b/tests/test-injector.vala -index f4a321c4..448bddf3 100644 +index 03c219e6..a7720c3d 100644 --- a/tests/test-injector.vala +++ b/tests/test-injector.vala @@ -258,7 +258,7 @@ namespace Frida.InjectorTest { @@ -189,5 +155,5 @@ index f4a321c4..448bddf3 100644 printerr ("\nFAIL: %s\n\n", e.message); assert_not_reached (); -- -2.39.3 (Apple Git-145) +2.42.0 diff --git a/patches/frida-core/0004-Florida-thread_gum_js_loop.patch b/patches/frida-core/0004-Florida-thread_gum_js_loop.patch index e520760..d75b905 100644 --- a/patches/frida-core/0004-Florida-thread_gum_js_loop.patch +++ b/patches/frida-core/0004-Florida-thread_gum_js_loop.patch @@ -1,4 +1,4 @@ -From 240274823e8b56765b4fb29928e11e19a6807c26 Mon Sep 17 00:00:00 2001 +From 951000ce3fddb965ffdf6e3d5e765e7f457683da Mon Sep 17 00:00:00 2001 From: Ylarod Date: Tue, 18 Jul 2023 16:03:47 +0800 Subject: [PATCH 4/9] Florida: thread_gum_js_loop @@ -25,5 +25,5 @@ index a203189f..7a3f6474 100644 + os.system(f"sed -b -i s/gum-js-loop/{random_name}/g {input_file}") \ No newline at end of file -- -2.39.3 (Apple Git-145) +2.42.0 diff --git a/patches/frida-core/0005-Florida-thread_gmain.patch b/patches/frida-core/0005-Florida-thread_gmain.patch index 532595e..c85e2b2 100644 --- a/patches/frida-core/0005-Florida-thread_gmain.patch +++ b/patches/frida-core/0005-Florida-thread_gmain.patch @@ -1,4 +1,4 @@ -From eac56e85a60b250805d83c47acb2d7eff1d46802 Mon Sep 17 00:00:00 2001 +From 3505dbe62e65bdcbd28058d28390da1ac7c87e86 Mon Sep 17 00:00:00 2001 From: Ylarod Date: Tue, 18 Jul 2023 16:04:15 +0800 Subject: [PATCH 5/9] Florida: thread_gmain @@ -25,5 +25,5 @@ index 7a3f6474..b4b8dca6 100644 + os.system(f"sed -b -i s/gmain/{random_name}/g {input_file}") \ No newline at end of file -- -2.39.3 (Apple Git-145) +2.42.0 diff --git a/patches/frida-core/0006-Florida-protocol_unexpected_command.patch b/patches/frida-core/0006-Florida-protocol_unexpected_command.patch index a560136..4f7a70b 100644 --- a/patches/frida-core/0006-Florida-protocol_unexpected_command.patch +++ b/patches/frida-core/0006-Florida-protocol_unexpected_command.patch @@ -1,4 +1,4 @@ -From 6d24d91ee0bbba3cbd288e1c37c1c6b5f87f1af8 Mon Sep 17 00:00:00 2001 +From e8d464a18de6e97d3e84c4c3cb5c73b807586798 Mon Sep 17 00:00:00 2001 From: Ylarod Date: Tue, 18 Jul 2023 16:04:55 +0800 Subject: [PATCH 6/9] Florida: protocol_unexpected_command @@ -8,10 +8,10 @@ Subject: [PATCH 6/9] Florida: protocol_unexpected_command 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/droidy/droidy-client.vala b/src/droidy/droidy-client.vala -index 0ed2edeb..9de04b54 100644 +index ddc56ccc..c3464e77 100644 --- a/src/droidy/droidy-client.vala +++ b/src/droidy/droidy-client.vala -@@ -1013,7 +1013,7 @@ namespace Frida.Droidy { +@@ -1015,7 +1015,7 @@ namespace Frida.Droidy { case "OPEN": case "CLSE": case "WRTE": @@ -21,5 +21,5 @@ index 0ed2edeb..9de04b54 100644 default: var length = parse_length (command_or_length); -- -2.39.3 (Apple Git-145) +2.42.0 diff --git a/patches/frida-core/0007-Florida-update-python-script.patch b/patches/frida-core/0007-Florida-update-python-script.patch index 7a4be20..3bc8a8c 100644 --- a/patches/frida-core/0007-Florida-update-python-script.patch +++ b/patches/frida-core/0007-Florida-update-python-script.patch @@ -1,4 +1,4 @@ -From cface25f4bfff96704bd35678593286536b0ffff Mon Sep 17 00:00:00 2001 +From 19026255ad926b166e7ffb8759e896fd6b5bff94 Mon Sep 17 00:00:00 2001 From: Ylarod Date: Tue, 18 Jul 2023 19:55:59 +0800 Subject: [PATCH 7/9] Florida: update python script @@ -92,5 +92,5 @@ index b4b8dca6..d1ce5f62 100644 + log_color(f"[*] Patch Finish") \ No newline at end of file -- -2.39.3 (Apple Git-145) +2.42.0 diff --git a/patches/frida-core/0008-Florida-pool-frida.patch b/patches/frida-core/0008-Florida-pool-frida.patch index d956cf7..4d30435 100644 --- a/patches/frida-core/0008-Florida-pool-frida.patch +++ b/patches/frida-core/0008-Florida-pool-frida.patch @@ -1,4 +1,4 @@ -From c209740d0a3afb95444f49dc542088a81b55d042 Mon Sep 17 00:00:00 2001 +From 0f3391327c044f6c2ab0ee3322185904b0afa2c5 Mon Sep 17 00:00:00 2001 From: Ylarod Date: Thu, 20 Jul 2023 10:01:20 +0800 Subject: [PATCH 8/9] Florida: pool-frida @@ -21,5 +21,5 @@ index ee8f0737..43cc8167 100644 { main_context = g_main_context_ref (g_main_context_default ()); -- -2.39.3 (Apple Git-145) +2.42.0 diff --git a/patches/frida-core/0009-Florida-memfd-name-jit-cache.patch b/patches/frida-core/0009-Florida-memfd-name-jit-cache.patch index be34e67..c52c616 100644 --- a/patches/frida-core/0009-Florida-memfd-name-jit-cache.patch +++ b/patches/frida-core/0009-Florida-memfd-name-jit-cache.patch @@ -1,4 +1,4 @@ -From d5417438834ed1c2c7a7992d6bbfd38b8ce6b7fc Mon Sep 17 00:00:00 2001 +From 5b1279a54e7fc5b9867332d16d5b30ea16bf6b7a Mon Sep 17 00:00:00 2001 From: Ylarod Date: Fri, 1 Sep 2023 12:51:06 +0800 Subject: [PATCH 9/9] Florida: memfd-name-jit-cache @@ -8,10 +8,10 @@ Subject: [PATCH 9/9] Florida: memfd-name-jit-cache 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/linux/frida-helper-backend.vala b/src/linux/frida-helper-backend.vala -index 9e6308b6..b6934e70 100644 +index 9da2152c..b133bd37 100644 --- a/src/linux/frida-helper-backend.vala +++ b/src/linux/frida-helper-backend.vala -@@ -3202,7 +3202,7 @@ namespace Frida { +@@ -3233,7 +3233,7 @@ namespace Frida { } private int memfd_create (string name, uint flags) { @@ -21,5 +21,5 @@ index 9e6308b6..b6934e70 100644 } -- -2.39.3 (Apple Git-145) +2.42.0