ronin-code-asm 1.0.0.beta1 → 1.0.0
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 +1 -0
- data/.yardopts +1 -1
- data/README.md +2 -1
- data/gemspec.yml +2 -2
- data/lib/ronin/code/asm/archs/amd64.rb +2 -2
- data/lib/ronin/code/asm/archs/x86.rb +2 -2
- data/lib/ronin/code/asm/archs.rb +1 -1
- 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 +1 -1
- data/lib/ronin/code/asm/memory_operand.rb +1 -1
- data/lib/ronin/code/asm/os/freebsd.rb +1 -1
- data/lib/ronin/code/asm/os/linux.rb +1 -1
- data/lib/ronin/code/asm/os/os.rb +1 -1
- data/lib/ronin/code/asm/os.rb +1 -1
- data/lib/ronin/code/asm/program.rb +6 -6
- data/lib/ronin/code/asm/register.rb +2 -2
- 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 +1 -1
- data/ronin-code-asm.gemspec +2 -1
- metadata +5 -30
- 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: 7ad5a87365920a6f38b31e9ea268d2c2b4e735a2e4386a3aa0579cd00c0fdf16
|
4
|
+
data.tar.gz: 7d56cd03b8001a61ef64d9feb30378e6c315ebf191d066b8565321257a288289
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 39999f88ef21563cb802fe25caf26cd31f32e78610c46f343ade50d081a399247f9a37d0d53466db58fcc99ea65f5e2a67b6c1cc5c6ae31f18c7416d64f55ef4
|
7
|
+
data.tar.gz: e744939e56cdc3f63129cf09bcdd3680cdb8dab885e368db8b71bda3a4e2fff56d21dd613d0d8bc1c1466793347733db08b4c9fa2f13d783ee6eceb40ed7f39d
|
data/.github/workflows/ruby.yml
CHANGED
data/.yardopts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
--markup markdown --title 'Ronin
|
1
|
+
--markup markdown --title 'Ronin::Code::ASM Documentation' --protected
|
data/README.md
CHANGED
@@ -2,6 +2,7 @@
|
|
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)
|
@@ -146,7 +147,7 @@ $ gem install ronin-code-asm
|
|
146
147
|
|
147
148
|
ronin-code-asm - A Ruby DSL for crafting Assembly programs and shellcode.
|
148
149
|
|
149
|
-
Copyright (c) 2007-
|
150
|
+
Copyright (c) 2007-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
|
150
151
|
|
151
152
|
ronin-code-asm is free software: you can redistribute it and/or modify
|
152
153
|
it under the terms of the GNU Lesser General Public License as published
|
data/gemspec.yml
CHANGED
@@ -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-2023 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
|
@@ -25,7 +25,7 @@ module Ronin
|
|
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-2023 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
|
@@ -25,7 +25,7 @@ module Ronin
|
|
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
|
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-2023 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-2023 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-2023 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-2023 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-2023 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-2023 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-2023 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
|
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-2023 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
|
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-2023 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-2023 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
|
@@ -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-2023 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
|
@@ -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-2023 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-2023 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-2023 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-2023 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-2023 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-2023 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.0
|
25
|
+
VERSION = '1.0.0'
|
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-2023 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
|
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') {
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ronin-code-asm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Postmodern
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby-yasm
|
@@ -86,27 +86,14 @@ files:
|
|
86
86
|
- lib/ronin/code/asm/syntax/intel.rb
|
87
87
|
- lib/ronin/code/asm/version.rb
|
88
88
|
- ronin-code-asm.gemspec
|
89
|
-
- spec/asm_spec.rb
|
90
|
-
- spec/config_spec.rb
|
91
|
-
- spec/immediate_operand_spec.rb
|
92
|
-
- spec/instruction_spec.rb
|
93
|
-
- spec/memory_operand_spec.rb
|
94
|
-
- spec/os_spec.rb
|
95
|
-
- spec/program_spec.rb
|
96
|
-
- spec/register_spec.rb
|
97
|
-
- spec/shellcode_spec.rb
|
98
|
-
- spec/spec_helper.rb
|
99
|
-
- spec/syntax/att_spec.rb
|
100
|
-
- spec/syntax/common_spec.rb
|
101
|
-
- spec/syntax/intel_spec.rb
|
102
89
|
homepage: https://github.com/ronin-rb/ronin-code-asm#readme
|
103
90
|
licenses:
|
104
91
|
- LGPL-3.0
|
105
92
|
metadata:
|
106
|
-
documentation_uri: https://ronin-rb.dev/docs/ronin-code-asm
|
93
|
+
documentation_uri: https://ronin-rb.dev/docs/ronin-code-asm
|
107
94
|
source_code_uri: https://github.com/ronin-rb/ronin-code-asm
|
108
95
|
bug_tracker_uri: https://github.com/ronin-rb/ronin-code-asm/issues
|
109
|
-
changelog_uri: https://github.com/ronin-rb/ronin-code-asm/blob/
|
96
|
+
changelog_uri: https://github.com/ronin-rb/ronin-code-asm/blob/main/ChangeLog.md
|
110
97
|
rubygems_mfa_required: 'true'
|
111
98
|
post_install_message:
|
112
99
|
rdoc_options: []
|
@@ -128,16 +115,4 @@ rubygems_version: 3.3.26
|
|
128
115
|
signing_key:
|
129
116
|
specification_version: 4
|
130
117
|
summary: A Ruby DSL for crafting Assembly programs and Shellcode.
|
131
|
-
test_files:
|
132
|
-
- spec/asm_spec.rb
|
133
|
-
- spec/config_spec.rb
|
134
|
-
- spec/immediate_operand_spec.rb
|
135
|
-
- spec/instruction_spec.rb
|
136
|
-
- spec/memory_operand_spec.rb
|
137
|
-
- spec/os_spec.rb
|
138
|
-
- spec/program_spec.rb
|
139
|
-
- spec/register_spec.rb
|
140
|
-
- spec/shellcode_spec.rb
|
141
|
-
- spec/syntax/att_spec.rb
|
142
|
-
- spec/syntax/common_spec.rb
|
143
|
-
- spec/syntax/intel_spec.rb
|
118
|
+
test_files: []
|
data/spec/asm_spec.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'ronin/code/asm'
|
3
|
-
|
4
|
-
describe Ronin::Code::ASM do
|
5
|
-
it "must have a version" do
|
6
|
-
expect(subject.const_defined?('VERSION')).to eq(true)
|
7
|
-
end
|
8
|
-
|
9
|
-
describe ".new" do
|
10
|
-
it "must return a new Ronin::Code::ASM::Program" do
|
11
|
-
expect(subject.new(arch: :x86)).to be_kind_of(Ronin::Code::ASM::Program)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
data/spec/config_spec.rb
DELETED
@@ -1,79 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
require 'ronin/code/asm/immediate_operand'
|
4
|
-
|
5
|
-
describe Ronin::Code::ASM::ImmediateOperand do
|
6
|
-
let(:value) { 0xff }
|
7
|
-
|
8
|
-
describe "#initialize" do
|
9
|
-
context "with a width" do
|
10
|
-
let(:width) { 2 }
|
11
|
-
|
12
|
-
subject { described_class.new(value,width) }
|
13
|
-
|
14
|
-
it "must set the width" do
|
15
|
-
expect(subject.width).to eq(width)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
describe "#width" do
|
21
|
-
describe "default width for" do
|
22
|
-
context "0x100000000 .. 0xffffffffffffffff" do
|
23
|
-
subject { described_class.new(0xffffffffffffffff).width }
|
24
|
-
|
25
|
-
it { expect(subject).to be == 8 }
|
26
|
-
end
|
27
|
-
|
28
|
-
context "-0x800000000 .. -0x7fffffffffffffff" do
|
29
|
-
subject { described_class.new(-0x7fffffffffffffff).width }
|
30
|
-
|
31
|
-
it { expect(subject).to be == 8 }
|
32
|
-
end
|
33
|
-
|
34
|
-
context "0x10000 .. 0xffffffff" do
|
35
|
-
subject { described_class.new(0xffffffff).width }
|
36
|
-
|
37
|
-
it { expect(subject).to be == 4 }
|
38
|
-
end
|
39
|
-
|
40
|
-
context "-0x80000 .. -0x7fffffff" do
|
41
|
-
subject { described_class.new(-0x7fffffff).width }
|
42
|
-
|
43
|
-
it { expect(subject).to be == 4 }
|
44
|
-
end
|
45
|
-
|
46
|
-
context "0x100 .. 0xffff" do
|
47
|
-
subject { described_class.new(0xffff).width }
|
48
|
-
|
49
|
-
it { expect(subject).to be == 2 }
|
50
|
-
end
|
51
|
-
|
52
|
-
context "-0x80 .. -0x7fff" do
|
53
|
-
subject { described_class.new(-0x7fff).width }
|
54
|
-
|
55
|
-
it { expect(subject).to be == 2 }
|
56
|
-
end
|
57
|
-
|
58
|
-
context "0x0 .. 0xff" do
|
59
|
-
subject { described_class.new(0xff).width }
|
60
|
-
|
61
|
-
it { expect(subject).to be == 1 }
|
62
|
-
end
|
63
|
-
|
64
|
-
context "0x0 .. -0x7f" do
|
65
|
-
subject { described_class.new(-0x7f).width }
|
66
|
-
|
67
|
-
it { expect(subject).to be == 1 }
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
describe "#to_i" do
|
73
|
-
subject { described_class.new(value) }
|
74
|
-
|
75
|
-
it "must return the value" do
|
76
|
-
expect(subject.to_i).to eq(value)
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
data/spec/instruction_spec.rb
DELETED
@@ -1,62 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
require 'ronin/code/asm/instruction'
|
4
|
-
require 'ronin/code/asm/register'
|
5
|
-
require 'ronin/code/asm/immediate_operand'
|
6
|
-
require 'ronin/code/asm/memory_operand'
|
7
|
-
|
8
|
-
describe Ronin::Code::ASM::Instruction do
|
9
|
-
let(:register) { Ronin::Code::ASM::Register.new(:eax, 4) }
|
10
|
-
let(:immediate) { Ronin::Code::ASM::ImmediateOperand.new(0xff, 1) }
|
11
|
-
|
12
|
-
describe "#initialize" do
|
13
|
-
let(:name) { :mov }
|
14
|
-
let(:operands) { [immediate, register] }
|
15
|
-
|
16
|
-
subject { described_class.new(name,operands) }
|
17
|
-
|
18
|
-
it "must set the name" do
|
19
|
-
expect(subject.name).to eq(:mov)
|
20
|
-
end
|
21
|
-
|
22
|
-
it "must set the operands" do
|
23
|
-
expect(subject.operands).to eq(operands)
|
24
|
-
end
|
25
|
-
|
26
|
-
context "when given an Integer operand" do
|
27
|
-
let(:integer) { 0xff }
|
28
|
-
|
29
|
-
subject { described_class.new(name, [integer, register]) }
|
30
|
-
|
31
|
-
it "must wrap the operand to in a Ronin::Code::ASM::ImmediateOperand" do
|
32
|
-
expect(subject.operands[0]).to be_kind_of(Ronin::Code::ASM::ImmediateOperand)
|
33
|
-
expect(subject.operands[0].value).to eq(integer)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
context "when given a nil operand" do
|
38
|
-
subject { described_class.new(name, [nil, register]) }
|
39
|
-
|
40
|
-
it "must wrap the operand to in a Ronin::Code::ASM::ImmediateOperand" do
|
41
|
-
expect(subject.operands[0]).to be_kind_of(Ronin::Code::ASM::ImmediateOperand)
|
42
|
-
expect(subject.operands[0].value).to eq(0)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
describe "#width" do
|
48
|
-
subject { described_class.new(:mov, [immediate, register]) }
|
49
|
-
|
50
|
-
it "must return the maximum width of the operands" do
|
51
|
-
expect(subject.width).to eq(register.width)
|
52
|
-
end
|
53
|
-
|
54
|
-
context "when one of the operands does not define #width" do
|
55
|
-
subject { described_class.new(:mov, [:label, register]) }
|
56
|
-
|
57
|
-
it "must ignore them" do
|
58
|
-
expect(subject.width).to eq(register.width)
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|