frida 0.1.0 → 0.1.1

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 (55) 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 +26 -25
  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/frida.gemspec +39 -0
  53. data/lib/frida/version.rb +5 -0
  54. data/lib/frida.rb +8 -0
  55. metadata +55 -3
@@ -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);
data/frida.gemspec ADDED
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/frida/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "frida"
7
+ spec.version = Frida::VERSION
8
+ spec.authors = ["hakivvi"]
9
+ spec.email = ["hakivvi@gmail.com"]
10
+
11
+ spec.summary = "Frida Ruby bindings."
12
+ spec.description = "Frida Ruby bindings."
13
+ spec.homepage = "https://github.com/hakivvi/frida-ruby"
14
+ spec.license = "MIT"
15
+ spec.required_ruby_version = ">= 2.7.0"
16
+
17
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
18
+
19
+ spec.metadata["homepage_uri"] = spec.homepage
20
+ spec.metadata["source_code_uri"] = spec.homepage
21
+ spec.metadata["changelog_uri"] = spec.homepage
22
+ spec.post_install_message = "frida has been successfully compiled and installed, frida-core is no longer required and can be safely removed."
23
+ # Specify which files should be added to the gem when it is released.
24
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
25
+ spec.files = Dir.chdir(__dir__) do
26
+ `git ls-files -z`.split("\x0").reject do |f|
27
+ (f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
28
+ end
29
+ end
30
+ # spec.bindir = "exe"
31
+ # spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
32
+ spec.require_paths = ["lib"]
33
+ spec.extensions = ["ext/c_frida/extconf.rb"]
34
+ # Uncomment to register a new dependency of your gem
35
+ spec.add_dependency "rake-compiler", '~> 1.2.7'
36
+
37
+ # For more information and examples about making a new gem, check out our
38
+ # guide at: https://bundler.io/guides/creating_gem.html
39
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Frida
4
+ VERSION = "0.1.1"
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,14 @@
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.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - hakivvi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-08 00:00:00.000000000 Z
11
+ date: 2024-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake-compiler
@@ -32,7 +32,59 @@ extensions:
32
32
  - ext/c_frida/extconf.rb
33
33
  extra_rdoc_files: []
34
34
  files:
35
+ - CODE_OF_CONDUCT.md
36
+ - Gemfile
37
+ - Gemfile.lock
38
+ - LICENSE.txt
39
+ - README.md
40
+ - Rakefile
41
+ - exe/frida
42
+ - ext/c_frida/Application.c
43
+ - ext/c_frida/Bus.c
44
+ - ext/c_frida/Child.c
45
+ - ext/c_frida/Compiler.c
46
+ - ext/c_frida/Crash.c
47
+ - ext/c_frida/Device.c
48
+ - ext/c_frida/DeviceManager.c
49
+ - ext/c_frida/EndpointParameters.c
50
+ - ext/c_frida/FileMonitor.c
51
+ - ext/c_frida/GObject.c
52
+ - ext/c_frida/IOStream.c
53
+ - ext/c_frida/PortalMembership.c
54
+ - ext/c_frida/PortalService.c
55
+ - ext/c_frida/Process.c
56
+ - ext/c_frida/Relay.c
57
+ - ext/c_frida/Script.c
58
+ - ext/c_frida/Session.c
59
+ - ext/c_frida/Spawn.c
60
+ - ext/c_frida/c_frida.c
35
61
  - ext/c_frida/extconf.rb
62
+ - ext/c_frida/gutils.c
63
+ - ext/c_frida/gvl_bridge.c
64
+ - ext/c_frida/inc/Application.h
65
+ - ext/c_frida/inc/Bus.h
66
+ - ext/c_frida/inc/Child.h
67
+ - ext/c_frida/inc/Compiler.h
68
+ - ext/c_frida/inc/Crash.h
69
+ - ext/c_frida/inc/Device.h
70
+ - ext/c_frida/inc/DeviceManager.h
71
+ - ext/c_frida/inc/EndpointParameters.h
72
+ - ext/c_frida/inc/FileMonitor.h
73
+ - ext/c_frida/inc/GObject.h
74
+ - ext/c_frida/inc/IOStream.h
75
+ - ext/c_frida/inc/PortalMembership.h
76
+ - ext/c_frida/inc/PortalService.h
77
+ - ext/c_frida/inc/Process.h
78
+ - ext/c_frida/inc/Relay.h
79
+ - ext/c_frida/inc/Script.h
80
+ - ext/c_frida/inc/Session.h
81
+ - ext/c_frida/inc/Spawn.h
82
+ - ext/c_frida/inc/c_frida.h
83
+ - ext/c_frida/inc/gutils.h
84
+ - ext/c_frida/inc/gvl_bridge.h
85
+ - frida.gemspec
86
+ - lib/frida.rb
87
+ - lib/frida/version.rb
36
88
  homepage: https://github.com/hakivvi/frida-ruby
37
89
  licenses:
38
90
  - MIT
@@ -57,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
57
109
  - !ruby/object:Gem::Version
58
110
  version: '0'
59
111
  requirements: []
60
- rubygems_version: 3.3.7
112
+ rubygems_version: 3.5.16
61
113
  signing_key:
62
114
  specification_version: 4
63
115
  summary: Frida Ruby bindings.