one_gadget 1.7.4 → 1.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -1
- data/lib/one_gadget/abi.rb +2 -2
- data/lib/one_gadget/builds/libc-2.19-df559a150829d9f3cdd0b5ce1e5b4d512d20f55f.rb +1 -1
- data/lib/one_gadget/builds/libc-2.20-398115bd423958b1769317a6f7e4928df141eb57.rb +1 -1
- data/lib/one_gadget/builds/libc-2.20-f3063b7115d5a383189937852ce356f4c60fd190.rb +1 -1
- data/lib/one_gadget/builds/libc-2.21-9ac81172d5ff96f40d984fe7c10073a98f1a6b2e.rb +1 -1
- data/lib/one_gadget/builds/libc-2.21-f0c24219cbba0605e39e02123398437c5dbbb104.rb +1 -1
- data/lib/one_gadget/builds/libc-2.22-b916e3c1d80069d0209f6376b33e42b75ec49eda.rb +1 -1
- data/lib/one_gadget/builds/libc-2.23-18f761287ed46e213bec29c2e440e73fd72373be.rb +46 -0
- data/lib/one_gadget/builds/libc-2.23-30773be8cf5bfed9d910c8473dd44eaab2e705ab.rb +46 -0
- data/lib/one_gadget/builds/libc-2.23-635101aec7213fdc442419bf65a92047a862ff32.rb +46 -0
- data/lib/one_gadget/builds/libc-2.23-f2f2f2af4f3e8597cca1fdff1008a834c78de42b.rb +43 -0
- data/lib/one_gadget/builds/libc-2.24-349119af9e223829ea24f6b7226bdff0182e73f2.rb +49 -0
- data/lib/one_gadget/builds/libc-2.24-3fce81d490804af9759c70bf197380bc05a584c2.rb +46 -0
- data/lib/one_gadget/builds/libc-2.24-a51ace667ccae6a8887837efb18259a906704bed.rb +46 -0
- data/lib/one_gadget/builds/libc-2.24-deefae132c5a39ba892bc189edd91f73c1ea1f14.rb +37 -0
- data/lib/one_gadget/builds/libc-2.25-58c735bc7b19b0aeb395cce70cf63bd62ac75e4a.rb +9 -0
- data/lib/one_gadget/builds/libc-2.26-1c39b3b3faa2a2cbb0fa0b6845b29332562262d3.rb +9 -0
- data/lib/one_gadget/builds/libc-2.26-6d2b609f0c8e7b338f767b08c5ac712fac809d31.rb +9 -0
- data/lib/one_gadget/builds/libc-2.26-ddcc13122ddbfe5e5ef77d4ebe66d124ae5762c2.rb +9 -0
- data/lib/one_gadget/builds/libc-2.26-fb587bc4429e7d1b0de31a3b9ee8ae78ee797eb0.rb +9 -0
- data/lib/one_gadget/builds/libc-2.27-14cd15d2eb0bc25c89045873cf807f7533e4788d.rb +47 -0
- data/lib/one_gadget/builds/libc-2.27-71f0f3074a929e519e85f6a5c03a7d1fd976bfe4.rb +44 -0
- data/lib/one_gadget/builds/libc-2.27-73cd526a553b3b47c6dd0d6dc62175263cdc646e.rb +35 -0
- data/lib/one_gadget/builds/libc-2.27-9dd0bb57f81671704475d1e5163405f7b4d4b454.rb +3 -0
- data/lib/one_gadget/builds/libc-2.27-a5e88eb34369fb48113b9eda7a92e07b372f3cb7.rb +35 -0
- data/lib/one_gadget/builds/libc-2.27-ba63c4a5f5c2b51e6e7e5df94017dc98b20e397a.rb +47 -0
- data/lib/one_gadget/builds/libc-2.27-ce450eb01a5e5acc7ce7b8c2633b02cc1093339e.rb +44 -0
- data/lib/one_gadget/builds/libc-2.27-d1237c55f6778f53b369cf22ff81979b2fe340bb.rb +3 -0
- data/lib/one_gadget/builds/libc-2.27-d831493b564a8632d1da5cc0fe44af45713cfeb6.rb +47 -0
- data/lib/one_gadget/builds/libc-2.27-f4929d2a8af4629477103af6f1cfb3bebce80883.rb +47 -0
- data/lib/one_gadget/builds/libc-2.28-5b157f49586a3ca84d55837f97ff466767dd3445.rb +12 -0
- data/lib/one_gadget/builds/libc-2.28-65ed813688b116fdce9e866ad2fef2e734167337.rb +44 -0
- data/lib/one_gadget/builds/libc-2.28-6ee9454b96efa9e343f9e8105f2fa4529265ea05.rb +6 -0
- data/lib/one_gadget/builds/libc-2.29-5b7203920d3d786ac40af8e0d5104683335f11be.rb +50 -0
- data/lib/one_gadget/builds/libc-2.29-85d5020664b11fd2708859275de41d5ab9d104cf.rb +18 -0
- data/lib/one_gadget/builds/libc-2.29-a8af6c81cb28a37bf3a546970bf64224402f8bd4.rb +50 -0
- data/lib/one_gadget/builds/libc-2.29-c19c88c33b60742ca906e0f9f96fe31b8b79ea9c.rb +50 -0
- data/lib/one_gadget/builds/libc-2.29-d561ec515222887a1e004555981169199d841024.rb +27 -0
- data/lib/one_gadget/builds/libc-2.30-2155f455ad56bd871c8225bcca85ee25c1c197c4.rb +36 -0
- data/lib/one_gadget/builds/libc-2.30-33d1f350f13728651d74dd2a56bad1e4e4648f5e.rb +50 -0
- data/lib/one_gadget/builds/libc-2.30-7a1e2ae26cef50584af2c60a5ad3a7ae3e9b1446.rb +50 -0
- data/lib/one_gadget/builds/libc-2.30-cbe9cff3c43b979739af1681b61a3d585725577b.rb +36 -0
- data/lib/one_gadget/builds/libc-2.30-f07144cc3d0ac50415f3a2e061be6da672c914ba.rb +18 -0
- data/lib/one_gadget/builds/libc-2.30-f44469d65b4efd2e5951513ed7cbf773657f1283.rb +18 -0
- data/lib/one_gadget/builds/libc-2.31-012f3f1e614cb9c829b8d1590d228cc6a9506a03.rb +26 -0
- data/lib/one_gadget/builds/libc-2.31-099b9225bcb0d019d9d60884be583eb31bb5f44e.rb +80 -0
- data/lib/one_gadget/builds/libc-2.31-0d1b3211736c4ca528a32ea0d565d41a2ede3b58.rb +56 -0
- data/lib/one_gadget/builds/libc-2.31-12e412d1938ec3ff79751f0e85f31bc52f7e3722.rb +56 -0
- data/lib/one_gadget/builds/libc-2.31-2886817dc06a87bdeef50544c0d6c12de13a8148.rb +56 -0
- data/lib/one_gadget/builds/libc-2.31-4d4d0853eb075b8b0cfaee0aee7cdf4254a3e877.rb +56 -0
- data/lib/one_gadget/builds/libc-2.31-58a58f2fcdafddacb4a08439ea2ee163ff645d1d.rb +26 -0
- data/lib/one_gadget/builds/libc-2.31-634252e0c5f8b03957a2e529719d4101699a894a.rb +48 -0
- data/lib/one_gadget/builds/libc-2.31-6b143503744b9d6c22e479941488d6a9e6e3f1c5.rb +26 -0
- data/lib/one_gadget/builds/libc-2.31-6dbad1709854c527793f6401666e45a791b7c793.rb +56 -0
- data/lib/one_gadget/builds/libc-2.31-85d7bb2dad0f8172d1c02c0311a00c4695933beb.rb +26 -0
- data/lib/one_gadget/builds/libc-2.31-8629fa2eea681f639a0c18305d4548850dde3450.rb +26 -0
- data/lib/one_gadget/builds/libc-2.31-94761ae31db09ce9140ca55cb6986a5ea9110abc.rb +56 -0
- data/lib/one_gadget/builds/libc-2.31-9fdb74e7b217d06c93172a8243f8547f947ee6d1.rb +80 -0
- data/lib/one_gadget/builds/libc-2.31-c9d56de82ddd00d822d6100034f3075ef1709cd2.rb +80 -0
- data/lib/one_gadget/builds/libc-2.31-e67e80e70619717709e3180e552a11a285036a54.rb +56 -0
- data/lib/one_gadget/builds/libc-2.31-eb3c5cf73a0a6b7f2b3895a56dbc443806700971.rb +30 -0
- data/lib/one_gadget/builds/libc-2.31-fb7626dd8b8a50f7685920487e992528834f6775.rb +26 -0
- data/lib/one_gadget/builds/libc-2.32-1e3fb06b8c86b5e282e3e11bd207d399fb4952e2.rb +83 -0
- data/lib/one_gadget/builds/libc-2.32-7ec3e74da842ca3c6a9ba20b21303ce1bc7a45af.rb +51 -0
- data/lib/one_gadget/builds/libc-2.32-7fba7abef941659c229c2636aa0905c28652ee3f.rb +56 -0
- data/lib/one_gadget/builds/libc-2.32-82f6b69e698bb579baefb35a3fb0346632fa2c4d.rb +83 -0
- data/lib/one_gadget/builds/libc-2.32-87f011a7e4cc3fc60a54d0d3dd690e7438decc8d.rb +56 -0
- data/lib/one_gadget/builds/libc-2.32-92199dd358616182fb49c992330fb05e42eaa423.rb +26 -0
- data/lib/one_gadget/builds/libc-2.32-9d60d4bd625a7fe2439db781a5fc91bb69684903.rb +26 -0
- data/lib/one_gadget/builds/libc-2.32-ac287babd169c70013b752da2713dfb96d9a503f.rb +83 -0
- data/lib/one_gadget/builds/libc-2.32-aebd80372a00285a5c486ef72917f935eb8f91be.rb +26 -0
- data/lib/one_gadget/builds/libc-2.32-bd0e9dc4e27475b5ab7dc59141daaa2626b8a760.rb +26 -0
- data/lib/one_gadget/builds/libc-2.32-bddeb6374fc99723cef3b3baafe48ac78fce13b4.rb +26 -0
- data/lib/one_gadget/builds/libc-2.32-cb91dd613d38b806a16bed1b364c084ad63d1a1f.rb +56 -0
- data/lib/one_gadget/builds/libc-2.32-d3f1cf7f55b985fd6d989880ec3599724fe40a26.rb +26 -0
- data/lib/one_gadget/builds/libc-2.32-e13b24f94b260dd6394bdb2433d2a78e37078d5c.rb +30 -0
- data/lib/one_gadget/builds/libc-2.32-e1596c76d0d93d8a36378ba976f034f140618d59.rb +56 -0
- data/lib/one_gadget/builds/libc-2.32-f45b67ab28af1581cba8e4713e0fd3b2bc004b2e.rb +56 -0
- data/lib/one_gadget/builds/libc-2.33-18edf6b683a2f9768cc0ee9cc64ae6fbb545deb2.rb +83 -0
- data/lib/one_gadget/builds/libc-2.33-1c943bf313b5b4546e47b830e70de6bbd6a0ba57.rb +26 -0
- data/lib/one_gadget/builds/libc-2.33-2b48299781548c9bc452eac6df39902547c884ed.rb +83 -0
- data/lib/one_gadget/builds/libc-2.33-37169e68b33cad12e272bb4896d71fd0d4fd98bb.rb +56 -0
- data/lib/one_gadget/builds/libc-2.33-54a6e404e7dc1de7c1434a00b7b1ad325b81f22a.rb +56 -0
- data/lib/one_gadget/builds/libc-2.33-7983d313db4a441a3762c8861ca405aa0331c0c8.rb +56 -0
- data/lib/one_gadget/builds/libc-2.33-8fdc2b2c65f3d782e52c01b546399eee8aa466dc.rb +26 -0
- data/lib/one_gadget/builds/libc-2.33-9143da129b44b931a1c180e2b103e993dd2474fd.rb +26 -0
- data/lib/one_gadget/builds/libc-2.33-97c8d90bd86bc698d156630e8803de433a640090.rb +83 -0
- data/lib/one_gadget/builds/libc-2.33-9bf4c513db255ab7248cef9f0f96b4403df29852.rb +56 -0
- data/lib/one_gadget/builds/libc-2.33-9e592d3efa165bc2bab8b40426370bd50cb0b027.rb +56 -0
- data/lib/one_gadget/builds/libc-2.33-abf3b2a9815c0cd6e4280cd99474d34102804eb2.rb +56 -0
- data/lib/one_gadget/builds/libc-2.33-b046eecd056a0c30995703f6cfca7a8e3a9ef5fa.rb +56 -0
- data/lib/one_gadget/builds/libc-2.33-b2262bfa6f1bffd1e9ddc845276dfaebb7c8f0b9.rb +26 -0
- data/lib/one_gadget/builds/libc-2.33-f462ab2b79c7f29fb866da6e087e45261570a09c.rb +26 -0
- data/lib/one_gadget/builds/libc-2.33-f4af69206091c7f14a941f2dd77a79a7682a1184.rb +26 -0
- data/lib/one_gadget/builds/libc-2.34-140609514178a4bb96a3cd44ffdfede398a77610.rb +26 -0
- data/lib/one_gadget/builds/libc-2.34-25594d4b6cbecda86ec968fa940c6c09937db70f.rb +50 -0
- data/lib/one_gadget/builds/libc-2.34-387920279e1c7892042ff27d76315d55e4651db9.rb +26 -0
- data/lib/one_gadget/builds/libc-2.34-7e46fbc4d85f5df8b6f18630787ad281786a3512.rb +26 -0
- data/lib/one_gadget/builds/libc-2.34-8d631c824a37b236d1dc9686b224a573fd6048b4.rb +26 -0
- data/lib/one_gadget/builds/libc-2.34-b8037b6260865346802321dd2256b8ad1d857e63.rb +68 -0
- data/lib/one_gadget/builds/libc-2.34-ba4777827fe1fb729ca35acd99c8013936172a0d.rb +50 -0
- data/lib/one_gadget/builds/libc-2.34-f0fc29165cbe6088c0e1adf03b0048fbecbc003a.rb +68 -0
- data/lib/one_gadget/builds/libc-2.35-89c3cb85f9e55046776471fed05ec441581d1969.rb +62 -0
- data/lib/one_gadget/builds/libc-2.35-ab265082cac9486923c709d48ee5dde080e243ff.rb +41 -0
- data/lib/one_gadget/builds/libc-2.35-c376d41cff4473142a97ac1ff1eab433859dc3d4.rb +26 -0
- data/lib/one_gadget/builds/libc-2.35-dfca8b65dd2d2ca67f70dc7a556a6cfa8ba96ed8.rb +26 -0
- data/lib/one_gadget/cli.rb +1 -1
- data/lib/one_gadget/emulators/aarch64.rb +7 -8
- data/lib/one_gadget/emulators/amd64.rb +3 -0
- data/lib/one_gadget/emulators/lambda.rb +12 -4
- data/lib/one_gadget/emulators/processor.rb +9 -1
- data/lib/one_gadget/emulators/x86.rb +42 -19
- data/lib/one_gadget/fetchers/amd64.rb +2 -1
- data/lib/one_gadget/fetchers/base.rb +65 -34
- data/lib/one_gadget/gadget.rb +9 -5
- data/lib/one_gadget/update.rb +2 -2
- data/lib/one_gadget/version.rb +1 -1
- metadata +91 -5
@@ -16,6 +16,7 @@ module OneGadget
|
|
16
16
|
def candidates
|
17
17
|
# one basic block case
|
18
18
|
cands = super do |candidate|
|
19
|
+
next true if candidate.include?('posix_spawn@')
|
19
20
|
next false unless candidate.include?(bin_sh_hex) # works in x86-64
|
20
21
|
next false unless candidate.lines.last.include?('execve') # only care execve
|
21
22
|
|
@@ -32,7 +33,7 @@ module OneGadget
|
|
32
33
|
# ...
|
33
34
|
# call execve
|
34
35
|
def jmp_case_candidates
|
35
|
-
`#{@objdump.command}|egrep '
|
36
|
+
`#{@objdump.command}|egrep '# #{bin_sh_hex}' -A 8`.split('--').map do |cand|
|
36
37
|
cand = cand.lines.map(&:strip).reject(&:empty?)
|
37
38
|
jmp_at = cand.index { |c| c.include?('jmp') }
|
38
39
|
next nil if jmp_at.nil?
|
@@ -7,12 +7,12 @@ module OneGadget
|
|
7
7
|
module Fetcher
|
8
8
|
# Define common methods for gadget fetchers.
|
9
9
|
class Base
|
10
|
-
# The absolute path
|
10
|
+
# The absolute path to glibc.
|
11
11
|
# @return [String] The filename.
|
12
12
|
attr_reader :file
|
13
13
|
|
14
14
|
# Instantiate a fetcher object.
|
15
|
-
# @param [String] file Absolute path
|
15
|
+
# @param [String] file Absolute path to the target libc.
|
16
16
|
def initialize(file)
|
17
17
|
@file = file
|
18
18
|
arch = self.class.name.split('::').last.downcase.to_sym
|
@@ -30,7 +30,7 @@ module OneGadget
|
|
30
30
|
(lines.size - 2).downto(0) do |i|
|
31
31
|
processor = emulate(lines[i..-1])
|
32
32
|
options = resolve(processor)
|
33
|
-
next if options.nil? # impossible be a gadget
|
33
|
+
next if options.nil? # impossible to be a gadget
|
34
34
|
|
35
35
|
offset = offset_of(lines[i])
|
36
36
|
gadgets << OneGadget::Gadget::Gadget.new(offset, **options)
|
@@ -41,7 +41,7 @@ module OneGadget
|
|
41
41
|
|
42
42
|
# Fetch candidates that end with call exec*.
|
43
43
|
#
|
44
|
-
#
|
44
|
+
# Provide a block to filter gadget candidates.
|
45
45
|
# @yieldparam [String] cand
|
46
46
|
# Is this candidate valid?
|
47
47
|
# @yieldreturn [Boolean]
|
@@ -49,7 +49,7 @@ module OneGadget
|
|
49
49
|
# @return [Array<String>]
|
50
50
|
# Each +String+ returned is multi-lines of assembly code.
|
51
51
|
def candidates(&block)
|
52
|
-
call_regexp = "#{call_str}.*<exec[^+]
|
52
|
+
call_regexp = "#{call_str}.*<(exec[^+]*|posix_spawn[^+]*)>$"
|
53
53
|
cands = []
|
54
54
|
`#{@objdump.command}|egrep '#{call_regexp}' -B 30`.split('--').each do |cand|
|
55
55
|
lines = cand.lines.map(&:strip).reject(&:empty?)
|
@@ -69,7 +69,7 @@ module OneGadget
|
|
69
69
|
|
70
70
|
private
|
71
71
|
|
72
|
-
# Generating constraints
|
72
|
+
# Generating constraints for being a valid gadget.
|
73
73
|
# @param [OneGadget::Emulators::Processor] processor The processor after executing the gadgets.
|
74
74
|
# @return [Hash{Symbol => Array<String>, String}?]
|
75
75
|
# The options to create a {OneGadget::Gadget::Gadget} object.
|
@@ -79,28 +79,28 @@ module OneGadget
|
|
79
79
|
# If the constraints can never be satisfied, +nil+ is returned.
|
80
80
|
def resolve(processor)
|
81
81
|
call = processor.registers[processor.pc].to_s
|
82
|
-
|
83
|
-
|
84
|
-
return
|
85
|
-
# check first argument contains /bin/sh
|
86
|
-
# since the logic is different between amd64 and i386,
|
87
|
-
# invoke str_bin_sh? for checking
|
88
|
-
return unless str_bin_sh?(processor.argument(0).to_s)
|
89
|
-
|
90
|
-
if call.include?('execve')
|
91
|
-
resolve_execve(processor)
|
92
|
-
elsif call.include?('execl')
|
93
|
-
resolve_execl(processor)
|
94
|
-
end
|
82
|
+
return resolve_posix_spawn(processor) if call.include?('posix_spawn')
|
83
|
+
return resolve_execve(processor) if call.include?('execve')
|
84
|
+
return resolve_execl(processor) if call.include?('execl')
|
95
85
|
end
|
96
86
|
|
97
87
|
def resolve_execve(processor)
|
98
|
-
|
99
|
-
# arg[2] == NULL || [arg[2]] == NULL || arg[2] == envp
|
88
|
+
arg0 = processor.argument(0).to_s
|
100
89
|
arg1 = processor.argument(1).to_s
|
101
90
|
arg2 = processor.argument(2).to_s
|
91
|
+
res = resolve_execve_args(processor, arg0, arg1, arg2)
|
92
|
+
return nil if res.nil?
|
93
|
+
|
94
|
+
{ constraints: res[:constraints], effect: %(execve("/bin/sh", #{arg1}, #{res[:envp]})) }
|
95
|
+
end
|
96
|
+
|
97
|
+
def resolve_execve_args(processor, arg0, arg1, arg2, allow_null_argv: true)
|
98
|
+
return unless str_bin_sh?(arg0)
|
99
|
+
|
100
|
+
# arg1 == NULL || [arg1] == NULL
|
101
|
+
# arg2 == NULL || [arg2] == NULL || arg[2] == envp
|
102
102
|
cons = processor.constraints
|
103
|
-
cons << check_execve_arg(processor, arg1)
|
103
|
+
cons << check_execve_arg(processor, arg1, allow_null_argv)
|
104
104
|
return nil unless cons.all?
|
105
105
|
|
106
106
|
envp = 'environ'
|
@@ -109,38 +109,42 @@ module OneGadget
|
|
109
109
|
envp = arg2
|
110
110
|
end
|
111
111
|
|
112
|
-
{ constraints: cons,
|
112
|
+
{ constraints: cons, envp: envp }
|
113
113
|
end
|
114
114
|
|
115
|
-
# arg
|
116
|
-
def check_execve_arg(processor, arg)
|
115
|
+
# arg == NULL || [arg] == NULL
|
116
|
+
def check_execve_arg(processor, arg, allow_null)
|
117
117
|
if arg.start_with?(processor.sp) # arg = sp+<num>
|
118
|
-
# in this case, the only
|
118
|
+
# in this case, the only chance is [sp+<num>] == NULL
|
119
119
|
num = Integer(arg[processor.sp.size..-1])
|
120
120
|
slot = processor.stack[num].to_s
|
121
121
|
return if global_var?(slot)
|
122
122
|
|
123
123
|
"#{slot} == NULL"
|
124
|
-
|
124
|
+
elsif allow_null
|
125
125
|
"[#{arg}] == NULL || #{arg} == NULL"
|
126
|
+
else
|
127
|
+
"[#{arg}] == NULL"
|
126
128
|
end
|
127
129
|
end
|
128
130
|
|
129
131
|
def check_envp(processor, arg)
|
130
|
-
#
|
131
|
-
# believe it is environ
|
132
|
-
#
|
132
|
+
# If str starts with [[ and is a global variable,
|
133
|
+
# believe it is environ.
|
134
|
+
# If it starts with [[ but not a global var, drop it.
|
133
135
|
return global_var?(arg) if arg.start_with?('[[')
|
134
136
|
|
135
137
|
# normal
|
136
|
-
cons = check_execve_arg(processor, arg)
|
138
|
+
cons = check_execve_arg(processor, arg, true)
|
137
139
|
return nil if cons.nil?
|
138
140
|
|
139
141
|
yield cons
|
140
142
|
end
|
141
143
|
|
142
|
-
# Resolve +call execl+
|
144
|
+
# Resolve +call execl+ cases.
|
143
145
|
def resolve_execl(processor)
|
146
|
+
return unless str_bin_sh?(processor.argument(0).to_s)
|
147
|
+
|
144
148
|
args = []
|
145
149
|
arg = processor.argument(1).to_s
|
146
150
|
if str_sh?(arg)
|
@@ -151,10 +155,37 @@ module OneGadget
|
|
151
155
|
|
152
156
|
args << arg
|
153
157
|
cons = processor.constraints + ["#{arg} == NULL"]
|
154
|
-
# now arg is the constraint.
|
155
158
|
{ constraints: cons, effect: %(execl("/bin/sh", #{args.join(', ')})) }
|
156
159
|
end
|
157
160
|
|
161
|
+
# posix_spawn (*pid, *path, *file_actions, *attrp, argv[], envp[])
|
162
|
+
# Constraints are
|
163
|
+
# * pid == NULL || *pid is writable
|
164
|
+
# * file_actions == NULL || (int) (file_actions->__used) <= 0
|
165
|
+
# * attrp == NULL || attrp->flags == 0
|
166
|
+
# Meet all constraints then posix_spawn eventually calls execve(path, argv, envp)
|
167
|
+
def resolve_posix_spawn(processor)
|
168
|
+
args = Array.new(6) { |i| processor.argument(i) }
|
169
|
+
res = resolve_execve_args(processor, args[1].to_s, args[4].to_s, args[5].to_s, allow_null_argv: false)
|
170
|
+
return nil if res.nil?
|
171
|
+
|
172
|
+
cons = res[:constraints]
|
173
|
+
arg0 = args[0]
|
174
|
+
if arg0.to_s != '0'
|
175
|
+
if arg0.deref_count.zero? && arg0.to_s.include?(processor.sp)
|
176
|
+
# Assume stack is always writable, no additional constraints.
|
177
|
+
else
|
178
|
+
cons << "#{arg0} == NULL || writable: #{arg0}"
|
179
|
+
end
|
180
|
+
end
|
181
|
+
arg2 = args[2]
|
182
|
+
cons << "#{arg2} == NULL || (s32)#{(arg2 + 4).deref} <= 0" if arg2.to_s != '0'
|
183
|
+
arg3 = args[3]
|
184
|
+
cons << "#{arg3} == NULL || (u16)#{arg3.deref} == NULL" if arg3.to_s != '0'
|
185
|
+
|
186
|
+
{ constraints: cons, effect: %(posix_spawn(#{arg0}, "/bin/sh", #{arg2}, #{arg3}, #{args[4]}, #{res[:envp]})) }
|
187
|
+
end
|
188
|
+
|
158
189
|
def global_var?(_str); raise NotImplementedError
|
159
190
|
end
|
160
191
|
|
@@ -192,7 +223,7 @@ module OneGadget
|
|
192
223
|
end
|
193
224
|
|
194
225
|
def str_offset(str)
|
195
|
-
|
226
|
+
File.binread(file).index("#{str}\x00") ||
|
196
227
|
raise(Error::ArgumentError, "File #{file.inspect} doesn't contain string #{str.inspect}, not glibc?")
|
197
228
|
end
|
198
229
|
|
data/lib/one_gadget/gadget.rb
CHANGED
@@ -62,12 +62,15 @@ module OneGadget
|
|
62
62
|
|
63
63
|
# REG: OneGadget::ABI.all
|
64
64
|
# IMM: [+-]0x[\da-f]+
|
65
|
+
# BITS: 8, 16, 32, 64
|
66
|
+
# CAST: (<s|u><BITS>)
|
65
67
|
# Identity: <REG><IMM>?
|
66
68
|
# Identity: [<Identity>]
|
67
69
|
# Expr: <REG> is the GOT address of libc
|
68
70
|
# Expr: writable: <Identity>
|
69
|
-
# Expr: <Identity> == NULL
|
71
|
+
# Expr: <CAST>?<Identity> == NULL
|
70
72
|
# Expr: <REG> & 0xf == <IMM>
|
73
|
+
# Expr: (s32)[<Identity>] <= 0
|
71
74
|
# Expr: <Expr> || <Expr>
|
72
75
|
def calculate_score(expr)
|
73
76
|
return expr.split(' || ').map(&method(:calculate_score)).max if expr.include?(' || ')
|
@@ -76,15 +79,16 @@ module OneGadget
|
|
76
79
|
when / & 0xf/ then 0.95
|
77
80
|
when /GOT address/ then 0.9
|
78
81
|
when /^writable/ then 0.81
|
79
|
-
when / == NULL$/ then calculate_null_score(expr)
|
82
|
+
when / == NULL$/ then calculate_null_score(expr.slice(0...expr.rindex(' == NULL')))
|
83
|
+
when / <= 0$/ then calculate_null_score(expr.slice(0...expr.rindex(' <= ')))
|
80
84
|
end
|
81
85
|
end
|
82
86
|
|
83
|
-
def calculate_null_score(
|
84
|
-
|
87
|
+
def calculate_null_score(identity)
|
88
|
+
# remove <CAST>
|
89
|
+
identity.sub!(/^\([s|u]\d+\)/, '')
|
85
90
|
# Thank God we are already able to parse this
|
86
91
|
lmda = OneGadget::Emulators::Lambda.parse(identity)
|
87
|
-
# raise Error::ArgumentError, expr unless OneGadget::ABI.all.include?(lmda.obj)
|
88
92
|
# rax == 0 is easy; rax + 0x10 == 0 is damn hard.
|
89
93
|
return lmda.immi.zero? ? 0.9 : 0.1 if lmda.deref_count.zero?
|
90
94
|
|
data/lib/one_gadget/update.rb
CHANGED
@@ -42,7 +42,7 @@ module OneGadget
|
|
42
42
|
# don't check if not CLI
|
43
43
|
return false unless $stdout.tty?
|
44
44
|
return false if cache.nil? # cache file fails, no update check.
|
45
|
-
return false if
|
45
|
+
return false if File.binread(cache).strip == 'never'
|
46
46
|
|
47
47
|
Time.now >= last_check + FREQUENCY
|
48
48
|
end
|
@@ -57,7 +57,7 @@ module OneGadget
|
|
57
57
|
def cache_file
|
58
58
|
dir = File.dirname(CACHE_FILE)
|
59
59
|
FileUtils.mkdir_p(dir) unless File.directory?(dir)
|
60
|
-
|
60
|
+
File.binwrite(CACHE_FILE, '') unless File.exist?(CACHE_FILE)
|
61
61
|
CACHE_FILE
|
62
62
|
rescue Errno::EACCES # prevent dir is not writable
|
63
63
|
nil
|
data/lib/one_gadget/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: one_gadget
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- david942j
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: elftools
|
@@ -78,14 +78,20 @@ dependencies:
|
|
78
78
|
requirements:
|
79
79
|
- - "~>"
|
80
80
|
- !ruby/object:Gem::Version
|
81
|
-
version: 0.
|
81
|
+
version: '0.17'
|
82
|
+
- - "<"
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '0.18'
|
82
85
|
type: :development
|
83
86
|
prerelease: false
|
84
87
|
version_requirements: !ruby/object:Gem::Requirement
|
85
88
|
requirements:
|
86
89
|
- - "~>"
|
87
90
|
- !ruby/object:Gem::Version
|
88
|
-
version: 0.
|
91
|
+
version: '0.17'
|
92
|
+
- - "<"
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '0.18'
|
89
95
|
- !ruby/object:Gem::Dependency
|
90
96
|
name: yard
|
91
97
|
requirement: !ruby/object:Gem::Requirement
|
@@ -637,6 +643,7 @@ files:
|
|
637
643
|
- lib/one_gadget/builds/libc-2.23-11ae3441756e6c2ebf5c962434bf9f07b3ea3deb.rb
|
638
644
|
- lib/one_gadget/builds/libc-2.23-131c254aed46e6a24cb08f3abe802ea0ef50e5f9.rb
|
639
645
|
- lib/one_gadget/builds/libc-2.23-1800a4bdb0c42a7bb7a570ed90724fa04de8a4fe.rb
|
646
|
+
- lib/one_gadget/builds/libc-2.23-18f761287ed46e213bec29c2e440e73fd72373be.rb
|
640
647
|
- lib/one_gadget/builds/libc-2.23-1b1d19add6d861e16e04e4b8e9864a7bc16c1327.rb
|
641
648
|
- lib/one_gadget/builds/libc-2.23-1ca54a6e0d76188105b12e49fe6b8019bf08803a.rb
|
642
649
|
- lib/one_gadget/builds/libc-2.23-1e80992437b5e1cb76bf56605ee8991e76e85f69.rb
|
@@ -647,6 +654,7 @@ files:
|
|
647
654
|
- lib/one_gadget/builds/libc-2.23-29e38445a740bba5a77b86691e3c51a7e48dc79b.rb
|
648
655
|
- lib/one_gadget/builds/libc-2.23-2aedae2bb27ac85cf14c36da79747dd88bb2b633.rb
|
649
656
|
- lib/one_gadget/builds/libc-2.23-2c4ed1bebc9ede033fbbb422f84da9a93cacd88e.rb
|
657
|
+
- lib/one_gadget/builds/libc-2.23-30773be8cf5bfed9d910c8473dd44eaab2e705ab.rb
|
650
658
|
- lib/one_gadget/builds/libc-2.23-336976f90c600be7c95a68be6c2f0652cc22347c.rb
|
651
659
|
- lib/one_gadget/builds/libc-2.23-3612e20f3e2705dcf8fd81ac494a0e20b9e16764.rb
|
652
660
|
- lib/one_gadget/builds/libc-2.23-369de0e1d833caa693af17f17c83ba937f0a4dad.rb
|
@@ -660,6 +668,7 @@ files:
|
|
660
668
|
- lib/one_gadget/builds/libc-2.23-5d511bfe32efcb567933d13ab9dc87f0a02d3651.rb
|
661
669
|
- lib/one_gadget/builds/libc-2.23-60131540dadc6796cab33388349e6e4e68692053.rb
|
662
670
|
- lib/one_gadget/builds/libc-2.23-60ea46dff84c256650d44c1a32ca609168bee1a6.rb
|
671
|
+
- lib/one_gadget/builds/libc-2.23-635101aec7213fdc442419bf65a92047a862ff32.rb
|
663
672
|
- lib/one_gadget/builds/libc-2.23-6462f7cc95a34bd03f42ad150211db68fcf27d44.rb
|
664
673
|
- lib/one_gadget/builds/libc-2.23-679ad41a6bc9e718a11a36cf9879cac97197e565.rb
|
665
674
|
- lib/one_gadget/builds/libc-2.23-697f7d05a70ecde852a2eed480bea6a6779b4a27.rb
|
@@ -711,6 +720,7 @@ files:
|
|
711
720
|
- lib/one_gadget/builds/libc-2.23-ee525f6c9b018c094beedd17b87a4573d7ea7e2e.rb
|
712
721
|
- lib/one_gadget/builds/libc-2.23-f0c2e03955a845c9a7f9c85228b12c9700d66c50.rb
|
713
722
|
- lib/one_gadget/builds/libc-2.23-f202f01f10e845e14e7d8ca44cf5d9e4742fca6a.rb
|
723
|
+
- lib/one_gadget/builds/libc-2.23-f2f2f2af4f3e8597cca1fdff1008a834c78de42b.rb
|
714
724
|
- lib/one_gadget/builds/libc-2.23-f303ce47c562225a4f3475170333494965760a6a.rb
|
715
725
|
- lib/one_gadget/builds/libc-2.23-f33f3937b8f458ffd96cf10a22deea1bd85ac61a.rb
|
716
726
|
- lib/one_gadget/builds/libc-2.23-f4490657edfef482025fff60e85acd5928e0d05b.rb
|
@@ -746,11 +756,13 @@ files:
|
|
746
756
|
- lib/one_gadget/builds/libc-2.24-2ee9e1740da616757f2e6d5ba58576c0c7302fff.rb
|
747
757
|
- lib/one_gadget/builds/libc-2.24-30acfe88fed30ad3f8cb88425b80ea96899655aa.rb
|
748
758
|
- lib/one_gadget/builds/libc-2.24-33801a6f55c5c3cdf7d83590b433adcbab08a688.rb
|
759
|
+
- lib/one_gadget/builds/libc-2.24-349119af9e223829ea24f6b7226bdff0182e73f2.rb
|
749
760
|
- lib/one_gadget/builds/libc-2.24-35764bd71c58942e9131e3547b7c343098212d03.rb
|
750
761
|
- lib/one_gadget/builds/libc-2.24-389260a6758c3f1dbc741c197e747341ed277cd2.rb
|
751
762
|
- lib/one_gadget/builds/libc-2.24-3b24749bb184473f81819312e3d86903915eaf65.rb
|
752
763
|
- lib/one_gadget/builds/libc-2.24-3ea4c67e60e49b8164b692166115bbf927e521db.rb
|
753
764
|
- lib/one_gadget/builds/libc-2.24-3f89db5baa7e88162377fab6a1590f732a355401.rb
|
765
|
+
- lib/one_gadget/builds/libc-2.24-3fce81d490804af9759c70bf197380bc05a584c2.rb
|
754
766
|
- lib/one_gadget/builds/libc-2.24-43adbb1e7368c94fba1ba9020d8ef0808bff5bc4.rb
|
755
767
|
- lib/one_gadget/builds/libc-2.24-43faee19af5e1d20163c6492862fca1a4146b668.rb
|
756
768
|
- lib/one_gadget/builds/libc-2.24-45adab2b0ad8604e35eeea0b30d6ec1ad11642af.rb
|
@@ -787,6 +799,7 @@ files:
|
|
787
799
|
- lib/one_gadget/builds/libc-2.24-9b7db6636c9f2f03c9523b02db229741e2250550.rb
|
788
800
|
- lib/one_gadget/builds/libc-2.24-9e638553dc7a08748d03c42455ecd6bb9bd8f8cd.rb
|
789
801
|
- lib/one_gadget/builds/libc-2.24-a4c01d397b6584f7040ef266b16a5d4da0b7a087.rb
|
802
|
+
- lib/one_gadget/builds/libc-2.24-a51ace667ccae6a8887837efb18259a906704bed.rb
|
790
803
|
- lib/one_gadget/builds/libc-2.24-a822e789c3428254f309f81600b9e5ae551a3461.rb
|
791
804
|
- lib/one_gadget/builds/libc-2.24-aad7dbe330f23ea00ca63daf793b766b51aceb5d.rb
|
792
805
|
- lib/one_gadget/builds/libc-2.24-acd08eb60d44e32e85530f0537d46f8cd422403e.rb
|
@@ -810,6 +823,7 @@ files:
|
|
810
823
|
- lib/one_gadget/builds/libc-2.24-da518391ad926bb7535f2095df0be265180eeed5.rb
|
811
824
|
- lib/one_gadget/builds/libc-2.24-dab413a7e3b33dde527af308a09a55ade6b41e84.rb
|
812
825
|
- lib/one_gadget/builds/libc-2.24-dc799b9197929f88cebc6aa72e3be388cacfb1df.rb
|
826
|
+
- lib/one_gadget/builds/libc-2.24-deefae132c5a39ba892bc189edd91f73c1ea1f14.rb
|
813
827
|
- lib/one_gadget/builds/libc-2.24-dff06414a29b97b865ef938e06a7751fe8b1b2d0.rb
|
814
828
|
- lib/one_gadget/builds/libc-2.24-e0206d9b8d7ad3abc39a94dbc37bb3b42c9f1345.rb
|
815
829
|
- lib/one_gadget/builds/libc-2.24-e5dc6c0caa39828fa10ed37e642723a581acdb6d.rb
|
@@ -838,35 +852,49 @@ files:
|
|
838
852
|
- lib/one_gadget/builds/libc-2.26-fb587bc4429e7d1b0de31a3b9ee8ae78ee797eb0.rb
|
839
853
|
- lib/one_gadget/builds/libc-2.27-06a8004be6e10c4aeabbe0db74423ace392a2d6b.rb
|
840
854
|
- lib/one_gadget/builds/libc-2.27-0e188ec5f09c187a7a92784d4b97aa251b15a93c.rb
|
855
|
+
- lib/one_gadget/builds/libc-2.27-14cd15d2eb0bc25c89045873cf807f7533e4788d.rb
|
841
856
|
- lib/one_gadget/builds/libc-2.27-2d1c5e0b85cb06ff47fa6fa088ec22cb6e06074e.rb
|
842
857
|
- lib/one_gadget/builds/libc-2.27-4b06dfe2c46f5e537b3d0a310ab0bda11bcbd681.rb
|
843
858
|
- lib/one_gadget/builds/libc-2.27-53f40c1d2f3739ae017dcdcef1a17314786e3709.rb
|
844
859
|
- lib/one_gadget/builds/libc-2.27-63b3d43ad45e1b0f601848c65b067f9e9b40528b.rb
|
860
|
+
- lib/one_gadget/builds/libc-2.27-71f0f3074a929e519e85f6a5c03a7d1fd976bfe4.rb
|
861
|
+
- lib/one_gadget/builds/libc-2.27-73cd526a553b3b47c6dd0d6dc62175263cdc646e.rb
|
845
862
|
- lib/one_gadget/builds/libc-2.27-9dd0bb57f81671704475d1e5163405f7b4d4b454.rb
|
863
|
+
- lib/one_gadget/builds/libc-2.27-a5e88eb34369fb48113b9eda7a92e07b372f3cb7.rb
|
846
864
|
- lib/one_gadget/builds/libc-2.27-afdabd83c53f0fc60a059c3305c4f3b57198e51b.rb
|
847
865
|
- lib/one_gadget/builds/libc-2.27-b417c0ba7cc5cf06d1d1bed6652cedb9253c60d0.rb
|
866
|
+
- lib/one_gadget/builds/libc-2.27-ba63c4a5f5c2b51e6e7e5df94017dc98b20e397a.rb
|
848
867
|
- lib/one_gadget/builds/libc-2.27-cc6dd208d3af4bc505f599a90ef8af52f16116e4.rb
|
868
|
+
- lib/one_gadget/builds/libc-2.27-ce450eb01a5e5acc7ce7b8c2633b02cc1093339e.rb
|
849
869
|
- lib/one_gadget/builds/libc-2.27-cf1599aa8b3cb35f79dcaea7a8b48704ecf42a19.rb
|
850
870
|
- lib/one_gadget/builds/libc-2.27-d1237c55f6778f53b369cf22ff81979b2fe340bb.rb
|
851
871
|
- lib/one_gadget/builds/libc-2.27-d3cf764b2f97ac3efe366ddd07ad902fb6928fd7.rb
|
872
|
+
- lib/one_gadget/builds/libc-2.27-d831493b564a8632d1da5cc0fe44af45713cfeb6.rb
|
873
|
+
- lib/one_gadget/builds/libc-2.27-f4929d2a8af4629477103af6f1cfb3bebce80883.rb
|
852
874
|
- lib/one_gadget/builds/libc-2.28-26b3c1a40c8a0bd026975a262774bf52aec55107.rb
|
853
875
|
- lib/one_gadget/builds/libc-2.28-44f5a3efb0e5733fa9d97e690cb36cd4c682bcdb.rb
|
854
876
|
- lib/one_gadget/builds/libc-2.28-5784a31a1c26f6d2157e585205ebb63dd19ff90f.rb
|
855
877
|
- lib/one_gadget/builds/libc-2.28-5b157f49586a3ca84d55837f97ff466767dd3445.rb
|
878
|
+
- lib/one_gadget/builds/libc-2.28-65ed813688b116fdce9e866ad2fef2e734167337.rb
|
856
879
|
- lib/one_gadget/builds/libc-2.28-6ee9454b96efa9e343f9e8105f2fa4529265ea05.rb
|
857
880
|
- lib/one_gadget/builds/libc-2.29-2195ff86b0ddead43a7c08f46b95b0887cdb96fa.rb
|
881
|
+
- lib/one_gadget/builds/libc-2.29-5b7203920d3d786ac40af8e0d5104683335f11be.rb
|
858
882
|
- lib/one_gadget/builds/libc-2.29-6d8abbab5b004d65bfdf909fd4982103499cd1c9.rb
|
859
883
|
- lib/one_gadget/builds/libc-2.29-85d5020664b11fd2708859275de41d5ab9d104cf.rb
|
860
884
|
- lib/one_gadget/builds/libc-2.29-9a1100ebab15d22bbc31836b0656d2fa5a6a1252.rb
|
885
|
+
- lib/one_gadget/builds/libc-2.29-a8af6c81cb28a37bf3a546970bf64224402f8bd4.rb
|
886
|
+
- lib/one_gadget/builds/libc-2.29-c19c88c33b60742ca906e0f9f96fe31b8b79ea9c.rb
|
861
887
|
- lib/one_gadget/builds/libc-2.29-d389232dd725501db38f08e2aca0b44ab3af314f.rb
|
862
888
|
- lib/one_gadget/builds/libc-2.29-d561ec515222887a1e004555981169199d841024.rb
|
863
889
|
- lib/one_gadget/builds/libc-2.30-00854a16b9b4b73893627ccb730d97907837e320.rb
|
864
890
|
- lib/one_gadget/builds/libc-2.30-135c0b4a030ec9b6306ed6b621e1e0dedfd614a3.rb
|
865
891
|
- lib/one_gadget/builds/libc-2.30-2155f455ad56bd871c8225bcca85ee25c1c197c4.rb
|
892
|
+
- lib/one_gadget/builds/libc-2.30-33d1f350f13728651d74dd2a56bad1e4e4648f5e.rb
|
866
893
|
- lib/one_gadget/builds/libc-2.30-3f72ae987c135c35f2e721c61991ec46df8816ab.rb
|
867
894
|
- lib/one_gadget/builds/libc-2.30-4ab6143b59defc12c3d50d176c78b4e6e5a2c179.rb
|
868
895
|
- lib/one_gadget/builds/libc-2.30-71373fd43ed6a83e0aab983c3a971e32d459e15f.rb
|
869
896
|
- lib/one_gadget/builds/libc-2.30-75e3e2d9596aae251330ae7ef3f91a847fc62641.rb
|
897
|
+
- lib/one_gadget/builds/libc-2.30-7a1e2ae26cef50584af2c60a5ad3a7ae3e9b1446.rb
|
870
898
|
- lib/one_gadget/builds/libc-2.30-884362aa891ab565e4cf904cd60be984a7941acd.rb
|
871
899
|
- lib/one_gadget/builds/libc-2.30-93abe093a13b9b10f83b5e6de4a63a0d29175c89.rb
|
872
900
|
- lib/one_gadget/builds/libc-2.30-bef538440d5b4b0ac6b4575acb3aac4a65316061.rb
|
@@ -879,23 +907,81 @@ files:
|
|
879
907
|
- lib/one_gadget/builds/libc-2.30-e3e238714a7998a958651faa0a5e97fafa229ec3.rb
|
880
908
|
- lib/one_gadget/builds/libc-2.30-f07144cc3d0ac50415f3a2e061be6da672c914ba.rb
|
881
909
|
- lib/one_gadget/builds/libc-2.30-f44469d65b4efd2e5951513ed7cbf773657f1283.rb
|
910
|
+
- lib/one_gadget/builds/libc-2.31-012f3f1e614cb9c829b8d1590d228cc6a9506a03.rb
|
882
911
|
- lib/one_gadget/builds/libc-2.31-05dd8f45f3f82869e5ca8cb214475816e41f469a.rb
|
912
|
+
- lib/one_gadget/builds/libc-2.31-099b9225bcb0d019d9d60884be583eb31bb5f44e.rb
|
913
|
+
- lib/one_gadget/builds/libc-2.31-0d1b3211736c4ca528a32ea0d565d41a2ede3b58.rb
|
883
914
|
- lib/one_gadget/builds/libc-2.31-0df979b8b244294bbc29bbe8f7f6dd6bf89c6820.rb
|
915
|
+
- lib/one_gadget/builds/libc-2.31-12e412d1938ec3ff79751f0e85f31bc52f7e3722.rb
|
916
|
+
- lib/one_gadget/builds/libc-2.31-2886817dc06a87bdeef50544c0d6c12de13a8148.rb
|
917
|
+
- lib/one_gadget/builds/libc-2.31-4d4d0853eb075b8b0cfaee0aee7cdf4254a3e877.rb
|
918
|
+
- lib/one_gadget/builds/libc-2.31-58a58f2fcdafddacb4a08439ea2ee163ff645d1d.rb
|
884
919
|
- lib/one_gadget/builds/libc-2.31-634252e0c5f8b03957a2e529719d4101699a894a.rb
|
920
|
+
- lib/one_gadget/builds/libc-2.31-6b143503744b9d6c22e479941488d6a9e6e3f1c5.rb
|
885
921
|
- lib/one_gadget/builds/libc-2.31-6c6ea8a57519f219a10c9d6a6d199dd813680226.rb
|
922
|
+
- lib/one_gadget/builds/libc-2.31-6dbad1709854c527793f6401666e45a791b7c793.rb
|
886
923
|
- lib/one_gadget/builds/libc-2.31-6fe07009bc57e6917030d052370d8bed414dd7c0.rb
|
887
924
|
- lib/one_gadget/builds/libc-2.31-78702aff0796336ccdd432310ba6f84c728c9b3c.rb
|
925
|
+
- lib/one_gadget/builds/libc-2.31-85d7bb2dad0f8172d1c02c0311a00c4695933beb.rb
|
888
926
|
- lib/one_gadget/builds/libc-2.31-8614995a8f0152ad4b1b45e28070588546ca7ac8.rb
|
927
|
+
- lib/one_gadget/builds/libc-2.31-8629fa2eea681f639a0c18305d4548850dde3450.rb
|
928
|
+
- lib/one_gadget/builds/libc-2.31-94761ae31db09ce9140ca55cb6986a5ea9110abc.rb
|
929
|
+
- lib/one_gadget/builds/libc-2.31-9fdb74e7b217d06c93172a8243f8547f947ee6d1.rb
|
889
930
|
- lib/one_gadget/builds/libc-2.31-a9053cb60c51ead85c68c941ca4d02f9381844f9.rb
|
890
931
|
- lib/one_gadget/builds/libc-2.31-b61d34c10e608722a90d339bd9a7ff28b18cd501.rb
|
932
|
+
- lib/one_gadget/builds/libc-2.31-c9d56de82ddd00d822d6100034f3075ef1709cd2.rb
|
891
933
|
- lib/one_gadget/builds/libc-2.31-cdaf4c7a78acdea7ede78ea0240a3d8d5833110f.rb
|
934
|
+
- lib/one_gadget/builds/libc-2.31-e67e80e70619717709e3180e552a11a285036a54.rb
|
892
935
|
- lib/one_gadget/builds/libc-2.31-eb3c5cf73a0a6b7f2b3895a56dbc443806700971.rb
|
893
936
|
- lib/one_gadget/builds/libc-2.31-f3aa1ef59e51e64ff8438f46d225e4ae256c1b03.rb
|
894
937
|
- lib/one_gadget/builds/libc-2.31-f3ff3fda80b817c464a56eed59ff09dc864eaeb0.rb
|
938
|
+
- lib/one_gadget/builds/libc-2.31-fb7626dd8b8a50f7685920487e992528834f6775.rb
|
895
939
|
- lib/one_gadget/builds/libc-2.32-0e5c8d8738927eb715941480b3726fa764cc50ed.rb
|
940
|
+
- lib/one_gadget/builds/libc-2.32-1e3fb06b8c86b5e282e3e11bd207d399fb4952e2.rb
|
896
941
|
- lib/one_gadget/builds/libc-2.32-7ec3e74da842ca3c6a9ba20b21303ce1bc7a45af.rb
|
942
|
+
- lib/one_gadget/builds/libc-2.32-7fba7abef941659c229c2636aa0905c28652ee3f.rb
|
943
|
+
- lib/one_gadget/builds/libc-2.32-82f6b69e698bb579baefb35a3fb0346632fa2c4d.rb
|
944
|
+
- lib/one_gadget/builds/libc-2.32-87f011a7e4cc3fc60a54d0d3dd690e7438decc8d.rb
|
945
|
+
- lib/one_gadget/builds/libc-2.32-92199dd358616182fb49c992330fb05e42eaa423.rb
|
946
|
+
- lib/one_gadget/builds/libc-2.32-9d60d4bd625a7fe2439db781a5fc91bb69684903.rb
|
897
947
|
- lib/one_gadget/builds/libc-2.32-a75b0c335a4987f12d17d3b4adb8dc430432b082.rb
|
948
|
+
- lib/one_gadget/builds/libc-2.32-ac287babd169c70013b752da2713dfb96d9a503f.rb
|
949
|
+
- lib/one_gadget/builds/libc-2.32-aebd80372a00285a5c486ef72917f935eb8f91be.rb
|
950
|
+
- lib/one_gadget/builds/libc-2.32-bd0e9dc4e27475b5ab7dc59141daaa2626b8a760.rb
|
951
|
+
- lib/one_gadget/builds/libc-2.32-bddeb6374fc99723cef3b3baafe48ac78fce13b4.rb
|
952
|
+
- lib/one_gadget/builds/libc-2.32-cb91dd613d38b806a16bed1b364c084ad63d1a1f.rb
|
953
|
+
- lib/one_gadget/builds/libc-2.32-d3f1cf7f55b985fd6d989880ec3599724fe40a26.rb
|
898
954
|
- lib/one_gadget/builds/libc-2.32-e13b24f94b260dd6394bdb2433d2a78e37078d5c.rb
|
955
|
+
- lib/one_gadget/builds/libc-2.32-e1596c76d0d93d8a36378ba976f034f140618d59.rb
|
956
|
+
- lib/one_gadget/builds/libc-2.32-f45b67ab28af1581cba8e4713e0fd3b2bc004b2e.rb
|
957
|
+
- lib/one_gadget/builds/libc-2.33-18edf6b683a2f9768cc0ee9cc64ae6fbb545deb2.rb
|
958
|
+
- lib/one_gadget/builds/libc-2.33-1c943bf313b5b4546e47b830e70de6bbd6a0ba57.rb
|
959
|
+
- lib/one_gadget/builds/libc-2.33-2b48299781548c9bc452eac6df39902547c884ed.rb
|
960
|
+
- lib/one_gadget/builds/libc-2.33-37169e68b33cad12e272bb4896d71fd0d4fd98bb.rb
|
961
|
+
- lib/one_gadget/builds/libc-2.33-54a6e404e7dc1de7c1434a00b7b1ad325b81f22a.rb
|
962
|
+
- lib/one_gadget/builds/libc-2.33-7983d313db4a441a3762c8861ca405aa0331c0c8.rb
|
963
|
+
- lib/one_gadget/builds/libc-2.33-8fdc2b2c65f3d782e52c01b546399eee8aa466dc.rb
|
964
|
+
- lib/one_gadget/builds/libc-2.33-9143da129b44b931a1c180e2b103e993dd2474fd.rb
|
965
|
+
- lib/one_gadget/builds/libc-2.33-97c8d90bd86bc698d156630e8803de433a640090.rb
|
966
|
+
- lib/one_gadget/builds/libc-2.33-9bf4c513db255ab7248cef9f0f96b4403df29852.rb
|
967
|
+
- lib/one_gadget/builds/libc-2.33-9e592d3efa165bc2bab8b40426370bd50cb0b027.rb
|
968
|
+
- lib/one_gadget/builds/libc-2.33-abf3b2a9815c0cd6e4280cd99474d34102804eb2.rb
|
969
|
+
- lib/one_gadget/builds/libc-2.33-b046eecd056a0c30995703f6cfca7a8e3a9ef5fa.rb
|
970
|
+
- lib/one_gadget/builds/libc-2.33-b2262bfa6f1bffd1e9ddc845276dfaebb7c8f0b9.rb
|
971
|
+
- lib/one_gadget/builds/libc-2.33-f462ab2b79c7f29fb866da6e087e45261570a09c.rb
|
972
|
+
- lib/one_gadget/builds/libc-2.33-f4af69206091c7f14a941f2dd77a79a7682a1184.rb
|
973
|
+
- lib/one_gadget/builds/libc-2.34-140609514178a4bb96a3cd44ffdfede398a77610.rb
|
974
|
+
- lib/one_gadget/builds/libc-2.34-25594d4b6cbecda86ec968fa940c6c09937db70f.rb
|
975
|
+
- lib/one_gadget/builds/libc-2.34-387920279e1c7892042ff27d76315d55e4651db9.rb
|
976
|
+
- lib/one_gadget/builds/libc-2.34-7e46fbc4d85f5df8b6f18630787ad281786a3512.rb
|
977
|
+
- lib/one_gadget/builds/libc-2.34-8d631c824a37b236d1dc9686b224a573fd6048b4.rb
|
978
|
+
- lib/one_gadget/builds/libc-2.34-b8037b6260865346802321dd2256b8ad1d857e63.rb
|
979
|
+
- lib/one_gadget/builds/libc-2.34-ba4777827fe1fb729ca35acd99c8013936172a0d.rb
|
980
|
+
- lib/one_gadget/builds/libc-2.34-f0fc29165cbe6088c0e1adf03b0048fbecbc003a.rb
|
981
|
+
- lib/one_gadget/builds/libc-2.35-89c3cb85f9e55046776471fed05ec441581d1969.rb
|
982
|
+
- lib/one_gadget/builds/libc-2.35-ab265082cac9486923c709d48ee5dde080e243ff.rb
|
983
|
+
- lib/one_gadget/builds/libc-2.35-c376d41cff4473142a97ac1ff1eab433859dc3d4.rb
|
984
|
+
- lib/one_gadget/builds/libc-2.35-dfca8b65dd2d2ca67f70dc7a556a6cfa8ba96ed8.rb
|
899
985
|
- lib/one_gadget/cli.rb
|
900
986
|
- lib/one_gadget/emulators/aarch64.rb
|
901
987
|
- lib/one_gadget/emulators/amd64.rb
|
@@ -941,7 +1027,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
941
1027
|
- !ruby/object:Gem::Version
|
942
1028
|
version: '0'
|
943
1029
|
requirements: []
|
944
|
-
rubygems_version: 3.1.
|
1030
|
+
rubygems_version: 3.1.6
|
945
1031
|
signing_key:
|
946
1032
|
specification_version: 4
|
947
1033
|
summary: one_gadget
|