Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5e01b2e649 | ||
|
|
a7c2dc6e25 | ||
|
|
153bbb75b6 | ||
|
|
fbfa3e3781 |
50
.github/workflows/build.yml
vendored
50
.github/workflows/build.yml
vendored
@@ -90,14 +90,14 @@ jobs:
|
|||||||
if: needs.check_version.outputs.ALREADY_RELEASE != '1'
|
if: needs.check_version.outputs.ALREADY_RELEASE != '1'
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/create-release@master
|
- uses: softprops/action-gh-release@v2.1.0
|
||||||
id: createRelease
|
id: createRelease
|
||||||
name: Create Runner Release
|
name: Create Runner Release
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
with:
|
with:
|
||||||
tag_name: "${{ needs.check_version.outputs.FRIDA_VERSION }}"
|
tag_name: "${{ needs.check_version.outputs.FRIDA_VERSION }}"
|
||||||
release_name: "${{ needs.check_version.outputs.FRIDA_VERSION }}"
|
name: "${{ needs.check_version.outputs.FRIDA_VERSION }}"
|
||||||
prerelease: false
|
prerelease: false
|
||||||
|
|
||||||
android_build:
|
android_build:
|
||||||
@@ -121,7 +121,7 @@ jobs:
|
|||||||
id: setup-ndk
|
id: setup-ndk
|
||||||
uses: nttld/setup-ndk@v1
|
uses: nttld/setup-ndk@v1
|
||||||
with:
|
with:
|
||||||
ndk-version: r25b
|
ndk-version: r25c
|
||||||
local-cache: false
|
local-cache: false
|
||||||
link-to-sdk: true
|
link-to-sdk: true
|
||||||
|
|
||||||
@@ -219,6 +219,11 @@ jobs:
|
|||||||
gzip build-android-arm64/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/subprojects/frida-core/lib/gadget/frida-gadget.so
|
||||||
gzip build-android-x86_64/subprojects/frida-core/lib/gadget/frida-gadget.so
|
gzip build-android-x86_64/subprojects/frida-core/lib/gadget/frida-gadget.so
|
||||||
|
|
||||||
|
gzip build-android-arm/subprojects/frida-gum/bindings/gumjs/libfrida-gumjs-1.0.a
|
||||||
|
gzip build-android-arm64/subprojects/frida-gum/bindings/gumjs/libfrida-gumjs-1.0.a
|
||||||
|
gzip build-android-x86/subprojects/frida-gum/bindings/gumjs/libfrida-gumjs-1.0.a
|
||||||
|
gzip build-android-x86_64/subprojects/frida-gum/bindings/gumjs/libfrida-gumjs-1.0.a
|
||||||
|
|
||||||
|
|
||||||
- name: Upload android arm frida-server for Florida
|
- name: Upload android arm frida-server for Florida
|
||||||
@@ -341,3 +346,42 @@ jobs:
|
|||||||
asset_name: 'florida-gadget-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-x86_64.so.gz'
|
asset_name: 'florida-gadget-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-x86_64.so.gz'
|
||||||
asset_content_type: application/octet-stream
|
asset_content_type: application/octet-stream
|
||||||
|
|
||||||
|
- name: Upload android arm frida-gumjs for Florida
|
||||||
|
uses: actions/upload-release-asset@v1.0.2
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}'
|
||||||
|
asset_path: '${{ github.workspace }}/build-android-arm/subprojects/frida-gum/bindings/gumjs/libfrida-gumjs-1.0.a.gz'
|
||||||
|
asset_name: 'florida-gumjs-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-arm.a.gz'
|
||||||
|
asset_content_type: application/octet-stream
|
||||||
|
|
||||||
|
- name: Upload android arm64 frida-gumjs for Florida
|
||||||
|
uses: actions/upload-release-asset@v1.0.2
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}'
|
||||||
|
asset_path: '${{ github.workspace }}/build-android-arm64/subprojects/frida-gum/bindings/gumjs/libfrida-gumjs-1.0.a.gz'
|
||||||
|
asset_name: 'florida-gumjs-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-arm64.a.gz'
|
||||||
|
asset_content_type: application/octet-stream
|
||||||
|
|
||||||
|
- name: Upload android x86 frida-gumjs for Florida
|
||||||
|
uses: actions/upload-release-asset@v1.0.2
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}'
|
||||||
|
asset_path: '${{ github.workspace }}/build-android-x86/subprojects/frida-gum/bindings/gumjs/libfrida-gumjs-1.0.a.gz'
|
||||||
|
asset_name: 'florida-gumjs-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-x86.a.gz'
|
||||||
|
asset_content_type: application/octet-stream
|
||||||
|
|
||||||
|
- name: Upload android x86_64 frida-gumjs for Florida
|
||||||
|
uses: actions/upload-release-asset@v1.0.2
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
upload_url: '${{ steps.checkReleaseVersion.outputs.upload_url }}'
|
||||||
|
asset_path: '${{ github.workspace }}/build-android-x86_64/subprojects/frida-gum/bindings/gumjs/libfrida-gumjs-1.0.a.gz'
|
||||||
|
asset_name: 'florida-gumjs-${{ needs.check_version.outputs.FRIDA_VERSION }}-android-x86_64.a.gz'
|
||||||
|
asset_content_type: application/octet-stream
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
From d7201c32bd8cf347cacd7427a942e0e0188045a1 Mon Sep 17 00:00:00 2001
|
From 9ff24d5b1b81bf5a2fc8ff517bc0caba0e3288e9 Mon Sep 17 00:00:00 2001
|
||||||
From: Ylarod <me@ylarod.cn>
|
From: Ylarod <me@ylarod.cn>
|
||||||
Date: Tue, 18 Jul 2023 15:51:29 +0800
|
Date: Tue, 18 Jul 2023 15:51:29 +0800
|
||||||
Subject: [PATCH 1/9] Florida: string_frida_rpc
|
Subject: [PATCH 1/9] Florida: string_frida_rpc
|
||||||
@@ -8,7 +8,7 @@ Subject: [PATCH 1/9] Florida: string_frida_rpc
|
|||||||
1 file changed, 12 insertions(+), 3 deletions(-)
|
1 file changed, 12 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/lib/base/rpc.vala b/lib/base/rpc.vala
|
diff --git a/lib/base/rpc.vala b/lib/base/rpc.vala
|
||||||
index 3695ba8c..664bd19c 100644
|
index 8990b70e..d5acfebd 100644
|
||||||
--- a/lib/base/rpc.vala
|
--- a/lib/base/rpc.vala
|
||||||
+++ b/lib/base/rpc.vala
|
+++ b/lib/base/rpc.vala
|
||||||
@@ -11,13 +11,22 @@ namespace Frida {
|
@@ -11,13 +11,22 @@ namespace Frida {
|
||||||
@@ -24,7 +24,7 @@ index 3695ba8c..664bd19c 100644
|
|||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
public async Json.Node call (string method, Json.Node[] args, Cancellable? cancellable) throws Error, IOError {
|
public async Json.Node call (string method, Json.Node[] args, Bytes? data, Cancellable? cancellable) throws Error, IOError {
|
||||||
string request_id = Uuid.string_random ();
|
string request_id = Uuid.string_random ();
|
||||||
|
|
||||||
var request = new Json.Builder ();
|
var request = new Json.Builder ();
|
||||||
@@ -54,5 +54,5 @@ index 3695ba8c..664bd19c 100644
|
|||||||
|
|
||||||
var request_id_value = rpc_message.get_element (1);
|
var request_id_value = rpc_message.get_element (1);
|
||||||
--
|
--
|
||||||
2.42.0
|
2.47.1
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ index 73e0c017..a3db1112 100644
|
|||||||
|
|
||||||
void * main_func_symbol;
|
void * main_func_symbol;
|
||||||
- var main_func_found = container.module.symbol ("frida_agent_main", out main_func_symbol);
|
- var main_func_found = container.module.symbol ("frida_agent_main", out main_func_symbol);
|
||||||
+ var main_func_found = container.module.symbol ("frida_agent_main", out main_func_symbol);
|
+ var main_func_found = container.module.symbol ("main", out main_func_symbol);
|
||||||
assert (main_func_found);
|
assert (main_func_found);
|
||||||
container.main_impl = (AgentMainFunc) main_func_symbol;
|
container.main_impl = (AgentMainFunc) main_func_symbol;
|
||||||
|
|
||||||
@@ -72,7 +72,7 @@ index ab9b2900..4369922d 100644
|
|||||||
uint id;
|
uint id;
|
||||||
|
|
||||||
- unowned string entrypoint = "frida_agent_main";
|
- unowned string entrypoint = "frida_agent_main";
|
||||||
+ unowned string entrypoint = "frida_agent_main";
|
+ unowned string entrypoint = "main";
|
||||||
#if HAVE_EMBEDDED_ASSETS
|
#if HAVE_EMBEDDED_ASSETS
|
||||||
id = yield fruitjector.inject_library_resource (pid, agent, entrypoint, agent_parameters, cancellable);
|
id = yield fruitjector.inject_library_resource (pid, agent, entrypoint, agent_parameters, cancellable);
|
||||||
#else
|
#else
|
||||||
@@ -85,7 +85,7 @@ index a2204a4e..eac16116 100644
|
|||||||
var stream_request = Pipe.open (t.local_address, cancellable);
|
var stream_request = Pipe.open (t.local_address, cancellable);
|
||||||
|
|
||||||
- var id = yield binjector.inject_library_resource (pid, agent_desc, "frida_agent_main",
|
- var id = yield binjector.inject_library_resource (pid, agent_desc, "frida_agent_main",
|
||||||
+ var id = yield binjector.inject_library_resource (pid, agent_desc, "frida_agent_main",
|
+ var id = yield binjector.inject_library_resource (pid, agent_desc, "main",
|
||||||
make_agent_parameters (pid, t.remote_address, options), cancellable);
|
make_agent_parameters (pid, t.remote_address, options), cancellable);
|
||||||
injectee_by_pid[pid] = id;
|
injectee_by_pid[pid] = id;
|
||||||
|
|
||||||
@@ -98,7 +98,7 @@ index 64245792..086d0b96 100644
|
|||||||
Cancellable? cancellable, out Object? transport) throws Error, IOError {
|
Cancellable? cancellable, out Object? transport) throws Error, IOError {
|
||||||
uint id;
|
uint id;
|
||||||
- string entrypoint = "frida_agent_main";
|
- string entrypoint = "frida_agent_main";
|
||||||
+ string entrypoint = "frida_agent_main";
|
+ string entrypoint = "main";
|
||||||
string parameters = make_agent_parameters (pid, "", options);
|
string parameters = make_agent_parameters (pid, "", options);
|
||||||
AgentFeatures features = CONTROL_CHANNEL;
|
AgentFeatures features = CONTROL_CHANNEL;
|
||||||
var linjector = (Linjector) injector;
|
var linjector = (Linjector) injector;
|
||||||
@@ -111,7 +111,7 @@ index 69f2995f..a4e59ab2 100644
|
|||||||
var stream_request = Pipe.open (t.local_address, cancellable);
|
var stream_request = Pipe.open (t.local_address, cancellable);
|
||||||
|
|
||||||
- var id = yield qinjector.inject_library_resource (pid, agent_desc, "frida_agent_main",
|
- var id = yield qinjector.inject_library_resource (pid, agent_desc, "frida_agent_main",
|
||||||
+ var id = yield qinjector.inject_library_resource (pid, agent_desc, "frida_agent_main",
|
+ var id = yield qinjector.inject_library_resource (pid, agent_desc, "main",
|
||||||
make_agent_parameters (pid, t.remote_address, options), cancellable);
|
make_agent_parameters (pid, t.remote_address, options), cancellable);
|
||||||
injectee_by_pid[pid] = id;
|
injectee_by_pid[pid] = id;
|
||||||
|
|
||||||
@@ -124,7 +124,7 @@ index 67f1f3ef..518cd256 100644
|
|||||||
|
|
||||||
var winjector = injector as Winjector;
|
var winjector = injector as Winjector;
|
||||||
- var id = yield winjector.inject_library_resource (pid, agent, "frida_agent_main",
|
- var id = yield winjector.inject_library_resource (pid, agent, "frida_agent_main",
|
||||||
+ var id = yield winjector.inject_library_resource (pid, agent, "frida_agent_main",
|
+ var id = yield winjector.inject_library_resource (pid, agent, "main",
|
||||||
make_agent_parameters (pid, t.remote_address, options), cancellable);
|
make_agent_parameters (pid, t.remote_address, options), cancellable);
|
||||||
injectee_by_pid[pid] = id;
|
injectee_by_pid[pid] = id;
|
||||||
|
|
||||||
@@ -137,7 +137,7 @@ index d28e67fd..bbdc29b3 100644
|
|||||||
|
|
||||||
void * main_func_symbol;
|
void * main_func_symbol;
|
||||||
- var main_func_found = module.symbol ("frida_agent_main", out main_func_symbol);
|
- var main_func_found = module.symbol ("frida_agent_main", out main_func_symbol);
|
||||||
+ var main_func_found = module.symbol ("frida_agent_main", out main_func_symbol);
|
+ var main_func_found = module.symbol ("main", out main_func_symbol);
|
||||||
assert_true (main_func_found);
|
assert_true (main_func_found);
|
||||||
main_impl = (AgentMainFunc) main_func_symbol;
|
main_impl = (AgentMainFunc) main_func_symbol;
|
||||||
|
|
||||||
@@ -150,7 +150,7 @@ index 03c219e6..a7720c3d 100644
|
|||||||
assert_true (FileUtils.test (path, FileTest.EXISTS));
|
assert_true (FileUtils.test (path, FileTest.EXISTS));
|
||||||
|
|
||||||
- yield injector.inject_library_file (process.id, path, "frida_agent_main", data);
|
- yield injector.inject_library_file (process.id, path, "frida_agent_main", data);
|
||||||
+ yield injector.inject_library_file (process.id, path, "frida_agent_main", data);
|
+ yield injector.inject_library_file (process.id, path, "main", data);
|
||||||
} catch (GLib.Error e) {
|
} catch (GLib.Error e) {
|
||||||
printerr ("\nFAIL: %s\n\n", e.message);
|
printerr ("\nFAIL: %s\n\n", e.message);
|
||||||
assert_not_reached ();
|
assert_not_reached ();
|
||||||
|
|||||||
@@ -4,14 +4,14 @@ Date: Fri, 1 Sep 2023 12:51:06 +0800
|
|||||||
Subject: [PATCH 9/9] Florida: memfd-name-jit-cache
|
Subject: [PATCH 9/9] Florida: memfd-name-jit-cache
|
||||||
|
|
||||||
---
|
---
|
||||||
src/linux/frida-helper-backend.vala | 2 +-
|
lib/base/linux.vala | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/src/linux/frida-helper-backend.vala b/src/linux/frida-helper-backend.vala
|
diff --git a/lib/base/linux.vala b/lib/base/linux.vala
|
||||||
index 9da2152c..b133bd37 100644
|
index 9da2152c..b133bd37 100644
|
||||||
--- a/src/linux/frida-helper-backend.vala
|
--- a/lib/base/linux.vala
|
||||||
+++ b/src/linux/frida-helper-backend.vala
|
+++ b/lib/base/linux.vala
|
||||||
@@ -3233,7 +3233,7 @@ namespace Frida {
|
@@ -101,7 +101,7 @@ namespace Frida {
|
||||||
}
|
}
|
||||||
|
|
||||||
private int memfd_create (string name, uint flags) {
|
private int memfd_create (string name, uint flags) {
|
||||||
@@ -19,7 +19,7 @@ index 9da2152c..b133bd37 100644
|
|||||||
+ return Linux.syscall (SysCall.memfd_create, "jit-cache", flags);
|
+ return Linux.syscall (SysCall.memfd_create, "jit-cache", flags);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
--
|
--
|
||||||
2.42.0
|
2.42.0
|
||||||
|
|
||||||
|
|||||||
31
patches/frida-core/0010-exec-anti-anti-frida.py.patch
Normal file
31
patches/frida-core/0010-exec-anti-anti-frida.py.patch
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
From 09c74884dda5e9a5d452a7d5b78eb1c3e8a717c9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Thiasap <you@example.com>
|
||||||
|
Date: Mon, 9 Dec 2024 16:28:59 +0800
|
||||||
|
Subject: [PATCH] exec anti-anti-frida.py
|
||||||
|
|
||||||
|
---
|
||||||
|
src/embed-agent.py | 8 ++++++++
|
||||||
|
1 file changed, 8 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/embed-agent.py b/src/embed-agent.py
|
||||||
|
index 1cdd46da..4459b9c1 100644
|
||||||
|
--- a/src/embed-agent.py
|
||||||
|
+++ b/src/embed-agent.py
|
||||||
|
@@ -78,6 +78,14 @@ def main(argv):
|
||||||
|
shutil.copy(agent, embedded_agent)
|
||||||
|
else:
|
||||||
|
embedded_agent.write_bytes(b"")
|
||||||
|
+ import os
|
||||||
|
+ custom_script=str(output_dir)+"/../../../../frida/subprojects/frida-core/src/anti-anti-frida.py"
|
||||||
|
+ return_code = os.system("python3 "+custom_script+" "+str(priv_dir / f"frida-agent-{flavor}.so"))
|
||||||
|
+ if return_code == 0:
|
||||||
|
+ print("anti-anti-frida finished")
|
||||||
|
+ else:
|
||||||
|
+ print("anti-anti-frida error. Code:", return_code)
|
||||||
|
+
|
||||||
|
embedded_assets += [embedded_agent]
|
||||||
|
elif host_os in {"freebsd", "qnx"}:
|
||||||
|
embedded_agent = priv_dir / "frida-agent.so"
|
||||||
|
--
|
||||||
|
2.34.1
|
||||||
|
|
||||||
Reference in New Issue
Block a user