ronin-support 1.1.0.rc1 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/ChangeLog.md +10 -1
- data/lib/ronin/support/encoding/js.rb +15 -9
- data/lib/ronin/support/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7f1b0e8bacb6f9b93bb734ed99c62d494589eba2032a0e491a5ebc45e253b50e
|
4
|
+
data.tar.gz: ac354bfbfdf4b33bd3ee5780b9cf2d35ccd8f18d0df8d6b86229bc851f7edbc4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1697424078c60509675c973d68f527963a0d93b4a69bb3c5d7bd729fc4e26792095bdc618caee10c91e829318ba44e6fd6cf4a0855ef0cdf973cf11fa67eef2a
|
7
|
+
data.tar.gz: 854e36a7f5d30a274c0fdc3be39d12223327a51f092e54103ea6c87057ca0b38dcb355d3a6c36a7cc32be50dbf81323f5c59ff56de5451bf6670957e1635e188
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby-3.
|
1
|
+
ruby-3.3
|
data/ChangeLog.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
### 1.1.0 / 2024-
|
1
|
+
### 1.1.0 / 2024-07-22
|
2
2
|
|
3
3
|
* Added {Ronin::Support::Binary::CTypes::OS::Android}.
|
4
4
|
* Added {Ronin::Support::Binary::CTypes::OS::AppleIOS}.
|
@@ -109,6 +109,15 @@
|
|
109
109
|
{Ronin::Support::Network::HTTP}, and
|
110
110
|
{Ronin::Support::Network::HTTP::Mixin} methods.
|
111
111
|
|
112
|
+
### 1.0.7 / 2024-07-13
|
113
|
+
|
114
|
+
* Improved the performance of {Ronin::Support::Encoding::JS.unescape} and
|
115
|
+
{String#js_unescape} by 2x.
|
116
|
+
* Correctly parse Unicode surrogate character pairs in JavaScript
|
117
|
+
strings (ex: `"\uD83D\uDE80"`) in {Ronin::Support::Encoding::JS.unescape},
|
118
|
+
{String#js_unescape}, {Ronin::Support::Encoding::JS.unquote}, and
|
119
|
+
{String#js_unquote}.
|
120
|
+
|
112
121
|
### 1.0.6 / 2024-06-19
|
113
122
|
|
114
123
|
* Fixed error messages in {Ronin::Support::Encoding::Base64.encode} and
|
@@ -183,16 +183,22 @@ module Ronin
|
|
183
183
|
#
|
184
184
|
def self.unescape(data)
|
185
185
|
unescaped = String.new(encoding: Encoding::UTF_8)
|
186
|
+
scanner = StringScanner.new(data)
|
186
187
|
|
187
|
-
|
188
|
-
unescaped <<
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
188
|
+
until scanner.eos?
|
189
|
+
unescaped << if (backslash_escape = scanner.scan(/\\[btnfr'"\\]/))
|
190
|
+
BACKSLASHED_CHARS[backslash_escape]
|
191
|
+
elsif (surrogate_pair = scanner.scan(/\\u[dD][890abAB][0-9a-fA-F]{2}\\u[dD][cdefCDEF][0-9a-fA-F]{2}/))
|
192
|
+
hi = surrogate_pair[2..6].to_i(16)
|
193
|
+
lo = surrogate_pair[8..12].to_i(16)
|
194
|
+
|
195
|
+
(0x1_0000 + ((hi - 0xd800) * 0x400) + (lo - 0xdc00))
|
196
|
+
elsif (unicode_escape = scanner.scan(/[\\%]u[0-9a-fA-F]{1,4}/))
|
197
|
+
unicode_escape[2..].to_i(16)
|
198
|
+
elsif (hex_escape = scanner.scan(/[\\%][0-9a-fA-F]{1,2}/))
|
199
|
+
hex_escape[1..].to_i(16)
|
200
|
+
else
|
201
|
+
scanner.getch
|
196
202
|
end
|
197
203
|
end
|
198
204
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ronin-support
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Postmodern
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-07-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chars
|
@@ -481,7 +481,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
481
481
|
- !ruby/object:Gem::Version
|
482
482
|
version: '0'
|
483
483
|
requirements: []
|
484
|
-
rubygems_version: 3.
|
484
|
+
rubygems_version: 3.5.11
|
485
485
|
signing_key:
|
486
486
|
specification_version: 4
|
487
487
|
summary: A support library for ronin-rb.
|