ronin-code-asm 1.0.0.beta1 → 1.0.1
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 +4 -4
- data/.github/workflows/ruby.yml +5 -2
- data/.ruby-version +1 -1
- data/.yardopts +1 -1
- data/ChangeLog.md +7 -2
- data/Gemfile +2 -2
- data/README.md +66 -5
- data/gemspec.yml +3 -3
- data/lib/ronin/code/asm/archs/amd64.rb +3 -3
- data/lib/ronin/code/asm/archs/x86.rb +6 -6
- data/lib/ronin/code/asm/archs.rb +3 -3
- data/lib/ronin/code/asm/config.rb +1 -1
- data/lib/ronin/code/asm/immediate_operand.rb +1 -1
- data/lib/ronin/code/asm/instruction.rb +2 -2
- data/lib/ronin/code/asm/memory_operand.rb +2 -2
- data/lib/ronin/code/asm/os/freebsd.rb +2 -2
- data/lib/ronin/code/asm/os/linux.rb +2 -2
- data/lib/ronin/code/asm/os/os.rb +2 -2
- data/lib/ronin/code/asm/os.rb +4 -4
- data/lib/ronin/code/asm/program.rb +13 -13
- data/lib/ronin/code/asm/register.rb +3 -3
- data/lib/ronin/code/asm/shellcode.rb +1 -1
- data/lib/ronin/code/asm/syntax/att.rb +1 -1
- data/lib/ronin/code/asm/syntax/common.rb +1 -1
- data/lib/ronin/code/asm/syntax/intel.rb +1 -1
- data/lib/ronin/code/asm/syntax.rb +1 -1
- data/lib/ronin/code/asm/version.rb +2 -2
- data/lib/ronin/code/asm.rb +4 -4
- data/ronin-code-asm.gemspec +2 -1
- metadata +7 -32
- data/spec/asm_spec.rb +0 -14
- data/spec/config_spec.rb +0 -10
- data/spec/immediate_operand_spec.rb +0 -79
- data/spec/instruction_spec.rb +0 -62
- data/spec/memory_operand_spec.rb +0 -80
- data/spec/os_spec.rb +0 -68
- data/spec/program_spec.rb +0 -439
- data/spec/register_spec.rb +0 -112
- data/spec/shellcode_spec.rb +0 -58
- data/spec/spec_helper.rb +0 -7
- data/spec/syntax/att_spec.rb +0 -181
- data/spec/syntax/common_spec.rb +0 -42
- data/spec/syntax/intel_spec.rb +0 -174
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c607b6198dafbb61854ad277ee380c3aab8eda4e137d572973e4f416993ff26
|
4
|
+
data.tar.gz: 3570c82008d63ad0ee4d43a06cc320168b194ed8fe98ab72b81590432215c0ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f6b7401d5e5368fd1caa46b9440b6904670fd036b8f905cba9030a00f75475fe4fa0b2cc2e901466de7db87290b7bd21c90b742370255a1c86da268cd2cb03ce
|
7
|
+
data.tar.gz: 8bdb550bab9838456e316ebf94dccc1b03081f6a3471fa5246265efed30cb759e3982d0d3495c6faa4e518d327f409d8e62ebbd74c3d97e0c2c92663e5ef9197
|
data/.github/workflows/ruby.yml
CHANGED
@@ -12,15 +12,18 @@ jobs:
|
|
12
12
|
- '3.0'
|
13
13
|
- '3.1'
|
14
14
|
- '3.2'
|
15
|
-
|
15
|
+
- '3.3'
|
16
|
+
- '3.4'
|
17
|
+
- jruby
|
16
18
|
- truffleruby
|
17
19
|
name: Ruby ${{ matrix.ruby }}
|
18
20
|
steps:
|
19
|
-
- uses: actions/checkout@
|
21
|
+
- uses: actions/checkout@v4
|
20
22
|
- name: Set up Ruby
|
21
23
|
uses: ruby/setup-ruby@v1
|
22
24
|
with:
|
23
25
|
ruby-version: ${{ matrix.ruby }}
|
26
|
+
bundler-cache: true
|
24
27
|
- name: Install dependencies
|
25
28
|
run: |
|
26
29
|
sudo apt update -y && \
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby-3.
|
1
|
+
ruby-3.3
|
data/.yardopts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
--markup markdown --title 'Ronin
|
1
|
+
--markup markdown --title 'Ronin::Code::ASM Documentation' --protected
|
data/ChangeLog.md
CHANGED
@@ -1,4 +1,9 @@
|
|
1
|
-
### 1.0.
|
1
|
+
### 1.0.1 / 2025-02-14
|
2
|
+
|
3
|
+
* Use `require_relative` to improve load times.
|
4
|
+
* Documentation improvements.
|
5
|
+
|
6
|
+
### 1.0.0 / 2023-02-01
|
2
7
|
|
3
8
|
* Require `ruby` >= 3.0.0.
|
4
9
|
* Renamed the gem to `ronin-code-asm`.
|
@@ -17,7 +22,7 @@
|
|
17
22
|
|
18
23
|
mov eax, 0x41
|
19
24
|
|
20
|
-
* `Ronin::ASM::Program#byte`, `Ronin::ASM::Program#word`,
|
25
|
+
* `Ronin::ASM::Program#byte`, `Ronin::ASM::Program#word`,
|
21
26
|
`Ronin::ASM::Program#dword` and `Ronin::ASM::Program#qword` methods can now
|
22
27
|
accept `Ronin::ASM::MemoryOperand`s.
|
23
28
|
|
data/Gemfile
CHANGED
@@ -20,6 +20,6 @@ group :development do
|
|
20
20
|
gem 'yard-spellcheck', require: false
|
21
21
|
|
22
22
|
gem 'dead_end', require: false
|
23
|
-
gem 'sord', require: false
|
24
|
-
gem 'stackprof', require: false
|
23
|
+
gem 'sord', require: false, platform: :mri
|
24
|
+
gem 'stackprof', require: false, platform: :mri
|
25
25
|
end
|
data/README.md
CHANGED
@@ -2,12 +2,12 @@
|
|
2
2
|
|
3
3
|
[](https://github.com/ronin-rb/ronin-asm/actions/workflows/ruby.yml)
|
4
4
|
[](https://codeclimate.com/github/ronin-rb/ronin-asm)
|
5
|
+
[](https://badge.fury.io/rb/ronin-code-asm)
|
5
6
|
|
6
7
|
* [Source](https://github.com/ronin-rb/ronin-code-asm)
|
7
8
|
* [Issues](https://github.com/ronin-rb/ronin-code-asm/issues)
|
8
9
|
* [Documentation](https://ronin-rb.dev/docs/ronin-code-asm/frames)
|
9
10
|
* [Discord](https://discord.gg/6WAb3PsVX9) |
|
10
|
-
[Twitter](https://twitter.com/ronin_rb) |
|
11
11
|
[Mastodon](https://infosec.exchange/@ronin_rb)
|
12
12
|
|
13
13
|
## Description
|
@@ -119,7 +119,7 @@ end
|
|
119
119
|
|
120
120
|
### Syscalls
|
121
121
|
|
122
|
-
If the `:os` option is specified, then syscall numbers can be looked up via the
|
122
|
+
If the `:os` option is specified, then syscall numbers can be looked up via the
|
123
123
|
`syscalls` Hash:
|
124
124
|
|
125
125
|
```ruby
|
@@ -138,15 +138,76 @@ end
|
|
138
138
|
|
139
139
|
## Install
|
140
140
|
|
141
|
+
### Ubuntu
|
142
|
+
|
143
|
+
```shell
|
144
|
+
sudo apt install -y yasm
|
145
|
+
gem install ronin-code-asm
|
146
|
+
```
|
147
|
+
|
148
|
+
### Fedora
|
149
|
+
|
150
|
+
```shell
|
151
|
+
sudo dnf install -y yasm
|
152
|
+
gem install ronin-code-asm
|
153
|
+
```
|
154
|
+
|
155
|
+
### OpenSUSE
|
156
|
+
|
157
|
+
```shell
|
158
|
+
sudo zypper -n in -l yasm
|
159
|
+
gem install ronin-code-asm
|
160
|
+
```
|
161
|
+
|
162
|
+
### Arch
|
163
|
+
|
141
164
|
```shell
|
142
|
-
|
165
|
+
sudo pacman -Sy yasm
|
166
|
+
gem install ronin-code-asm
|
143
167
|
```
|
144
168
|
|
169
|
+
### macOS
|
170
|
+
|
171
|
+
```shell
|
172
|
+
brew install yasm
|
173
|
+
gem install ronin-code-asm
|
174
|
+
```
|
175
|
+
|
176
|
+
### FreeBSD
|
177
|
+
|
178
|
+
```shell
|
179
|
+
sudo pkg install -y yasm
|
180
|
+
gem install ronin-code-asm
|
181
|
+
```
|
182
|
+
|
183
|
+
### Gemfile
|
184
|
+
|
185
|
+
```ruby
|
186
|
+
gem 'ronin-code-asm', '~> 1.0'
|
187
|
+
```
|
188
|
+
|
189
|
+
### gemspec
|
190
|
+
|
191
|
+
```ruby
|
192
|
+
gem.add_dependency 'ronin-code-asm', '~> 1.0'
|
193
|
+
```
|
194
|
+
|
195
|
+
## Development
|
196
|
+
|
197
|
+
1. [Fork It!](https://github.com/ronin-rb/ronin-code-asm/fork)
|
198
|
+
2. Clone It!
|
199
|
+
3. `cd ronin-code-asm/`
|
200
|
+
4. `bundle install`
|
201
|
+
5. `git checkout -b my_feature`
|
202
|
+
6. Code It!
|
203
|
+
7. `bundle exec rake spec`
|
204
|
+
8. `git push origin my_feature`
|
205
|
+
|
145
206
|
## License
|
146
207
|
|
147
208
|
ronin-code-asm - A Ruby DSL for crafting Assembly programs and shellcode.
|
148
209
|
|
149
|
-
Copyright (c) 2007-
|
210
|
+
Copyright (c) 2007-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
|
150
211
|
|
151
212
|
ronin-code-asm is free software: you can redistribute it and/or modify
|
152
213
|
it under the terms of the GNU Lesser General Public License as published
|
@@ -163,4 +224,4 @@ along with ronin-code-asm. If not, see <https://www.gnu.org/licenses/>.
|
|
163
224
|
|
164
225
|
[Ruby]: https://www.ruby-lang.org
|
165
226
|
[yasm]: https://yasm.tortall.net/
|
166
|
-
[ruby-yasm]: https://github.com/
|
227
|
+
[ruby-yasm]: https://github.com/postmodern/ruby-yasm#readme
|
data/gemspec.yml
CHANGED
@@ -3,7 +3,7 @@ summary: A Ruby DSL for crafting Assembly programs and Shellcode.
|
|
3
3
|
description:
|
4
4
|
ronin-code-asm is a Ruby DSL for crafting Assembly programs and shellcode.
|
5
5
|
|
6
|
-
license: LGPL-3.0
|
6
|
+
license: LGPL-3.0-or-later
|
7
7
|
authors: Postmodern
|
8
8
|
email: postmodern.mod3@gmail.com
|
9
9
|
homepage: https://github.com/ronin-rb/ronin-code-asm#readme
|
@@ -13,10 +13,10 @@ requirements: yasm >= 0.6.0
|
|
13
13
|
required_ruby_version: ">= 3.0.0"
|
14
14
|
|
15
15
|
metadata:
|
16
|
-
documentation_uri: https://ronin-rb.dev/docs/ronin-code-asm
|
16
|
+
documentation_uri: https://ronin-rb.dev/docs/ronin-code-asm
|
17
17
|
source_code_uri: https://github.com/ronin-rb/ronin-code-asm
|
18
18
|
bug_tracker_uri: https://github.com/ronin-rb/ronin-code-asm/issues
|
19
|
-
changelog_uri: https://github.com/ronin-rb/ronin-code-asm/blob/
|
19
|
+
changelog_uri: https://github.com/ronin-rb/ronin-code-asm/blob/main/ChangeLog.md
|
20
20
|
rubygems_mfa_required: 'true'
|
21
21
|
|
22
22
|
dependencies:
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# ronin-code-asm - A Ruby DSL for crafting Assembly programs and shellcode.
|
4
4
|
#
|
5
|
-
# Copyright (c) 2007-
|
5
|
+
# Copyright (c) 2007-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
6
|
#
|
7
7
|
# ronin-code-asm is free software: you can redistribute it and/or modify
|
8
8
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -18,14 +18,14 @@
|
|
18
18
|
# along with ronin-code-asm. If not, see <https://www.gnu.org/licenses/>.
|
19
19
|
#
|
20
20
|
|
21
|
-
|
21
|
+
require_relative 'x86'
|
22
22
|
|
23
23
|
module Ronin
|
24
24
|
module Code
|
25
25
|
module ASM
|
26
26
|
module Archs
|
27
27
|
#
|
28
|
-
# Contains AMD64
|
28
|
+
# Contains AMD64 Architecture information.
|
29
29
|
#
|
30
30
|
module AMD64
|
31
31
|
include X86
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# ronin-code-asm - A Ruby DSL for crafting Assembly programs and shellcode.
|
4
4
|
#
|
5
|
-
# Copyright (c) 2007-
|
5
|
+
# Copyright (c) 2007-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
6
|
#
|
7
7
|
# ronin-code-asm is free software: you can redistribute it and/or modify
|
8
8
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -18,14 +18,14 @@
|
|
18
18
|
# along with ronin-code-asm. If not, see <https://www.gnu.org/licenses/>.
|
19
19
|
#
|
20
20
|
|
21
|
-
|
21
|
+
require_relative '../register'
|
22
22
|
|
23
23
|
module Ronin
|
24
24
|
module Code
|
25
25
|
module ASM
|
26
26
|
module Archs
|
27
27
|
#
|
28
|
-
# Contains X86
|
28
|
+
# Contains X86 Architecture information.
|
29
29
|
#
|
30
30
|
module X86
|
31
31
|
# Default word size
|
@@ -133,7 +133,7 @@ module Ronin
|
|
133
133
|
|
134
134
|
#
|
135
135
|
# Generates the instruction to set a register.
|
136
|
-
#
|
136
|
+
#
|
137
137
|
# @param [Symbol] name
|
138
138
|
# The name of the register.
|
139
139
|
#
|
@@ -146,7 +146,7 @@ module Ronin
|
|
146
146
|
|
147
147
|
#
|
148
148
|
# Generates the instruction to save a register.
|
149
|
-
#
|
149
|
+
#
|
150
150
|
# @param [Symbol] name
|
151
151
|
# The name of the register.
|
152
152
|
#
|
@@ -156,7 +156,7 @@ module Ronin
|
|
156
156
|
|
157
157
|
#
|
158
158
|
# Generates the instruction to restore a register.
|
159
|
-
#
|
159
|
+
#
|
160
160
|
# @param [Symbol] name
|
161
161
|
# The name of the register.
|
162
162
|
#
|
data/lib/ronin/code/asm/archs.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# ronin-code-asm - A Ruby DSL for crafting Assembly programs and shellcode.
|
4
4
|
#
|
5
|
-
# Copyright (c) 2007-
|
5
|
+
# Copyright (c) 2007-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
6
|
#
|
7
7
|
# ronin-code-asm is free software: you can redistribute it and/or modify
|
8
8
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -18,5 +18,5 @@
|
|
18
18
|
# along with ronin-code-asm. If not, see <https://www.gnu.org/licenses/>.
|
19
19
|
#
|
20
20
|
|
21
|
-
|
22
|
-
|
21
|
+
require_relative 'archs/x86'
|
22
|
+
require_relative 'archs/amd64'
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# ronin-code-asm - A Ruby DSL for crafting Assembly programs and shellcode.
|
4
4
|
#
|
5
|
-
# Copyright (c) 2007-
|
5
|
+
# Copyright (c) 2007-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
6
|
#
|
7
7
|
# ronin-code-asm is free software: you can redistribute it and/or modify
|
8
8
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# ronin-code-asm - A Ruby DSL for crafting Assembly programs and shellcode.
|
4
4
|
#
|
5
|
-
# Copyright (c) 2007-
|
5
|
+
# Copyright (c) 2007-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
6
|
#
|
7
7
|
# ronin-code-asm is free software: you can redistribute it and/or modify
|
8
8
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# ronin-code-asm - A Ruby DSL for crafting Assembly programs and shellcode.
|
4
4
|
#
|
5
|
-
# Copyright (c) 2007-
|
5
|
+
# Copyright (c) 2007-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
6
|
#
|
7
7
|
# ronin-code-asm is free software: you can redistribute it and/or modify
|
8
8
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -18,7 +18,7 @@
|
|
18
18
|
# along with ronin-code-asm. If not, see <https://www.gnu.org/licenses/>.
|
19
19
|
#
|
20
20
|
|
21
|
-
|
21
|
+
require_relative 'immediate_operand'
|
22
22
|
|
23
23
|
module Ronin
|
24
24
|
module Code
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# ronin-code-asm - A Ruby DSL for crafting Assembly programs and shellcode.
|
4
4
|
#
|
5
|
-
# Copyright (c) 2007-
|
5
|
+
# Copyright (c) 2007-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
6
|
#
|
7
7
|
# ronin-code-asm is free software: you can redistribute it and/or modify
|
8
8
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -18,7 +18,7 @@
|
|
18
18
|
# along with ronin-code-asm. If not, see <https://www.gnu.org/licenses/>.
|
19
19
|
#
|
20
20
|
|
21
|
-
|
21
|
+
require_relative 'register'
|
22
22
|
|
23
23
|
module Ronin
|
24
24
|
module Code
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# ronin-code-asm - A Ruby DSL for crafting Assembly programs and shellcode.
|
4
4
|
#
|
5
|
-
# Copyright (c) 2007-
|
5
|
+
# Copyright (c) 2007-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
6
|
#
|
7
7
|
# ronin-code-asm is free software: you can redistribute it and/or modify
|
8
8
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -18,7 +18,7 @@
|
|
18
18
|
# along with ronin-code-asm. If not, see <https://www.gnu.org/licenses/>.
|
19
19
|
#
|
20
20
|
|
21
|
-
|
21
|
+
require_relative '../config'
|
22
22
|
|
23
23
|
module Ronin
|
24
24
|
module Code
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# ronin-code-asm - A Ruby DSL for crafting Assembly programs and shellcode.
|
4
4
|
#
|
5
|
-
# Copyright (c) 2007-
|
5
|
+
# Copyright (c) 2007-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
6
|
#
|
7
7
|
# ronin-code-asm is free software: you can redistribute it and/or modify
|
8
8
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -18,7 +18,7 @@
|
|
18
18
|
# along with ronin-code-asm. If not, see <https://www.gnu.org/licenses/>.
|
19
19
|
#
|
20
20
|
|
21
|
-
|
21
|
+
require_relative '../config'
|
22
22
|
|
23
23
|
module Ronin
|
24
24
|
module Code
|
data/lib/ronin/code/asm/os/os.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# ronin-code-asm - A Ruby DSL for crafting Assembly programs and shellcode.
|
4
4
|
#
|
5
|
-
# Copyright (c) 2007-
|
5
|
+
# Copyright (c) 2007-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
6
|
#
|
7
7
|
# ronin-code-asm is free software: you can redistribute it and/or modify
|
8
8
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -18,7 +18,7 @@
|
|
18
18
|
# along with ronin-code-asm. If not, see <https://www.gnu.org/licenses/>.
|
19
19
|
#
|
20
20
|
|
21
|
-
|
21
|
+
require_relative '../config'
|
22
22
|
|
23
23
|
require 'yaml'
|
24
24
|
|
data/lib/ronin/code/asm/os.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# ronin-code-asm - A Ruby DSL for crafting Assembly programs and shellcode.
|
4
4
|
#
|
5
|
-
# Copyright (c) 2007-
|
5
|
+
# Copyright (c) 2007-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
6
|
#
|
7
7
|
# ronin-code-asm is free software: you can redistribute it and/or modify
|
8
8
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -18,9 +18,9 @@
|
|
18
18
|
# along with ronin-code-asm. If not, see <https://www.gnu.org/licenses/>.
|
19
19
|
#
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
21
|
+
require_relative 'os/os'
|
22
|
+
require_relative 'os/freebsd'
|
23
|
+
require_relative 'os/linux'
|
24
24
|
|
25
25
|
module Ronin
|
26
26
|
module Code
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# ronin-code-asm - A Ruby DSL for crafting Assembly programs and shellcode.
|
4
4
|
#
|
5
|
-
# Copyright (c) 2007-
|
5
|
+
# Copyright (c) 2007-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
6
|
#
|
7
7
|
# ronin-code-asm is free software: you can redistribute it and/or modify
|
8
8
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -18,12 +18,12 @@
|
|
18
18
|
# along with ronin-code-asm. If not, see <https://www.gnu.org/licenses/>.
|
19
19
|
#
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
21
|
+
require_relative 'archs'
|
22
|
+
require_relative 'os'
|
23
|
+
require_relative 'register'
|
24
|
+
require_relative 'instruction'
|
25
|
+
require_relative 'immediate_operand'
|
26
|
+
require_relative 'syntax'
|
27
27
|
|
28
28
|
require 'tempfile'
|
29
29
|
require 'yasm/program'
|
@@ -198,7 +198,7 @@ module Ronin
|
|
198
198
|
#
|
199
199
|
# Creates an operand of size 1 (byte).
|
200
200
|
#
|
201
|
-
# @param [MemoryOperand, Integer] op
|
201
|
+
# @param [MemoryOperand, Integer] op
|
202
202
|
# The value of the operand.
|
203
203
|
#
|
204
204
|
# @return [MemoryOperand, ImmediateOperand]
|
@@ -322,7 +322,7 @@ module Ronin
|
|
322
322
|
# Generic method for popping off the stack.
|
323
323
|
#
|
324
324
|
# @param [Symbol] name
|
325
|
-
# The name of the
|
325
|
+
# The name of the register.
|
326
326
|
#
|
327
327
|
# @abstract
|
328
328
|
#
|
@@ -333,7 +333,7 @@ module Ronin
|
|
333
333
|
# Generic method for clearing a register.
|
334
334
|
#
|
335
335
|
# @param [Symbol] name
|
336
|
-
# The name of the
|
336
|
+
# The name of the register.
|
337
337
|
#
|
338
338
|
# @abstract
|
339
339
|
#
|
@@ -344,7 +344,7 @@ module Ronin
|
|
344
344
|
# Generic method for setting a register.
|
345
345
|
#
|
346
346
|
# @param [Symbol] name
|
347
|
-
# The name of the
|
347
|
+
# The name of the register.
|
348
348
|
#
|
349
349
|
# @param [Register, ImmediateOperand, Integer] value
|
350
350
|
# The new value for the register.
|
@@ -358,7 +358,7 @@ module Ronin
|
|
358
358
|
# Generic method for saving a register.
|
359
359
|
#
|
360
360
|
# @param [Symbol] name
|
361
|
-
# The name of the
|
361
|
+
# The name of the register.
|
362
362
|
#
|
363
363
|
# @abstract
|
364
364
|
#
|
@@ -369,7 +369,7 @@ module Ronin
|
|
369
369
|
# Generic method for loading a register.
|
370
370
|
#
|
371
371
|
# @param [Symbol] name
|
372
|
-
# The name of the
|
372
|
+
# The name of the register.
|
373
373
|
#
|
374
374
|
# @abstract
|
375
375
|
#
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# ronin-code-asm - A Ruby DSL for crafting Assembly programs and shellcode.
|
4
4
|
#
|
5
|
-
# Copyright (c) 2007-
|
5
|
+
# Copyright (c) 2007-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
6
|
#
|
7
7
|
# ronin-code-asm is free software: you can redistribute it and/or modify
|
8
8
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -18,7 +18,7 @@
|
|
18
18
|
# along with ronin-code-asm. If not, see <https://www.gnu.org/licenses/>.
|
19
19
|
#
|
20
20
|
|
21
|
-
|
21
|
+
require_relative 'memory_operand'
|
22
22
|
|
23
23
|
module Ronin
|
24
24
|
module Code
|
@@ -71,7 +71,7 @@ module Ronin
|
|
71
71
|
end
|
72
72
|
|
73
73
|
#
|
74
|
-
#
|
74
|
+
# Subtracts from the value within the register and dereferences the
|
75
75
|
# address.
|
76
76
|
#
|
77
77
|
# @param [Integer] offset
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# ronin-code-asm - A Ruby DSL for crafting Assembly programs and shellcode.
|
4
4
|
#
|
5
|
-
# Copyright (c) 2007-
|
5
|
+
# Copyright (c) 2007-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
6
|
#
|
7
7
|
# ronin-code-asm is free software: you can redistribute it and/or modify
|
8
8
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# ronin-code-asm - A Ruby DSL for crafting Assembly programs and shellcode.
|
4
4
|
#
|
5
|
-
# Copyright (c) 2007-
|
5
|
+
# Copyright (c) 2007-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
6
|
#
|
7
7
|
# ronin-code-asm is free software: you can redistribute it and/or modify
|
8
8
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# ronin-code-asm - A Ruby DSL for crafting Assembly programs and shellcode.
|
4
4
|
#
|
5
|
-
# Copyright (c) 2007-
|
5
|
+
# Copyright (c) 2007-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
6
|
#
|
7
7
|
# ronin-code-asm is free software: you can redistribute it and/or modify
|
8
8
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# ronin-code-asm - A Ruby DSL for crafting Assembly programs and shellcode.
|
4
4
|
#
|
5
|
-
# Copyright (c) 2007-
|
5
|
+
# Copyright (c) 2007-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
6
|
#
|
7
7
|
# ronin-code-asm is free software: you can redistribute it and/or modify
|
8
8
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# ronin-code-asm - A Ruby DSL for crafting Assembly programs and shellcode.
|
4
4
|
#
|
5
|
-
# Copyright (c) 2007-
|
5
|
+
# Copyright (c) 2007-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
6
|
#
|
7
7
|
# ronin-code-asm is free software: you can redistribute it and/or modify
|
8
8
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# ronin-code-asm - A Ruby DSL for crafting Assembly programs and shellcode.
|
4
4
|
#
|
5
|
-
# Copyright (c) 2007-
|
5
|
+
# Copyright (c) 2007-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
6
|
#
|
7
7
|
# ronin-code-asm is free software: you can redistribute it and/or modify
|
8
8
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -22,7 +22,7 @@ module Ronin
|
|
22
22
|
module Code
|
23
23
|
module ASM
|
24
24
|
# ronin-code-asm version
|
25
|
-
VERSION = '1.0.
|
25
|
+
VERSION = '1.0.1'
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
data/lib/ronin/code/asm.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# ronin-code-asm - A Ruby DSL for crafting Assembly programs and shellcode.
|
4
4
|
#
|
5
|
-
# Copyright (c) 2007-
|
5
|
+
# Copyright (c) 2007-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
6
|
#
|
7
7
|
# ronin-code-asm is free software: you can redistribute it and/or modify
|
8
8
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -18,9 +18,9 @@
|
|
18
18
|
# along with ronin-code-asm. If not, see <https://www.gnu.org/licenses/>.
|
19
19
|
#
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
21
|
+
require_relative 'asm/program'
|
22
|
+
require_relative 'asm/shellcode'
|
23
|
+
require_relative 'asm/version'
|
24
24
|
|
25
25
|
module Ronin
|
26
26
|
module Code
|
data/ronin-code-asm.gemspec
CHANGED
@@ -27,6 +27,8 @@ Gem::Specification.new do |gem|
|
|
27
27
|
gem.files = `git ls-files`.split($/)
|
28
28
|
gem.files = glob[gemspec['files']] if gemspec['files']
|
29
29
|
gem.files += Array(gemspec['generated_files'])
|
30
|
+
# exclude test files from the packages gem
|
31
|
+
gem.files -= glob[gemspec['test_files'] || 'spec/{**/}*']
|
30
32
|
|
31
33
|
gem.executables = gemspec.fetch('executables') do
|
32
34
|
glob['bin/*'].map { |path| File.basename(path) }
|
@@ -34,7 +36,6 @@ Gem::Specification.new do |gem|
|
|
34
36
|
gem.default_executable = gem.executables.first if Gem::VERSION < '1.7.'
|
35
37
|
|
36
38
|
gem.extensions = glob[gemspec['extensions'] || 'ext/**/extconf.rb']
|
37
|
-
gem.test_files = glob[gemspec['test_files'] || 'spec/{**/}*_spec.rb']
|
38
39
|
gem.extra_rdoc_files = glob[gemspec['extra_doc_files'] || '*.{txt,md}']
|
39
40
|
|
40
41
|
gem.require_paths = Array(gemspec.fetch('require_paths') {
|