pwntools 0.1.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +88 -11
  3. data/Rakefile +5 -1
  4. data/lib/pwn.rb +9 -7
  5. data/lib/pwnlib/abi.rb +60 -0
  6. data/lib/pwnlib/asm.rb +146 -0
  7. data/lib/pwnlib/constants/constant.rb +16 -2
  8. data/lib/pwnlib/constants/constants.rb +35 -19
  9. data/lib/pwnlib/constants/linux/amd64.rb +30 -1
  10. data/lib/pwnlib/context.rb +25 -17
  11. data/lib/pwnlib/dynelf.rb +117 -54
  12. data/lib/pwnlib/elf/elf.rb +267 -0
  13. data/lib/pwnlib/ext/helper.rb +4 -4
  14. data/lib/pwnlib/logger.rb +87 -0
  15. data/lib/pwnlib/memleak.rb +58 -29
  16. data/lib/pwnlib/pwn.rb +19 -8
  17. data/lib/pwnlib/reg_sort.rb +102 -108
  18. data/lib/pwnlib/shellcraft/generators/amd64/common/common.rb +14 -0
  19. data/lib/pwnlib/shellcraft/generators/amd64/common/infloop.rb +17 -0
  20. data/lib/pwnlib/shellcraft/generators/amd64/common/memcpy.rb +31 -0
  21. data/lib/pwnlib/shellcraft/generators/amd64/common/mov.rb +127 -0
  22. data/lib/pwnlib/shellcraft/generators/amd64/common/nop.rb +16 -0
  23. data/lib/pwnlib/shellcraft/generators/amd64/common/popad.rb +27 -0
  24. data/lib/pwnlib/shellcraft/generators/amd64/common/pushstr.rb +64 -0
  25. data/lib/pwnlib/shellcraft/generators/amd64/common/pushstr_array.rb +19 -0
  26. data/lib/pwnlib/shellcraft/generators/amd64/common/ret.rb +32 -0
  27. data/lib/pwnlib/shellcraft/generators/amd64/common/setregs.rb +19 -0
  28. data/lib/pwnlib/shellcraft/generators/amd64/linux/execve.rb +21 -0
  29. data/lib/pwnlib/shellcraft/generators/amd64/linux/linux.rb +14 -0
  30. data/lib/pwnlib/shellcraft/generators/amd64/linux/ls.rb +19 -0
  31. data/lib/pwnlib/shellcraft/generators/amd64/linux/sh.rb +19 -0
  32. data/lib/pwnlib/shellcraft/generators/amd64/linux/syscall.rb +21 -0
  33. data/lib/pwnlib/shellcraft/generators/helper.rb +106 -0
  34. data/lib/pwnlib/shellcraft/generators/i386/common/common.rb +14 -0
  35. data/lib/pwnlib/shellcraft/generators/i386/common/infloop.rb +17 -0
  36. data/lib/pwnlib/shellcraft/generators/i386/common/mov.rb +90 -0
  37. data/lib/pwnlib/shellcraft/generators/i386/common/nop.rb +16 -0
  38. data/lib/pwnlib/shellcraft/generators/i386/common/pushstr.rb +39 -0
  39. data/lib/pwnlib/shellcraft/generators/i386/common/pushstr_array.rb +19 -0
  40. data/lib/pwnlib/shellcraft/generators/i386/common/setregs.rb +19 -0
  41. data/lib/pwnlib/shellcraft/generators/i386/linux/execve.rb +19 -0
  42. data/lib/pwnlib/shellcraft/generators/i386/linux/linux.rb +14 -0
  43. data/lib/pwnlib/shellcraft/generators/i386/linux/ls.rb +19 -0
  44. data/lib/pwnlib/shellcraft/generators/i386/linux/sh.rb +19 -0
  45. data/lib/pwnlib/shellcraft/generators/i386/linux/syscall.rb +19 -0
  46. data/lib/pwnlib/shellcraft/generators/x86/common/common.rb +26 -0
  47. data/lib/pwnlib/shellcraft/generators/x86/common/infloop.rb +22 -0
  48. data/lib/pwnlib/shellcraft/generators/x86/common/mov.rb +15 -0
  49. data/lib/pwnlib/shellcraft/generators/x86/common/pushstr.rb +15 -0
  50. data/lib/pwnlib/shellcraft/generators/x86/common/pushstr_array.rb +85 -0
  51. data/lib/pwnlib/shellcraft/generators/x86/common/setregs.rb +82 -0
  52. data/lib/pwnlib/shellcraft/generators/x86/linux/execve.rb +69 -0
  53. data/lib/pwnlib/shellcraft/generators/x86/linux/linux.rb +14 -0
  54. data/lib/pwnlib/shellcraft/generators/x86/linux/ls.rb +66 -0
  55. data/lib/pwnlib/shellcraft/generators/x86/linux/sh.rb +52 -0
  56. data/lib/pwnlib/shellcraft/generators/x86/linux/syscall.rb +52 -0
  57. data/lib/pwnlib/shellcraft/registers.rb +145 -0
  58. data/lib/pwnlib/shellcraft/shellcraft.rb +67 -0
  59. data/lib/pwnlib/timer.rb +60 -0
  60. data/lib/pwnlib/tubes/buffer.rb +96 -0
  61. data/lib/pwnlib/tubes/sock.rb +95 -0
  62. data/lib/pwnlib/tubes/tube.rb +270 -0
  63. data/lib/pwnlib/util/cyclic.rb +95 -94
  64. data/lib/pwnlib/util/fiddling.rb +256 -220
  65. data/lib/pwnlib/util/getdents.rb +83 -0
  66. data/lib/pwnlib/util/hexdump.rb +109 -108
  67. data/lib/pwnlib/util/lists.rb +55 -0
  68. data/lib/pwnlib/util/packing.rb +226 -228
  69. data/lib/pwnlib/util/ruby.rb +18 -0
  70. data/lib/pwnlib/version.rb +2 -1
  71. data/test/abi_test.rb +21 -0
  72. data/test/asm_test.rb +104 -0
  73. data/test/constants/constant_test.rb +1 -0
  74. data/test/constants/constants_test.rb +4 -2
  75. data/test/context_test.rb +1 -0
  76. data/test/data/echo.rb +20 -0
  77. data/test/data/elfs/Makefile +22 -0
  78. data/test/data/elfs/amd64.frelro.elf +0 -0
  79. data/test/data/elfs/amd64.frelro.pie.elf +0 -0
  80. data/test/data/elfs/amd64.nrelro.elf +0 -0
  81. data/test/data/elfs/amd64.prelro.elf +0 -0
  82. data/test/data/elfs/i386.frelro.pie.elf +0 -0
  83. data/test/data/elfs/i386.prelro.elf +0 -0
  84. data/test/data/elfs/source.cpp +19 -0
  85. data/test/data/flag +1 -0
  86. data/test/data/lib32/ld.so.2 +0 -0
  87. data/test/data/lib32/libc.so.6 +0 -0
  88. data/test/data/lib64/ld.so.2 +0 -0
  89. data/test/data/lib64/libc.so.6 +0 -0
  90. data/test/dynelf_test.rb +59 -24
  91. data/test/elf/elf_test.rb +120 -0
  92. data/test/ext_test.rb +3 -2
  93. data/test/files/use_pwnlib.rb +1 -1
  94. data/test/logger_test.rb +61 -0
  95. data/test/memleak_test.rb +4 -33
  96. data/test/reg_sort_test.rb +3 -1
  97. data/test/shellcraft/infloop_test.rb +26 -0
  98. data/test/shellcraft/linux/ls_test.rb +108 -0
  99. data/test/shellcraft/linux/sh_test.rb +119 -0
  100. data/test/shellcraft/linux/syscalls/execve_test.rb +136 -0
  101. data/test/shellcraft/linux/syscalls/syscall_test.rb +83 -0
  102. data/test/shellcraft/memcpy_test.rb +35 -0
  103. data/test/shellcraft/mov_test.rb +98 -0
  104. data/test/shellcraft/nop_test.rb +26 -0
  105. data/test/shellcraft/popad_test.rb +29 -0
  106. data/test/shellcraft/pushstr_array_test.rb +91 -0
  107. data/test/shellcraft/pushstr_test.rb +108 -0
  108. data/test/shellcraft/registers_test.rb +32 -0
  109. data/test/shellcraft/ret_test.rb +30 -0
  110. data/test/shellcraft/setregs_test.rb +62 -0
  111. data/test/shellcraft/shellcraft_test.rb +28 -0
  112. data/test/test_helper.rb +12 -1
  113. data/test/timer_test.rb +23 -0
  114. data/test/tubes/buffer_test.rb +45 -0
  115. data/test/tubes/sock_test.rb +68 -0
  116. data/test/tubes/tube_test.rb +241 -0
  117. data/test/util/cyclic_test.rb +2 -1
  118. data/test/util/fiddling_test.rb +2 -1
  119. data/test/util/getdents_test.rb +32 -0
  120. data/test/util/hexdump_test.rb +7 -9
  121. data/test/util/lists_test.rb +21 -0
  122. data/test/util/packing_test.rb +4 -3
  123. metadata +215 -25
