frida 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/CODE_OF_CONDUCT.md +84 -0
  3. data/Gemfile +12 -0
  4. data/Gemfile.lock +25 -0
  5. data/LICENSE.txt +21 -0
  6. data/README.md +64 -0
  7. data/Rakefile +20 -0
  8. data/exe/frida +3 -0
  9. data/ext/c_frida/Application.c +79 -0
  10. data/ext/c_frida/Bus.c +91 -0
  11. data/ext/c_frida/Child.c +134 -0
  12. data/ext/c_frida/Compiler.c +208 -0
  13. data/ext/c_frida/Crash.c +92 -0
  14. data/ext/c_frida/Device.c +955 -0
  15. data/ext/c_frida/DeviceManager.c +260 -0
  16. data/ext/c_frida/EndpointParameters.c +189 -0
  17. data/ext/c_frida/FileMonitor.c +67 -0
  18. data/ext/c_frida/GObject.c +138 -0
  19. data/ext/c_frida/IOStream.c +228 -0
  20. data/ext/c_frida/PortalMembership.c +43 -0
  21. data/ext/c_frida/PortalService.c +413 -0
  22. data/ext/c_frida/Process.c +67 -0
  23. data/ext/c_frida/Relay.c +121 -0
  24. data/ext/c_frida/Script.c +221 -0
  25. data/ext/c_frida/Session.c +626 -0
  26. data/ext/c_frida/Spawn.c +53 -0
  27. data/ext/c_frida/c_frida.c +68 -0
  28. data/ext/c_frida/extconf.rb +13 -12
  29. data/ext/c_frida/gutils.c +498 -0
  30. data/ext/c_frida/gvl_bridge.c +131 -0
  31. data/ext/c_frida/inc/Application.h +9 -0
  32. data/ext/c_frida/inc/Bus.h +15 -0
  33. data/ext/c_frida/inc/Child.h +9 -0
  34. data/ext/c_frida/inc/Compiler.h +21 -0
  35. data/ext/c_frida/inc/Crash.h +9 -0
  36. data/ext/c_frida/inc/Device.h +71 -0
  37. data/ext/c_frida/inc/DeviceManager.h +20 -0
  38. data/ext/c_frida/inc/EndpointParameters.h +15 -0
  39. data/ext/c_frida/inc/FileMonitor.h +9 -0
  40. data/ext/c_frida/inc/GObject.h +10 -0
  41. data/ext/c_frida/inc/IOStream.h +29 -0
  42. data/ext/c_frida/inc/PortalMembership.h +9 -0
  43. data/ext/c_frida/inc/PortalService.h +47 -0
  44. data/ext/c_frida/inc/Process.h +9 -0
  45. data/ext/c_frida/inc/Relay.h +9 -0
  46. data/ext/c_frida/inc/Script.h +21 -0
  47. data/ext/c_frida/inc/Session.h +40 -0
  48. data/ext/c_frida/inc/Spawn.h +9 -0
  49. data/ext/c_frida/inc/c_frida.h +129 -0
  50. data/ext/c_frida/inc/gutils.h +21 -0
  51. data/ext/c_frida/inc/gvl_bridge.h +42 -0
  52. data/lib/frida/version.rb +5 -0
  53. data/lib/frida.rb +8 -0
  54. metadata +54 -5
