ronin-support 1.0.0.beta1 → 1.0.0.beta2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a4c0497bcfff1b6974a0a158789ca21a7c3846e07d84886cc6cc510362ac2167
4
- data.tar.gz: e66f1e80259ea4d499413b8b467a18a295b367d334e6cff21b830bc37cf6a59d
3
+ metadata.gz: 5d96039ef4f773da9342b3d259bf962d9f55a905e14059d63b8ff6d083e48a48
4
+ data.tar.gz: c5bf732c0dfa506ccf45f212e041c5341d7b01c95b2cdd9ea7bb0c8ac096d84e
5
5
  SHA512:
6
- metadata.gz: e7ef5cbb4321d71fc9b6ea54eb6bef5b281a5918289a0c8370f6a3f9cf7809a2ea06d2ff84991330c9e9494c09bcc1cad5b86641ed01827170f93692b44114c7
7
- data.tar.gz: 78e0d4a25719229fc6ac45bb38e08436740fb7c85e7258d28be6547b8def9dc47f1ca0ba6df4fcb87cedac4136289f24a50281eefad6ee01cf1953a8d7a09679
6
+ metadata.gz: 025746e89756222d9feb09d87a02bf76ccf82df466a5e605e63ae01676cb3f0feec9084f9b32b1f5ec7dc85f7310863bc739f07b6d86e3b3efe16f05d67cd653
7
+ data.tar.gz: 2cba1d2ec2e473136650a41cbc5e6703c326278f206144df0afa7a3316bf445b26948e95c22261f725d8efcd01142895b229ce9e835afa52549eaea119abe1e5
data/ChangeLog.md CHANGED
@@ -359,9 +359,11 @@
359
359
  {Ronin::Support::Network} module.
360
360
  * Removed `Net` core-exts.
361
361
  * Removed `Ronin::Support::Binary::Template.translate`.
362
+ * Removed `Ronin::Templates` in favor of {Ronin::Support::Text::ERB}.
362
363
  * Removed `ssl_server` and `ssl_server_session` in favor of