@@ -1,10 +1,11 @@
1
1
  # encoding: ASCII-8BIT
2
2
 
3
3
  require 'test_helper'
4
+
4
5
  require 'pwnlib/util/cyclic'
5
6
 
6
7
  class CyclicTest < MiniTest::Test
7
- include ::Pwnlib::Util::Cyclic::ClassMethods
8
+ include ::Pwnlib::Util::Cyclic
8
9
 
9
10
  def test_cyclic
10
11
  assert_equal('AAABAACABBABCACBACCBBBCBCCC', cyclic(alphabet: 'ABC', n: 3))
@@ -1,10 +1,11 @@
1
1
  # encoding: ASCII-8BIT
2
2
 
3
3
  require 'test_helper'
4
+
4
5
  require 'pwnlib/util/fiddling'
5
6
 
6
7
  class FiddlingTest < MiniTest::Test
7
- include ::Pwnlib::Util::Fiddling::ClassMethods
8
+ include ::Pwnlib::Util::Fiddling
8
9
 
9
10
  def test_enhex
10
11
  assert_equal('4141313233', enhex('AA123'))
@@ -0,0 +1,32 @@
1
+ # encoding: ASCII-8BIT
2
+
3
+ require 'test_helper'
4
+
5
+ require 'pwnlib/context'
6
+ require 'pwnlib/util/getdents'
7
+
8
+ class GetdentsTest < MiniTest::Test
9
+ include ::Pwnlib::Context
10
+ include ::Pwnlib::Util::Getdents
11
+
12
+ def test_parse
13
+ context.local(arch: 'i386') do
14
+ assert_equal("REG README.md\nDIR lib\n",
15
+ parse("\x92\x22\x0e\x01\x8f\x4a\xb3\x41" \
16
+ "\x18\x00\x52\x45\x41\x44\x4d\x45" \
17
+ "\x2e\x6d\x64\x00\x30\x00\x00\x08" \
18
+ "\xb5\x10\x34\x01\xff\xff\xff\x7f" \
19
+ "\x10\x00\x6c\x69\x62\x00\x00\x04"))
20
+ end
21
+ context.local(arch: 'amd64') do
22
+ assert_equal("REG README.md\nDIR lib\n",
23
+ parse("\x92\x22\x0e\x01\x00\x00\x00\x00" \
24
+ "\x3d\xf6\x7c\x45\x8f\x4a\xb3\x41" \
25
+ "\x20\x00\x52\x45\x41\x44\x4d\x45" \
26
+ "\x2e\x6d\x64\x00\x30\x00\x00\x08" \
27
+ "\xb5\x10\x34\x01\x00\x00\x00\x00" \
28
+ "\xff\xff\xff\xff\xff\xff\xff\x7f" \
29
+ "\x18\x00\x6c\x69\x62\x00\x00\x04"))
30
+ end
31
+ end
32
+ end
@@ -1,15 +1,13 @@
1
- require 'rainbow'
1
+ # encoding: UTF-8
2
+
3
+ # This test use UTF-8 encoding for strings since the output for hexdump contains lots of UTF-8 characters.
2
4
 