@@ -0,0 +1,42 @@
1
+ #pragma once
2
+
3
+ #include "c_frida.h"
4
+
5
+ extern VALUE _gvl_bridge_thread;
6
+
7
+ typedef struct {
8
+ GClosure gclosure;
9
+ bool is_lambda;
10
+ uint signal_id;
11
+ int arity;
12
+ } RBClosure;
13
+
14
+ typedef struct {
15
+ GClosure *closure;
16
+ guint n_param_values;
17
+ GValue *param_values;
18
+ } gclosure_callback;
19
+
20
+ typedef struct {
21
+ GTask *task;
22
+ FridaRBAuthenticationService *self;
23
+ } gtask_callback;
24
+
25
+ typedef enum {
26
+ GCLOSURE,
27
+ GTASK
28
+ } callback_type;
29
+
30
+ typedef struct {
31
+ callback_type type;
32
+ union {
33
+ gclosure_callback GC;
34
+ gtask_callback GT;
35
+ };
36
+ } gvl_bridge_data;
37
+
38
+ #define RET_IF_MAIN_THREAD_EXITED if (main_thread_exited) return (NULL);
39
+
40
+ void gvl_bridge(void);
41
+ void gvl_bridge_forward_GC(GClosure *closure, GValue *_, guint n_param_values, GValue *param_values, gpointer __, gpointer ___);
42
+ void gvl_bridge_forward_GT(GTask *task, FridaRBAuthenticationService *self);
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Frida
4
+ VERSION = "0.1.2"
5
+ end
data/lib/frida.rb ADDED
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "frida/version"
4
+ require_relative "c_frida"
5
+
6
+ module Frida
7
+ include CFrida
8
+ end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: frida
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - hakivvi
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-04-08 00:00:00.000000000 Z
10
+ date: 2025-07-06 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: rake-compiler
@@ -32,7 +31,58 @@ extensions:
32
31
  - ext/c_frida/extconf.rb
33
32
  extra_rdoc_files: []
34
33
  files:
34
+ - CODE_OF_CONDUCT.md
35
+ - Gemfile
36
+ - Gemfile.lock
37
+ - LICENSE.txt
38
+ - README.md
39
+ - Rakefile
40
+ - exe/frida
41
+ - ext/c_frida/Application.c
42
+ - ext/c_frida/Bus.c
43
+ - ext/c_frida/Child.c
44
+ - ext/c_frida/Compiler.c
45
+ - ext/c_frida/Crash.c
46
+ - ext/c_frida/Device.c
47
+ - ext/c_frida/DeviceManager.c
48
+ - ext/c_frida/EndpointParameters.c
49
+ - ext/c_frida/FileMonitor.c
50
+ - ext/c_frida/GObject.c
51
+ - ext/c_frida/IOStream.c
52
+ - ext/c_frida/PortalMembership.c
53
+ - ext/c_frida/PortalService.c
54
+ - ext/c_frida/Process.c
55
+ - ext/c_frida/Relay.c
56
+ - ext/c_frida/Script.c
57
+ - ext/c_frida/Session.c
58
+ - ext/c_frida/Spawn.c
59
+ - ext/c_frida/c_frida.c
35
60
  - ext/c_frida/extconf.rb
61
+ - ext/c_frida/gutils.c
62
+ - ext/c_frida/gvl_bridge.c
63
+ - ext/c_frida/inc/Application.h
64
+ - ext/c_frida/inc/Bus.h
65
+ - ext/c_frida/inc/Child.h
66
+ - ext/c_frida/inc/Compiler.h
67
+ - ext/c_frida/inc/Crash.h
68
+ - ext/c_frida/inc/Device.h
69
+ - ext/c_frida/inc/DeviceManager.h
70
+ - ext/c_frida/inc/EndpointParameters.h
71
+ - ext/c_frida/inc/FileMonitor.h
72
+ - ext/c_frida/inc/GObject.h
73
+ - ext/c_frida/inc/IOStream.h
74
+ - ext/c_frida/inc/PortalMembership.h
75
+ - ext/c_frida/inc/PortalService.h
76
+ - ext/c_frida/inc/Process.h
77
+ - ext/c_frida/inc/Relay.h
78
+ - ext/c_frida/inc/Script.h
79
+ - ext/c_frida/inc/Session.h
80
+ - ext/c_frida/inc/Spawn.h
81
+ - ext/c_frida/inc/c_frida.h
82
+ - ext/c_frida/inc/gutils.h
83
+ - ext/c_frida/inc/gvl_bridge.h
84
+ - lib/frida.rb
85
+ - lib/frida/version.rb
36
86
  homepage: https://github.com/hakivvi/frida-ruby
37
87
  licenses:
38
88
  - MIT
@@ -57,8 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
57
107
  - !ruby/object:Gem::Version
58
108
  version: '0'
59
109
  requirements: []
60
- rubygems_version: 3.3.7
61
- signing_key:
110
+ rubygems_version: 3.6.2
62
111
  specification_version: 4
63
112
  summary: Frida Ruby bindings.
64
113
  test_files: []