pwntools 1.0.1 → 1.1.0
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.
- checksums.yaml +5 -5
- data/README.md +4 -3
- data/Rakefile +3 -1
- data/lib/pwnlib/asm.rb +172 -2
- data/lib/pwnlib/constants/constants.rb +10 -3
- data/lib/pwnlib/context.rb +1 -3
- data/lib/pwnlib/elf/elf.rb +3 -3
- data/lib/pwnlib/errors.rb +30 -0
- data/lib/pwnlib/ext/helper.rb +1 -1
- data/lib/pwnlib/logger.rb +140 -2
- data/lib/pwnlib/pwn.rb +3 -0
- data/lib/pwnlib/reg_sort.rb +1 -1
- data/lib/pwnlib/shellcraft/generators/amd64/common/infloop.rb +9 -3
- data/lib/pwnlib/shellcraft/generators/amd64/common/pushstr_array.rb +6 -2
- data/lib/pwnlib/shellcraft/generators/amd64/common/setregs.rb +6 -2
- data/lib/pwnlib/shellcraft/generators/amd64/linux/cat.rb +23 -0
- data/lib/pwnlib/shellcraft/generators/amd64/linux/execve.rb +6 -4
- data/lib/pwnlib/shellcraft/generators/amd64/linux/exit.rb +23 -0
- data/lib/pwnlib/shellcraft/generators/amd64/linux/ls.rb +6 -2
- data/lib/pwnlib/shellcraft/generators/amd64/linux/open.rb +23 -0
- data/lib/pwnlib/shellcraft/generators/amd64/linux/sh.rb +6 -2
- data/lib/pwnlib/shellcraft/generators/amd64/linux/syscall.rb +6 -4
- data/lib/pwnlib/shellcraft/generators/i386/common/infloop.rb +9 -3
- data/lib/pwnlib/shellcraft/generators/i386/common/pushstr_array.rb +6 -2
- data/lib/pwnlib/shellcraft/generators/i386/common/setregs.rb +6 -2
- data/lib/pwnlib/shellcraft/generators/i386/linux/cat.rb +23 -0
- data/lib/pwnlib/shellcraft/generators/i386/linux/execve.rb +8 -4
- data/lib/pwnlib/shellcraft/generators/i386/linux/exit.rb +23 -0
- data/lib/pwnlib/shellcraft/generators/i386/linux/ls.rb +6 -2
- data/lib/pwnlib/shellcraft/generators/i386/linux/open.rb +23 -0
- data/lib/pwnlib/shellcraft/generators/i386/linux/sh.rb +6 -2
- data/lib/pwnlib/shellcraft/generators/i386/linux/syscall.rb +8 -4
- data/lib/pwnlib/shellcraft/generators/x86/linux/cat.rb +53 -0
- data/lib/pwnlib/shellcraft/generators/x86/linux/exit.rb +33 -0
- data/lib/pwnlib/shellcraft/generators/x86/linux/open.rb +46 -0
- data/lib/pwnlib/shellcraft/shellcraft.rb +3 -2
- data/lib/pwnlib/timer.rb +5 -2
- data/lib/pwnlib/tubes/process.rb +153 -0
- data/lib/pwnlib/tubes/serialtube.rb +112 -0
- data/lib/pwnlib/tubes/sock.rb +24 -25
- data/lib/pwnlib/tubes/tube.rb +191 -39
- data/lib/pwnlib/util/packing.rb +3 -9
- data/lib/pwnlib/version.rb +1 -1
- data/test/asm_test.rb +85 -2
- data/test/constants/constants_test.rb +2 -2
- data/test/data/echo.rb +2 -7
- data/test/elf/elf_test.rb +10 -15
- data/test/files/use_pwn.rb +2 -6
- data/test/logger_test.rb +38 -0
- data/test/shellcraft/linux/cat_test.rb +86 -0
- data/test/shellcraft/linux/syscalls/exit_test.rb +56 -0
- data/test/shellcraft/linux/syscalls/open_test.rb +86 -0
- data/test/shellcraft/shellcraft_test.rb +5 -4
- data/test/test_helper.rb +22 -2
- data/test/timer_test.rb +19 -1
- data/test/tubes/process_test.rb +99 -0
- data/test/tubes/serialtube_test.rb +165 -0
- data/test/tubes/sock_test.rb +20 -21
- data/test/tubes/tube_test.rb +86 -16
- metadata +75 -13
data/test/tubes/tube_test.rb
CHANGED
@@ -60,7 +60,7 @@ class TubeTest < MiniTest::Test
|
|
60
60
|
|
61
61
|
class << t
|
62
62
|
def recv_raw(_n)
|
63
|
-
raise
|
63
|
+
raise ::Pwnlib::Errors::EndOfTubeError if io.eof?
|
64
64
|
io.read
|
65
65
|
end
|
66
66
|
|
@@ -73,13 +73,32 @@ class TubeTest < MiniTest::Test
|
|
73
73
|
end
|
74
74
|
|
75
75
|
def io
|
76
|
-
@
|
76
|
+
@io ||= Tempfile.new('pwntools_ruby_test')
|
77
|
+
end
|
78
|
+
|
79
|
+
def io_out
|
80
|
+
io
|
77
81
|
end
|
78
82
|
end
|
79
83
|
|
80
84
|
t
|
81
85
|
end
|
82
86
|
|
87
|
+
def test_not_implement
|
88
|
+
t = Tube.new
|
89
|
+
# io_out
|
90
|
+
assert_raises(NotImplementedError) { context.local(log_level: :fatal) { t.interact } }
|
91
|
+
# send_raw
|
92
|
+
assert_raises(NotImplementedError) { t.puts }
|
93
|
+
# timeout_raw=
|
94
|
+
assert_raises(NotImplementedError) { t.recv(timeout: 1) }
|
95
|
+
class << t
|
96
|
+
def timeout_raw=(_) end
|
97
|
+
end
|
98
|
+
# recv_raw
|
99
|
+
assert_raises(NotImplementedError) { t.gets }
|
100
|
+
end
|
101
|
+
|
83
102
|
def test_recv
|
84
103
|
t = hello_tube
|
85
104
|
assert_equal('Hello, world', t.recv)
|
@@ -110,11 +129,14 @@ class TubeTest < MiniTest::Test
|
|
110
129
|
assert_equal('worldHello, ', t.recvuntil(' '))
|
111
130
|
t.unrecv('Hello, world!')
|
112
131
|
assert_equal('Hello,', t.recvuntil(' wor', drop: true))
|
113
|
-
|
132
|
+
|
133
|
+
# test timeout
|
134
|
+
assert_raises(::Pwnlib::Errors::TimeoutError) { t.recvuntil('DARKHH', drop: true, timeout: 0.1) }
|
114
135
|
|
115
136
|
t = basic_tube
|
116
137
|
t.unrecv('meow')
|
117
|
-
|
138
|
+
# test EOF
|
139
|
+
assert_raises(::Pwnlib::Errors::EndOfTubeError) { t.recvuntil('DARKHH') }
|
118
140
|
assert_equal('meow', t.recv)
|
119
141
|
end
|
120
142
|
|
@@ -132,19 +154,37 @@ class TubeTest < MiniTest::Test
|
|
132
154
|
|
133
155
|
t = basic_tube
|
134
156
|
t.unrecv('Hello, world')
|
135
|
-
|
157
|
+
# test EOF
|
158
|
+
assert_raises(::Pwnlib::Errors::EndOfTubeError) { assert_equal('', t.recvline) }
|
136
159
|
assert_equal('Hello, world', t.recv)
|
137
160
|
end
|
138
161
|
|
162
|
+
def test_gets
|
163
|
+
t = Tube.new
|
164
|
+
t.unrecv("Foo\nBar\r\nBaz\n")
|
165
|
+
assert_equal("Foo\n", t.gets)
|
166
|
+
assert_equal("Bar\r\n", t.gets)
|
167
|
+
assert_equal('Baz', t.gets(drop: true))
|
168
|
+
|
169
|
+
t = hello_tube
|
170
|
+
assert_equal('Hello,', t.gets(','))
|
171
|
+
assert_equal(' world', t.gets('H', drop: true))
|
172
|
+
assert_equal('ello', t.gets(4))
|
173
|
+
assert_raises(ArgumentError) { t.gets(t) }
|
174
|
+
end
|
175
|
+
|
139
176
|
def test_recvpred
|
140
177
|
t = hello_tube
|
141
178
|
r = /H.*w/
|
142
179
|
10.times { assert_match(r, t.recvpred { |data| data =~ r }) }
|
143
180
|
r = /H.*W/
|
144
|
-
|
181
|
+
|
182
|
+
# test timeout
|
183
|
+
assert_raises(::Pwnlib::Errors::TimeoutError) { t.recvpred(timeout: 0.01) { |data| data =~ r } }
|
145
184
|
t = basic_tube
|
146
185
|
t.unrecv('darkhh')
|
147
|
-
|
186
|
+
# test EOF
|
187
|
+
assert_raises(::Pwnlib::Errors::EndOfTubeError) { t.recvpred { |data| data =~ r } }
|
148
188
|
end
|
149
189
|
|
150
190
|
def test_recvregex
|
@@ -157,11 +197,11 @@ class TubeTest < MiniTest::Test
|
|
157
197
|
|
158
198
|
def test_send
|
159
199
|
t = hello_tube
|
160
|
-
t.write('DARKHH')
|
200
|
+
assert_equal(6, t.write('DARKHH'))
|
161
201
|
assert_equal('DARKHH', t.buf)
|
162
|
-
t.write(' QQ')
|
202
|
+
assert_equal(3, t.write(' QQ'))
|
163
203
|
assert_equal('DARKHH QQ', t.buf)
|
164
|
-
t.write(333)
|
204
|
+
assert_equal(3, t.write(333))
|
165
205
|
assert_equal('DARKHH QQ333', t.buf)
|
166
206
|
|
167
207
|
context.local(log_level: 'debug') do
|
@@ -192,8 +232,38 @@ class TubeTest < MiniTest::Test
|
|
192
232
|
t = hello_tube
|
193
233
|
t.write('DARKHH')
|
194
234
|
assert_equal('DARKHH', t.buf)
|
195
|
-
t.
|
235
|
+
assert_equal(4, t.sendline(' QQ'))
|
196
236
|
assert_equal("DARKHH QQ\n", t.buf)
|
237
|
+
assert_equal(1, t.sendline(''))
|
238
|
+
assert_equal("DARKHH QQ\n\n", t.buf)
|
239
|
+
end
|
240
|
+
|
241
|
+
def test_puts
|
242
|
+
t = hello_tube
|
243
|
+
assert_equal(1, t.puts)
|
244
|
+
assert_equal("\n", t.buf)
|
245
|
+
assert_equal(17, t.puts("darkhh i4 so sad\n"))
|
246
|
+
assert_equal("\ndarkhh i4 so sad\n", t.buf)
|
247
|
+
|
248
|
+
t = hello_tube
|
249
|
+
assert_equal(14, t.puts('shik', 'hao', '', 123))
|
250
|
+
assert_equal("shik\nhao\n\n123\n", t.buf)
|
251
|
+
|
252
|
+
t = hello_tube
|
253
|
+
assert_equal(15, t.puts(['shik', '', "\n", 'hao', 123]))
|
254
|
+
assert_equal("shik\n\n\nhao\n123\n", t.buf)
|
255
|
+
assert_equal(0, t.puts([]))
|
256
|
+
assert_equal("shik\n\n\nhao\n123\n", t.buf)
|
257
|
+
|
258
|
+
t = hello_tube
|
259
|
+
assert_equal(20, t.puts(["darkhh\n\n", 'wei shi', 360]))
|
260
|
+
assert_equal("darkhh\n\nwei shi\n360\n", t.buf)
|
261
|
+
|
262
|
+
context.local(newline: '!!!') do
|
263
|
+
t = hello_tube
|
264
|
+
assert_equal(5, t.puts('hi'))
|
265
|
+
assert_equal('hi!!!', t.buf)
|
266
|
+
end
|
197
267
|
end
|
198
268
|
|
199
269
|
FLAG_FILE = File.expand_path('../data/flag', __dir__)
|
@@ -204,11 +274,11 @@ class TubeTest < MiniTest::Test
|
|
204
274
|
begin
|
205
275
|
t = basic_tube
|
206
276
|
t.interact
|
207
|
-
rescue
|
277
|
+
rescue ::Pwnlib::Errors::EndOfTubeError
|
208
278
|
t.io.rewind
|
209
279
|
assert_equal(IO.binread(FLAG_FILE), t.io.read)
|
210
280
|
end
|
211
|
-
assert_equal("[INFO] Switching to interactive mode\n", @log.string)
|
281
|
+
assert_equal("[INFO] Switching to interactive mode\n[INFO] Got EOF in interactive mode\n", @log.string)
|
212
282
|
$stdin.close
|
213
283
|
t.io.close
|
214
284
|
$stdin = save_stdin
|
@@ -222,13 +292,13 @@ class TubeTest < MiniTest::Test
|
|
222
292
|
@log.clear
|
223
293
|
begin
|
224
294
|
t = basic_tube
|
225
|
-
t.instance_variable_set(:@
|
295
|
+
t.instance_variable_set(:@io, File.new(FLAG_FILE, File::RDONLY))
|
226
296
|
t.interact
|
227
|
-
rescue
|
297
|
+
rescue ::Pwnlib::Errors::EndOfTubeError
|
228
298
|
$stdout.rewind
|
229
299
|
assert_equal(IO.binread(FLAG_FILE), $stdout.read)
|
230
300
|
end
|
231
|
-
assert_equal("[INFO] Switching to interactive mode\n", @log.string)
|
301
|
+
assert_equal("[INFO] Switching to interactive mode\n[INFO] Got EOF in interactive mode\n", @log.string)
|
232
302
|
$stdout.close
|
233
303
|
t.io.close
|
234
304
|
$stdin = save_stdin
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pwntools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- peter50216@gmail.com
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2018-08-26 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: crabstone
|
@@ -30,16 +30,22 @@ dependencies:
|
|
30
30
|
name: dentaku
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- - "
|
33
|
+
- - ">="
|
34
34
|
- !ruby/object:Gem::Version
|
35
35
|
version: 2.0.11
|
36
|
+
- - "<"
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: 3.3.0
|
36
39
|
type: :runtime
|
37
40
|
prerelease: false
|
38
41
|
version_requirements: !ruby/object:Gem::Requirement
|
39
42
|
requirements:
|
40
|
-
- - "
|
43
|
+
- - ">="
|
41
44
|
- !ruby/object:Gem::Version
|
42
45
|
version: 2.0.11
|
46
|
+
- - "<"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 3.3.0
|
43
49
|
- !ruby/object:Gem::Dependency
|
44
50
|
name: elftools
|
45
51
|
requirement: !ruby/object:Gem::Requirement
|
@@ -69,33 +75,67 @@ dependencies:
|
|
69
75
|
- !ruby/object:Gem::Version
|
70
76
|
version: '0.9'
|
71
77
|
- !ruby/object:Gem::Dependency
|
72
|
-
name:
|
78
|
+
name: method_source
|
73
79
|
requirement: !ruby/object:Gem::Requirement
|
74
80
|
requirements:
|
75
81
|
- - "~>"
|
76
82
|
- !ruby/object:Gem::Version
|
77
|
-
version: '
|
83
|
+
version: '0.9'
|
78
84
|
type: :runtime
|
79
85
|
prerelease: false
|
80
86
|
version_requirements: !ruby/object:Gem::Requirement
|
81
87
|
requirements:
|
82
88
|
- - "~>"
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0.9'
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: rainbow
|
93
|
+
requirement: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '2.2'
|
98
|
+
- - "<"
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '4.0'
|
101
|
+
type: :runtime
|
102
|
+
prerelease: false
|
103
|
+
version_requirements: !ruby/object:Gem::Requirement
|
104
|
+
requirements:
|
105
|
+
- - ">="
|
83
106
|
- !ruby/object:Gem::Version
|
84
107
|
version: '2.2'
|
108
|
+
- - "<"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '4.0'
|
85
111
|
- !ruby/object:Gem::Dependency
|
86
|
-
name:
|
112
|
+
name: ruby2ruby
|
87
113
|
requirement: !ruby/object:Gem::Requirement
|
88
114
|
requirements:
|
89
115
|
- - "~>"
|
90
116
|
- !ruby/object:Gem::Version
|
91
|
-
version: '
|
92
|
-
type: :
|
117
|
+
version: '2.4'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '2.4'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rubyserial
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0.5'
|
132
|
+
type: :runtime
|
93
133
|
prerelease: false
|
94
134
|
version_requirements: !ruby/object:Gem::Requirement
|
95
135
|
requirements:
|
96
136
|
- - "~>"
|
97
137
|
- !ruby/object:Gem::Version
|
98
|
-
version: '0.
|
138
|
+
version: '0.5'
|
99
139
|
- !ruby/object:Gem::Dependency
|
100
140
|
name: minitest
|
101
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -144,14 +184,14 @@ dependencies:
|
|
144
184
|
requirements:
|
145
185
|
- - "~>"
|
146
186
|
- !ruby/object:Gem::Version
|
147
|
-
version: '0.
|
187
|
+
version: '0.55'
|
148
188
|
type: :development
|
149
189
|
prerelease: false
|
150
190
|
version_requirements: !ruby/object:Gem::Requirement
|
151
191
|
requirements:
|
152
192
|
- - "~>"
|
153
193
|
- !ruby/object:Gem::Version
|
154
|
-
version: '0.
|
194
|
+
version: '0.55'
|
155
195
|
- !ruby/object:Gem::Dependency
|
156
196
|
name: simplecov
|
157
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -219,6 +259,7 @@ files:
|
|
219
259
|
- lib/pwnlib/context.rb
|
220
260
|
- lib/pwnlib/dynelf.rb
|
221
261
|
- lib/pwnlib/elf/elf.rb
|
262
|
+
- lib/pwnlib/errors.rb
|
222
263
|
- lib/pwnlib/ext/array.rb
|
223
264
|
- lib/pwnlib/ext/helper.rb
|
224
265
|
- lib/pwnlib/ext/integer.rb
|
@@ -237,9 +278,12 @@ files:
|
|
237
278
|
- lib/pwnlib/shellcraft/generators/amd64/common/pushstr_array.rb
|
238
279
|
- lib/pwnlib/shellcraft/generators/amd64/common/ret.rb
|
239
280
|
- lib/pwnlib/shellcraft/generators/amd64/common/setregs.rb
|
281
|
+
- lib/pwnlib/shellcraft/generators/amd64/linux/cat.rb
|
240
282
|
- lib/pwnlib/shellcraft/generators/amd64/linux/execve.rb
|
283
|
+
- lib/pwnlib/shellcraft/generators/amd64/linux/exit.rb
|
241
284
|
- lib/pwnlib/shellcraft/generators/amd64/linux/linux.rb
|
242
285
|
- lib/pwnlib/shellcraft/generators/amd64/linux/ls.rb
|
286
|
+
- lib/pwnlib/shellcraft/generators/amd64/linux/open.rb
|
243
287
|
- lib/pwnlib/shellcraft/generators/amd64/linux/sh.rb
|
244
288
|
- lib/pwnlib/shellcraft/generators/amd64/linux/syscall.rb
|
245
289
|
- lib/pwnlib/shellcraft/generators/helper.rb
|
@@ -250,9 +294,12 @@ files:
|
|
250
294
|
- lib/pwnlib/shellcraft/generators/i386/common/pushstr.rb
|
251
295
|
- lib/pwnlib/shellcraft/generators/i386/common/pushstr_array.rb
|
252
296
|
- lib/pwnlib/shellcraft/generators/i386/common/setregs.rb
|
297
|
+
- lib/pwnlib/shellcraft/generators/i386/linux/cat.rb
|
253
298
|
- lib/pwnlib/shellcraft/generators/i386/linux/execve.rb
|
299
|
+
- lib/pwnlib/shellcraft/generators/i386/linux/exit.rb
|
254
300
|
- lib/pwnlib/shellcraft/generators/i386/linux/linux.rb
|
255
301
|
- lib/pwnlib/shellcraft/generators/i386/linux/ls.rb
|
302
|
+
- lib/pwnlib/shellcraft/generators/i386/linux/open.rb
|
256
303
|
- lib/pwnlib/shellcraft/generators/i386/linux/sh.rb
|
257
304
|
- lib/pwnlib/shellcraft/generators/i386/linux/syscall.rb
|
258
305
|
- lib/pwnlib/shellcraft/generators/x86/common/common.rb
|
@@ -261,15 +308,20 @@ files:
|
|
261
308
|
- lib/pwnlib/shellcraft/generators/x86/common/pushstr.rb
|
262
309
|
- lib/pwnlib/shellcraft/generators/x86/common/pushstr_array.rb
|
263
310
|
- lib/pwnlib/shellcraft/generators/x86/common/setregs.rb
|
311
|
+
- lib/pwnlib/shellcraft/generators/x86/linux/cat.rb
|
264
312
|
- lib/pwnlib/shellcraft/generators/x86/linux/execve.rb
|
313
|
+
- lib/pwnlib/shellcraft/generators/x86/linux/exit.rb
|
265
314
|
- lib/pwnlib/shellcraft/generators/x86/linux/linux.rb
|
266
315
|
- lib/pwnlib/shellcraft/generators/x86/linux/ls.rb
|
316
|
+
- lib/pwnlib/shellcraft/generators/x86/linux/open.rb
|
267
317
|
- lib/pwnlib/shellcraft/generators/x86/linux/sh.rb
|
268
318
|
- lib/pwnlib/shellcraft/generators/x86/linux/syscall.rb
|
269
319
|
- lib/pwnlib/shellcraft/registers.rb
|
270
320
|
- lib/pwnlib/shellcraft/shellcraft.rb
|
271
321
|
- lib/pwnlib/timer.rb
|
272
322
|
- lib/pwnlib/tubes/buffer.rb
|
323
|
+
- lib/pwnlib/tubes/process.rb
|
324
|
+
- lib/pwnlib/tubes/serialtube.rb
|
273
325
|
- lib/pwnlib/tubes/sock.rb
|
274
326
|
- lib/pwnlib/tubes/tube.rb
|
275
327
|
- lib/pwnlib/util/cyclic.rb
|
@@ -313,9 +365,12 @@ files:
|
|
313
365
|
- test/memleak_test.rb
|
314
366
|
- test/reg_sort_test.rb
|
315
367
|
- test/shellcraft/infloop_test.rb
|
368
|
+
- test/shellcraft/linux/cat_test.rb
|
316
369
|
- test/shellcraft/linux/ls_test.rb
|
317
370
|
- test/shellcraft/linux/sh_test.rb
|
318
371
|
- test/shellcraft/linux/syscalls/execve_test.rb
|
372
|
+
- test/shellcraft/linux/syscalls/exit_test.rb
|
373
|
+
- test/shellcraft/linux/syscalls/open_test.rb
|
319
374
|
- test/shellcraft/linux/syscalls/syscall_test.rb
|
320
375
|
- test/shellcraft/memcpy_test.rb
|
321
376
|
- test/shellcraft/mov_test.rb
|
@@ -330,6 +385,8 @@ files:
|
|
330
385
|
- test/test_helper.rb
|
331
386
|
- test/timer_test.rb
|
332
387
|
- test/tubes/buffer_test.rb
|
388
|
+
- test/tubes/process_test.rb
|
389
|
+
- test/tubes/serialtube_test.rb
|
333
390
|
- test/tubes/sock_test.rb
|
334
391
|
- test/tubes/tube_test.rb
|
335
392
|
- test/util/cyclic_test.rb
|
@@ -358,7 +415,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
358
415
|
version: '0'
|
359
416
|
requirements: []
|
360
417
|
rubyforge_project:
|
361
|
-
rubygems_version: 2.
|
418
|
+
rubygems_version: 2.7.6
|
362
419
|
signing_key:
|
363
420
|
specification_version: 4
|
364
421
|
summary: pwntools
|
@@ -390,9 +447,12 @@ test_files:
|
|
390
447
|
- test/shellcraft/ret_test.rb
|
391
448
|
- test/shellcraft/popad_test.rb
|
392
449
|
- test/shellcraft/nop_test.rb
|
450
|
+
- test/shellcraft/linux/cat_test.rb
|
393
451
|
- test/shellcraft/linux/ls_test.rb
|
394
452
|
- test/shellcraft/linux/sh_test.rb
|
453
|
+
- test/shellcraft/linux/syscalls/open_test.rb
|
395
454
|
- test/shellcraft/linux/syscalls/syscall_test.rb
|
455
|
+
- test/shellcraft/linux/syscalls/exit_test.rb
|
396
456
|
- test/shellcraft/linux/syscalls/execve_test.rb
|
397
457
|
- test/shellcraft/shellcraft_test.rb
|
398
458
|
- test/shellcraft/pushstr_test.rb
|
@@ -412,7 +472,9 @@ test_files:
|
|
412
472
|
- test/util/lists_test.rb
|
413
473
|
- test/timer_test.rb
|
414
474
|
- test/tubes/sock_test.rb
|
475
|
+
- test/tubes/serialtube_test.rb
|
415
476
|
- test/tubes/buffer_test.rb
|
477
|
+
- test/tubes/process_test.rb
|
416
478
|
- test/tubes/tube_test.rb
|
417
479
|
- test/abi_test.rb
|
418
480
|
- test/files/use_pwnlib.rb
|