3
5
  require 'test_helper'
6
+
4
7
  require 'pwnlib/util/hexdump'
5
8
 
6
9
  class HexDumpTest < MiniTest::Test
7
- include ::Pwnlib::Util::HexDump::ClassMethods
8
-
9
- def setup
10
- # Default to disable coloring for easier testing.
11
- Rainbow.enabled = false
12
- end
10
+ include ::Pwnlib::Util::HexDump
13
11
 
14
12
  def assert_lines_equal(s1, s2)
15
13
  s1l = s1.chomp.lines
@@ -151,13 +149,13 @@ class HexDumpTest < MiniTest::Test
151
149
  orig_style = HIGHLIGHT_STYLE
152
150
  begin
153
151
  $VERBOSE = nil
154
- ::Pwnlib::Util::HexDump::ClassMethods.const_set(:HIGHLIGHT_STYLE, ->(s) { "#{s}!" })
152
+ ::Pwnlib::Util::HexDump.const_set(:HIGHLIGHT_STYLE, ->(s) { "#{s}!" })
155
153
  assert_lines_equal(<<-'EOS', hexdump('abcdefghi', highlight: 'aeiou'))
156
154
  00000000 61! 62 63 64 65! 66 67 68 69! │a!bcd│e!fgh│i!│
157
155
  00000009