363
364
  {Ronin::Support::Network::SSL::Mixin#ssl_server_socket ssl_server_socket}.
364
365
  * Removed `String#depack` in favor of overriding {String#unpack}.
366
+ * Also override {String#unpack1} to match the functionality of {String#unpack}.
365
367
 
366
368
  [wordlist]: https://github.com/postmodern/wordlist.rb#readme
367
369
  [ronin-core]: https://github.com/ronin-rb/ronin-core#readme
data/README.md CHANGED
@@ -91,6 +91,7 @@ It's like [pwntools] combined with [activesupport].
91
91
  * Generating typos.
92
92
  * Generating homoglyphs.
93
93
  * Regexs for matching/extracting common types of data.
94
+ * Small memory footprint (~46Kb).
94
95
  * Has 95% documentation coverage.
95
96
  * Has 93% test coverage.
96
97
 
@@ -118,7 +119,7 @@ puts data.base64_decode
118
119
  ```
119
120
 
120
121
  For more examples of the convenience methods provided by ronin-support,
121
- please see [Everyday Ronin].
122
+ please see the [API documentation](https://ronin-rb.dev/docs/ronin-support).
122
123
 
123
124
  ## Requirements
124
125
 
@@ -170,11 +171,10 @@ You should have received a copy of the GNU Lesser General Public License
170
171
  along with ronin-support. If not, see <https://www.gnu.org/licenses/>.
171
172
 
172
173
  [ronin-rb]: https://ronin-rb.dev
173
- [Everyday Ronin]: https://ronin-rb.dev/guides/everyday_ronin.html
174
174
  [Ruby]: https://www.ruby-lang.org/
175
175
 
176
- [pwntools]: https://github.com/Gallopsled/pwntools
177
- [activesupport]: https://github.com/rails/rails/tree/main/activesupport#readme
176
+ [pwntools]: https://github.com/Gallopsled/pwntools#readme
177
+ [activesupport]: https://guides.rubyonrails.org/active_support_core_extensions.html
178
178
 
179
179
  [chars]: https://github.com/postmodern/chars#readme
180
180
  [hexdump]: https://github.com/postmodern/hexdump#readme
data/gemspec.yml CHANGED
@@ -17,10 +17,10 @@ homepage: https://ronin-rb.dev
17
17
  has_yard: true
18
18
 
19
19
  metadata:
20
- documentation_uri: https://ronin-rb.dev/docs/ronin-support/frames
20
+ documentation_uri: https://ronin-rb.dev/docs/ronin-support
21
21
  source_code_uri: https://github.com/ronin-rb/ronin-support
22
22
  bug_tracker_uri: https://github.com/ronin-rb/ronin-support/issues
23
- changelog_uri: https://github.com/ronin-rb/ronin-support/blob/master/ChangeLog.md
23
+ changelog_uri: https://github.com/ronin-rb/ronin-support/blob/main/ChangeLog.md
24
24
  rubygems_mfa_required: 'true'
25
25
 
26
26
  required_ruby_version: ">= 3.0.0"
@@ -18,6 +18,7 @@
18
18
 
19
19
  require 'ronin/support/binary/core_ext/integer'
20
20
  require 'ronin/support/binary/template'
21
+ require 'ronin/support/binary/ctypes'
21
22
  require 'ronin/support/binary/bit_flip'
22
23
 
23
24
  class String
@@ -74,6 +75,52 @@ class String
74
75
  end
75
76
  end
76
77
 
78
+ alias unpack1_original unpack1
79
+
80
+ #
81
+ # Unpacks a single value from the String.
82
+ #
83
+ # @param [String, Symbol] argument
84
+ # The `String#unpack` format String (ex: `L<`) or a
85
+ # {Ronin::Support::Binary::CTypes} type name (ex: `:uint32_le`).
86
+ #
87
+ # @param [Hash{Symbol => Object}] kwargs
88
+ # Additional keyword arguments for
89
+ # {Ronin::Support::Binary::Template#initialize}.
90
+ #
91
+ # @option kwargs [:little, :big, :net, nil] :endian
92
+ # The desired endianness of the packed data.
93
+ #
94
+ # @option kwargs [:x86, :x86_64, :ppc, :ppc64,
95
+ # :arm, :arm_be, :arm64, :arm64_be,
96
+ # :mips, :mips_le, :mips64, :mips64_le, nil] :arch
97
+ # The desired architecture that the data was packed for.
98
+ #
99
+ # @return [Integer, Float, String]
100
+ # The unpacked value.
101
+ #
102
+ # @raise [ArgumentError]
103
+ # The given argument was not a String or a Symbol, or the given C type is
104
+ # unknown.
105
+ #
106
+ # @since 1.0.0
107
+ #
108
+ # @api public
109
+ #
110
+ def unpack1(argument,**kwargs)
111
+ case argument
112
+ when String
113
+ unpack1_original(argument)
114
+ when Symbol
115
+ platform = Ronin::Support::Binary::CTypes.platform(**kwargs)
116
+ type = platform[argument]
117
+
118
+ unpack1_original(type.pack_string)
119
+ else
120
+ raise(ArgumentError,"argument must be either a String or a Symbol: #{argument.inspect}")
121
+ end
122
+ end
123
+
77
124
  #
78
125
  # Enumerates over every bit flip of every byte in the string.
79
126
  #
@@ -22,6 +22,7 @@ require 'ronin/support/core_ext/integer'
22
22
  require 'ronin/support/core_ext/ipaddr'
23
23
  require 'ronin/support/core_ext/resolv'
24
24
  require 'ronin/support/core_ext/kernel'
25
+ require 'ronin/support/binary/core_ext'
25
26
  require 'ronin/support/compression/core_ext'
26
27
  require 'ronin/support/archive/core_ext'
27
28
  require 'ronin/support/crypto/core_ext'
@@ -141,7 +141,7 @@ module Ronin
141
141
  # Regular expression to match any single-line or multi-line comments.
142
142
  #
143
143
  # @since 1.0.0
144
- COMMENT = /#{SHELL_COMMENT}|#{C_COMMENT}/
144
+ COMMENT = /#{SHELL_STYLE_COMMENT}|#{C_STYLE_COMMENT}/
145
145
  end
146
146
  end
147
147
  end
@@ -20,6 +20,7 @@ require 'ronin/support/text/patterns/language'
20
20
  require 'ronin/support/text/patterns/numeric'
21
21
  require 'ronin/support/text/patterns/credentials'
22
22
  require 'ronin/support/text/patterns/crypto'
23
+ require 'ronin/support/text/patterns/file_system'
23
24
  require 'ronin/support/text/patterns/network'
24
25
  require 'ronin/support/text/patterns/pii'
25
26
  require 'ronin/support/text/patterns/source_code'
@@ -19,6 +19,6 @@
19
19
  module Ronin
20
20
  module Support
21
21
  # ronin-support version
22
- VERSION = '1.0.0.beta1'
22
+ VERSION = '1.0.0.beta2'
23
23
  end
24
24
  end
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.0.0.beta1
4
+ version: 1.0.0.beta2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Postmodern
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-01 00:00:00.000000000 Z
11
+ date: 2023-01-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chars
@@ -446,10 +446,10 @@ homepage: https://ronin-rb.dev
446
446
  licenses:
447
447
  - LGPL-3.0
448
448
  metadata:
449
- documentation_uri: https://ronin-rb.dev/docs/ronin-support/frames
449
+ documentation_uri: https://ronin-rb.dev/docs/ronin-support
450
450
  source_code_uri: https://github.com/ronin-rb/ronin-support
451
451
  bug_tracker_uri: https://github.com/ronin-rb/ronin-support/issues
452
- changelog_uri: https://github.com/ronin-rb/ronin-support/blob/master/ChangeLog.md
452
+ changelog_uri: https://github.com/ronin-rb/ronin-support/blob/main/ChangeLog.md
453
453
  rubygems_mfa_required: 'true'
454
454
  post_install_message:
455
455
  rdoc_options: []