rex-text 0.2.50 → 0.2.52
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/.github/workflows/verify.yml +1 -0
- data/lib/rex/text/binary_manipulation.rb +3 -3
- data/lib/rex/text/hex.rb +2 -2
- data/lib/rex/text/lang.rb +23 -0
- data/lib/rex/text/version.rb +1 -1
- data.tar.gz.sig +4 -2
- metadata +3 -3
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e9814b1ad404f9ec4aec0102caf30af10fa00639bcbc6d67d3c3947ffd848229
|
4
|
+
data.tar.gz: 44ee07b97ef06aac2bc3e17ba27e6cbb2e61e7b93628e4b942196c693ac39fd2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a734eebc8ab62ca00c662b815e3ba9d2ef189f35a4b02513fe2adb0ef4d01f9142b3f4c97d08fc60274e5ee1ea3c8817e6cc9ca191deacd0030f79323b1c0357
|
7
|
+
data.tar.gz: e17248ae8403a4f4c39c8a56e3f7b3173a111d2b121d5fe350da672cb4e5d91264ee2ed7f2831bde9c8fcdc50bf9a2fdad070a810ac9a6dcec8f5837d00722cd
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
@@ -28,15 +28,15 @@ module Rex
|
|
28
28
|
# Creates a comma separated list of dwords
|
29
29
|
#
|
30
30
|
def self.to_dword(str, wrap = DefaultWrap)
|
31
|
-
code = str
|
31
|
+
code = str.dup.force_encoding('ASCII-8BIT')
|
32
32
|
alignnr = str.length % 4
|
33
33
|
if (alignnr > 0)
|
34
34
|
code << "\x00" * (4 - alignnr)
|
35
35
|
end
|
36
36
|
codevalues = Array.new
|
37
|
-
code.
|
37
|
+
code.chars.each_slice(4) do |chars4|
|
38
38
|
chars4 = chars4.join("")
|
39
|
-
dwordvalue = chars4.unpack('
|
39
|
+
dwordvalue = chars4.unpack('V')
|
40
40
|
codevalues.push(dwordvalue[0])
|
41
41
|
end
|
42
42
|
buff = ""
|
data/lib/rex/text/hex.rb
CHANGED
@@ -22,7 +22,7 @@ module Rex
|
|
22
22
|
# the regex the first time it is used and never check again. Since we
|
23
23
|
# want to know how many to capture on every instance, we do it this
|
24
24
|
# way.
|
25
|
-
return str.unpack('H*')[0].gsub(Regexp.new(".{#{count * 2}}",
|
25
|
+
return str.unpack('H*')[0].gsub(Regexp.new(".{#{count * 2}}", Regexp::NOENCODING)) { |s| prefix + s }
|
26
26
|
end
|
27
27
|
|
28
28
|
#
|
@@ -40,7 +40,7 @@ module Rex
|
|
40
40
|
# their escaped hex representation
|
41
41
|
def self.to_hex_ascii(str, prefix = "\\x", count = 1, suffix=nil)
|
42
42
|
raise ::RuntimeError, "unable to chunk into #{count} byte chunks" if ((str.length % count) > 0)
|
43
|
-
return str.unpack('H*')[0].gsub(Regexp.new(".{#{count * 2}}",
|
43
|
+
return str.unpack('H*')[0].gsub(Regexp.new(".{#{count * 2}}", Regexp::NOENCODING)) { |s|
|
44
44
|
(0x20..0x7e) === s.to_i(16) ? s.to_i(16).chr : prefix + s + suffix.to_s
|
45
45
|
}
|
46
46
|
end
|
data/lib/rex/text/lang.rb
CHANGED
@@ -45,6 +45,29 @@ module Rex
|
|
45
45
|
return "/*\n" + wordwrap(str, 0, wrap, '', '') + "*/\n"
|
46
46
|
end
|
47
47
|
|
48
|
+
#
|
49
|
+
# Converts to a masm style array of bytes
|
50
|
+
#
|
51
|
+
def self.to_masm(str, wrap = DefaultWrap, name = "")
|
52
|
+
raise ArgumentError.new('str can not be empty') if str.empty?
|
53
|
+
a = to_hex(str)
|
54
|
+
a.gsub!(/\\x/, '')
|
55
|
+
a.gsub!(/(.{2})/, '\1h,')
|
56
|
+
a.gsub!(/(.{32})/, '\1\n')
|
57
|
+
a.gsub!('\n', "\n")
|
58
|
+
a.gsub!(/^(.*),$/, 'DB \1')
|
59
|
+
a.gsub!(/([a-f].h)/, '0\1')
|
60
|
+
a.sub!(/^/, 'shellcode ')
|
61
|
+
return a
|
62
|
+
end
|
63
|
+
|
64
|
+
#
|
65
|
+
# Creates a masm style comment
|
66
|
+
#
|
67
|
+
def self.to_masm_comment(str, wrap = DefaultWrap)
|
68
|
+
return wordwrap(str, 0, wrap, '', '; ')
|
69
|
+
end
|
70
|
+
|
48
71
|
#
|
49
72
|
# Converts to a nim style array of bytes
|
50
73
|
#
|
data/lib/rex/text/version.rb
CHANGED
data.tar.gz.sig
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rex-text
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.52
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Metasploit Hackers
|
@@ -93,7 +93,7 @@ cert_chain:
|
|
93
93
|
EknWpNgVhohbot1lfVAMmIhdtOVaRVcQQixWPwprDj/ydB8ryDMDosIMcw+fkoXU
|
94
94
|
9GJsSaSRRYQ9UUkVL27b64okU8D48m8=
|
95
95
|
-----END CERTIFICATE-----
|
96
|
-
date: 2023-
|
96
|
+
date: 2023-06-14 00:00:00.000000000 Z
|
97
97
|
dependencies:
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: rake
|
@@ -185,7 +185,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
185
185
|
- !ruby/object:Gem::Version
|
186
186
|
version: '0'
|
187
187
|
requirements: []
|
188
|
-
rubygems_version: 3.
|
188
|
+
rubygems_version: 3.1.4
|
189
189
|
signing_key:
|
190
190
|
specification_version: 4
|
191
191
|
summary: Provides Text Manipulation Methods for Exploitation
|
metadata.gz.sig
CHANGED
Binary file
|