158
156
  EOS
159
157
  ensure
160
- ::Pwnlib::Util::HexDump::ClassMethods.const_set(:HIGHLIGHT_STYLE, orig_style)
158
+ ::Pwnlib::Util::HexDump.const_set(:HIGHLIGHT_STYLE, orig_style)
161
159
  $VERBOSE = orig_verbose
162
160
  end
163
161
  end
@@ -0,0 +1,21 @@
1
+ # encoding: ASCII-8BIT
2
+
3
+ require 'test_helper'
4
+
5
+ require 'pwnlib/util/lists'
6
+
7
+ class FiddlingTest < MiniTest::Test
8
+ include ::Pwnlib::Util::Lists
9
+
10
+ def test_slice
11
+ assert_equal(%w(A B C D), slice(1, 'ABCD'))
12
+ assert_equal(%w(AB CD E), slice(2, 'ABCDE'))
13
+ assert_equal(%w(AB CD), slice(2, 'ABCDE', underfull_action: :drop))
14
+ assert_equal(%w(AB CD EX), slice(2, 'ABCDE', underfull_action: :fill, fill_value: 'X'))
15
+ assert_equal(%w(AB CD EF), slice(2, 'ABCDEF', underfull_action: :fill, fill_value: 'X'))
16
+ err = assert_raises(ArgumentError) { slice(2, 'ABCDE', underfull_action: :pusheen) }
17
+ assert_equal('underfull_action expect to be one of :ignore, :drop, and :fill', err.message)
18
+ err = assert_raises(ArgumentError) { slice(2, 'ABCDE', underfull_action: :fill, fill_value: nil) }
19
+ assert_equal('fill_value must be a character', err.message)
20
+ end
21
+ end
@@ -1,10 +1,11 @@
1
1
  # encoding: ASCII-8BIT
2
2
 
3
3
  require 'test_helper'
4
+
4
5
  require 'pwnlib/util/packing'
5
6
 
6
7
  class PackingTest < MiniTest::Test
7
- include ::Pwnlib::Util::Packing::ClassMethods
8
+ include ::Pwnlib::Util::Packing
8
9
 
9
10
  def test_pack
10
11
  assert_equal('ABC',
@@ -115,8 +116,8 @@ class PackingTest < MiniTest::Test
115
116
  def test_up_rand
116
117
  srand(217)
117
118
  [8, 16, 32, 64].each do |sz|
118
- u = ->(*x) { public_send("u#{sz}", *x) }
119
- p = ->(*x) { public_send("p#{sz}", *x) }
119
+ u = ->(*x) { ::Pwnlib::Util::Packing.public_send("u#{sz}", *x) }
120
+ p = ->(*x) { ::Pwnlib::Util::Packing.public_send("p#{sz}", *x) }
120
121
  100.times do
121
122
  limit = (1 << sz)
122
123
  val = rand(0...limit)
metadata CHANGED
@@ -1,16 +1,73 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pwntools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - peter50216@gmail.com
8
8
  - david942j@gmail.com
9
+ - hanhan0912@gmail.com
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2016-03-23 00:00:00.000000000 Z
13
+ date: 2017-10-17 00:00:00.000000000 Z
13
14
  dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: crabstone
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: '3'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: '3'
29
+ - !ruby/object:Gem::Dependency
30
+ name: dentaku
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - "~>"
34
+ - !ruby/object:Gem::Version
35
+ version: 2.0.11
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: 2.0.11
43
+ - !ruby/object:Gem::Dependency
44
+ name: elftools
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: 1.0.1
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: 1.0.1
57
+ - !ruby/object:Gem::Dependency
58
+ name: keystone-engine
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: '0.9'
64
+ type: :runtime
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - "~>"
69
+ - !ruby/object:Gem::Version
70
+ version: '0.9'
14
71
  - !ruby/object:Gem::Dependency
15
72
  name: rainbow
16
73
  requirement: !ruby/object:Gem::Requirement
@@ -43,16 +100,16 @@ dependencies:
43
100
  name: minitest
44
101
  requirement: !ruby/object:Gem::Requirement
45
102
  requirements:
46
- - - "~>"
103
+ - - '='
47
104
  - !ruby/object:Gem::Version
48
- version: '5.8'
105
+ version: 5.10.1
49
106
  type: :development
50
107
  prerelease: false
51
108
  version_requirements: !ruby/object:Gem::Requirement
52
109
  requirements:
53
- - - "~>"
110
+ - - '='
54
111
  - !ruby/object:Gem::Version
55
- version: '5.8'
112
+ version: 5.10.1
56
113
  - !ruby/object:Gem::Dependency
57
114
  name: pry
58
115
  requirement: !ruby/object:Gem::Requirement
@@ -73,42 +130,42 @@ dependencies:
73
130
  requirements:
74
131
  - - "~>"
75
132
  - !ruby/object:Gem::Version
76
- version: '12.0'
133
+ version: '12.1'
77
134
  type: :development
78
135
  prerelease: false
79
136
  version_requirements: !ruby/object:Gem::Requirement
80
137
  requirements:
81
138
  - - "~>"
82
139
  - !ruby/object:Gem::Version
83
- version: '12.0'
140
+ version: '12.1'
84
141
  - !ruby/object:Gem::Dependency
85
142
  name: rubocop
86
143
  requirement: !ruby/object:Gem::Requirement
87
144
  requirements:
88
145
  - - "~>"
89
146
  - !ruby/object:Gem::Version
90
- version: '0.46'
147
+ version: '0.49'
91
148
  type: :development
92
149
  prerelease: false
93
150
  version_requirements: !ruby/object:Gem::Requirement
94
151
  requirements:
95
152
  - - "~>"
96
153
  - !ruby/object:Gem::Version
97
- version: '0.46'
154
+ version: '0.49'
98
155
  - !ruby/object:Gem::Dependency
99
156
  name: simplecov
100
157
  requirement: !ruby/object:Gem::Requirement
101
158
  requirements:
102
159
  - - "~>"
103
160
  - !ruby/object:Gem::Version
104
- version: '0.12'
161
+ version: '0.15'
105
162
  type: :development
106
163
  prerelease: false
107
164
  version_requirements: !ruby/object:Gem::Requirement
108
165
  requirements:
109
166
  - - "~>"
110
167
  - !ruby/object:Gem::Version
111
- version: '0.12'
168
+ version: '0.15'
112
169
  - !ruby/object:Gem::Dependency
113
170
  name: tty-platform
114
171
  requirement: !ruby/object:Gem::Requirement
@@ -142,7 +199,10 @@ description: |2
142
199
  Implement useful/easy functions first,
143
200
  try to be of ruby style and don't follow original pwntools everywhere.
144
201
  Would still try to have similar name whenever possible.
145
- email:
202
+ email:
203
+ - peter50216@gmail.com
204
+ - david942j@gmail.com
205
+ - hanhan0912@gmail.com
146
206
  executables: []
147
207
  extensions: []
148
208
  extra_rdoc_files: []
@@ -150,43 +210,134 @@ files:
150
210
  - README.md
151
211
  - Rakefile
152
212
  - lib/pwn.rb
213
+ - lib/pwnlib/abi.rb
214
+ - lib/pwnlib/asm.rb
153
215
  - lib/pwnlib/constants/constant.rb
154
216
  - lib/pwnlib/constants/constants.rb
155
217
  - lib/pwnlib/constants/linux/amd64.rb
156
218
  - lib/pwnlib/constants/linux/i386.rb
157
219
  - lib/pwnlib/context.rb
158
220
  - lib/pwnlib/dynelf.rb
221
+ - lib/pwnlib/elf/elf.rb
159
222
  - lib/pwnlib/ext/array.rb
160
223
  - lib/pwnlib/ext/helper.rb
161
224
  - lib/pwnlib/ext/integer.rb
162
225
  - lib/pwnlib/ext/string.rb
226
+ - lib/pwnlib/logger.rb
163
227
  - lib/pwnlib/memleak.rb
164
228
  - lib/pwnlib/pwn.rb
165
229
  - lib/pwnlib/reg_sort.rb
230
+ - lib/pwnlib/shellcraft/generators/amd64/common/common.rb
231
+ - lib/pwnlib/shellcraft/generators/amd64/common/infloop.rb
232
+ - lib/pwnlib/shellcraft/generators/amd64/common/memcpy.rb
233
+ - lib/pwnlib/shellcraft/generators/amd64/common/mov.rb
234
+ - lib/pwnlib/shellcraft/generators/amd64/common/nop.rb
235
+ - lib/pwnlib/shellcraft/generators/amd64/common/popad.rb
236
+ - lib/pwnlib/shellcraft/generators/amd64/common/pushstr.rb
237
+ - lib/pwnlib/shellcraft/generators/amd64/common/pushstr_array.rb
238
+ - lib/pwnlib/shellcraft/generators/amd64/common/ret.rb
239
+ - lib/pwnlib/shellcraft/generators/amd64/common/setregs.rb
240
+ - lib/pwnlib/shellcraft/generators/amd64/linux/execve.rb
241
+ - lib/pwnlib/shellcraft/generators/amd64/linux/linux.rb
242
+ - lib/pwnlib/shellcraft/generators/amd64/linux/ls.rb
243
+ - lib/pwnlib/shellcraft/generators/amd64/linux/sh.rb
244
+ - lib/pwnlib/shellcraft/generators/amd64/linux/syscall.rb
245
+ - lib/pwnlib/shellcraft/generators/helper.rb
246
+ - lib/pwnlib/shellcraft/generators/i386/common/common.rb
247
+ - lib/pwnlib/shellcraft/generators/i386/common/infloop.rb
248
+ - lib/pwnlib/shellcraft/generators/i386/common/mov.rb
249
+ - lib/pwnlib/shellcraft/generators/i386/common/nop.rb
250
+ - lib/pwnlib/shellcraft/generators/i386/common/pushstr.rb
251
+ - lib/pwnlib/shellcraft/generators/i386/common/pushstr_array.rb
252
+ - lib/pwnlib/shellcraft/generators/i386/common/setregs.rb
253
+ - lib/pwnlib/shellcraft/generators/i386/linux/execve.rb
254
+ - lib/pwnlib/shellcraft/generators/i386/linux/linux.rb
255
+ - lib/pwnlib/shellcraft/generators/i386/linux/ls.rb
256
+ - lib/pwnlib/shellcraft/generators/i386/linux/sh.rb
257
+ - lib/pwnlib/shellcraft/generators/i386/linux/syscall.rb
258
+ - lib/pwnlib/shellcraft/generators/x86/common/common.rb
259
+ - lib/pwnlib/shellcraft/generators/x86/common/infloop.rb
260
+ - lib/pwnlib/shellcraft/generators/x86/common/mov.rb
261
+ - lib/pwnlib/shellcraft/generators/x86/common/pushstr.rb
262
+ - lib/pwnlib/shellcraft/generators/x86/common/pushstr_array.rb
263
+ - lib/pwnlib/shellcraft/generators/x86/common/setregs.rb
264
+ - lib/pwnlib/shellcraft/generators/x86/linux/execve.rb
265
+ - lib/pwnlib/shellcraft/generators/x86/linux/linux.rb
266
+ - lib/pwnlib/shellcraft/generators/x86/linux/ls.rb
267
+ - lib/pwnlib/shellcraft/generators/x86/linux/sh.rb
268
+ - lib/pwnlib/shellcraft/generators/x86/linux/syscall.rb
269
+ - lib/pwnlib/shellcraft/registers.rb
270
+ - lib/pwnlib/shellcraft/shellcraft.rb
271
+ - lib/pwnlib/timer.rb
272
+ - lib/pwnlib/tubes/buffer.rb
273
+ - lib/pwnlib/tubes/sock.rb
274
+ - lib/pwnlib/tubes/tube.rb
166
275
  - lib/pwnlib/util/cyclic.rb
167
276
  - lib/pwnlib/util/fiddling.rb
277
+ - lib/pwnlib/util/getdents.rb
168
278
  - lib/pwnlib/util/hexdump.rb
279
+ - lib/pwnlib/util/lists.rb
169
280
  - lib/pwnlib/util/packing.rb
281
+ - lib/pwnlib/util/ruby.rb
170
282
  - lib/pwnlib/version.rb
283
+ - test/abi_test.rb
284
+ - test/asm_test.rb
171
285
  - test/constants/constant_test.rb
172
286
  - test/constants/constants_test.rb
173
287
  - test/context_test.rb
288
+ - test/data/echo.rb
289
+ - test/data/elfs/Makefile
290
+ - test/data/elfs/amd64.frelro.elf
291
+ - test/data/elfs/amd64.frelro.pie.elf
292
+ - test/data/elfs/amd64.nrelro.elf
293
+ - test/data/elfs/amd64.prelro.elf
294
+ - test/data/elfs/i386.frelro.pie.elf
295
+ - test/data/elfs/i386.prelro.elf
296
+ - test/data/elfs/source.cpp
297
+ - test/data/flag
298
+ - test/data/lib32/ld.so.2
299
+ - test/data/lib32/libc.so.6
300
+ - test/data/lib64/ld.so.2
301
+ - test/data/lib64/libc.so.6
174
302
  - test/data/victim.c
175
303
  - test/data/victim32
176
304
  - test/data/victim64
177
305
  - test/dynelf_test.rb
306
+ - test/elf/elf_test.rb
178
307
  - test/ext_test.rb
179
308
  - test/files/use_pwn.rb
180
309
  - test/files/use_pwnlib.rb
181
310
  - test/full_file_test.rb
311
+ - test/logger_test.rb
182
312
  - test/memleak_test.rb
183
313
  - test/reg_sort_test.rb
314
+ - test/shellcraft/infloop_test.rb
315
+ - test/shellcraft/linux/ls_test.rb
316
+ - test/shellcraft/linux/sh_test.rb
317
+ - test/shellcraft/linux/syscalls/execve_test.rb
318
+ - test/shellcraft/linux/syscalls/syscall_test.rb
319
+ - test/shellcraft/memcpy_test.rb
320
+ - test/shellcraft/mov_test.rb
321
+ - test/shellcraft/nop_test.rb
322
+ - test/shellcraft/popad_test.rb
323
+ - test/shellcraft/pushstr_array_test.rb
324
+ - test/shellcraft/pushstr_test.rb
325
+ - test/shellcraft/registers_test.rb
326
+ - test/shellcraft/ret_test.rb
327
+ - test/shellcraft/setregs_test.rb
328
+ - test/shellcraft/shellcraft_test.rb
184
329
  - test/test_helper.rb
330
+ - test/timer_test.rb
331
+ - test/tubes/buffer_test.rb
332
+ - test/tubes/sock_test.rb
333
+ - test/tubes/tube_test.rb
185
334
  - test/util/cyclic_test.rb
186
335
  - test/util/fiddling_test.rb
336
+ - test/util/getdents_test.rb
187
337
  - test/util/hexdump_test.rb
338
+ - test/util/lists_test.rb
188
339
  - test/util/packing_test.rb
189
- homepage:
340
+ homepage: https://github.com/peter50216/pwntools-ruby
190
341
  licenses:
191
342
  - MIT
192
343
  metadata: {}
@@ -211,21 +362,60 @@ signing_key:
211
362
  specification_version: 4
212
363
  summary: pwntools
213
364
  test_files:
214
- - test/files/use_pwn.rb
215
- - test/files/use_pwnlib.rb
216
- - test/dynelf_test.rb
217
- - test/ext_test.rb
218
- - test/test_helper.rb
365
+ - test/data/elfs/amd64.frelro.pie.elf
366
+ - test/data/elfs/Makefile
367
+ - test/data/elfs/amd64.frelro.elf
368
+ - test/data/elfs/i386.frelro.pie.elf
369
+ - test/data/elfs/amd64.nrelro.elf
370
+ - test/data/elfs/i386.prelro.elf
371
+ - test/data/elfs/amd64.prelro.elf
372
+ - test/data/elfs/source.cpp
373
+ - test/data/victim32
219
374
  - test/data/victim.c
220
375
  - test/data/victim64
221
- - test/data/victim32
222
- - test/reg_sort_test.rb
223
- - test/full_file_test.rb
376
+ - test/data/lib32/ld.so.2
377
+ - test/data/lib32/libc.so.6
378
+ - test/data/lib64/ld.so.2
379
+ - test/data/lib64/libc.so.6
380
+ - test/data/flag
381
+ - test/data/echo.rb
382
+ - test/asm_test.rb
383
+ - test/test_helper.rb
224
384
  - test/context_test.rb
225
- - test/constants/constant_test.rb
385
+ - test/shellcraft/pushstr_array_test.rb
386
+ - test/shellcraft/memcpy_test.rb
387
+ - test/shellcraft/registers_test.rb
388
+ - test/shellcraft/ret_test.rb
389
+ - test/shellcraft/popad_test.rb
390
+ - test/shellcraft/nop_test.rb
391
+ - test/shellcraft/linux/ls_test.rb
392
+ - test/shellcraft/linux/sh_test.rb
393
+ - test/shellcraft/linux/syscalls/syscall_test.rb
394
+ - test/shellcraft/linux/syscalls/execve_test.rb
395
+ - test/shellcraft/shellcraft_test.rb
396
+ - test/shellcraft/pushstr_test.rb
397
+ - test/shellcraft/setregs_test.rb
398
+ - test/shellcraft/infloop_test.rb
399
+ - test/shellcraft/mov_test.rb
226
400
  - test/constants/constants_test.rb
401
+ - test/constants/constant_test.rb
402
+ - test/reg_sort_test.rb
403
+ - test/logger_test.rb
227
404
  - test/memleak_test.rb
228
- - test/util/packing_test.rb
405
+ - test/util/fiddling_test.rb
229
406
  - test/util/hexdump_test.rb
407
+ - test/util/getdents_test.rb
408
+ - test/util/packing_test.rb
230
409
  - test/util/cyclic_test.rb
231
- - test/util/fiddling_test.rb
410
+ - test/util/lists_test.rb
411
+ - test/timer_test.rb
412
+ - test/tubes/sock_test.rb
413
+ - test/tubes/buffer_test.rb
414
+ - test/tubes/tube_test.rb
415
+ - test/abi_test.rb
416
+ - test/files/use_pwnlib.rb
417
+ - test/files/use_pwn.rb
418
+ - test/ext_test.rb
419
+ - test/full_file_test.rb
420
+ - test/dynelf_test.rb
421
+ - test/elf/elf_test.rb