pwn 0.5.18 → 0.5.19

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: 20f360f69f9bb8c226a8b1b92a9cef61a9bf4222a06e9d8c8350204d6c90059c
4
- data.tar.gz: 79271855a779cf63846b83a37274471983edcdf0faa7848e49ffca1dbd54cb37
3
+ metadata.gz: 760af23894c1c3935f4cd7446cc6fc91c7e4bc17b7e7706579ea5f537d23b33f
4
+ data.tar.gz: ed23bc43c52e0039223d60e72c314850958f7cf5b1c22a7bff81b40e57654154
5
5
  SHA512:
6
- metadata.gz: 37e7439be854dc6e655787f0fd5831a5bfe14b2862be507bd520bb3785902e4fd889c7cd5216c570a2272a232fc54db6f588aaecc34c90d7fb2331df1b6a482e
7
- data.tar.gz: a25301e91371cd8f71d249de6e7d1f605c20e90a5661de8a0615887919a1e245ffb73fc3090d026b52742e11926c1eeec5fe6116f7b69292dd7442a426e747bf
6
+ metadata.gz: add4ef7cf69683f089fc5f7c1d0d2373c978455ebb14cff1ee968735386d6ce92b9d89ccc5ee0e78cf1c94b09ffc21bbba5577244728aa9e4a6bc74793b6697c
7
+ data.tar.gz: 1e32fa66801433801b0e771ad2fc9bc9a475724facf68734434c2ede4401fc862b14356c881f05a4bb8ca66ee6d23268be4cdc26a044e384a620bd947c9b761f
data/README.md CHANGED
@@ -37,7 +37,7 @@ $ cd /opt/pwn
37
37
  $ ./install.sh
38
38
  $ ./install.sh ruby-gem
39
39
  $ pwn
40
- pwn[v0.5.18]:001 >>> PWN.help
40
+ pwn[v0.5.19]:001 >>> PWN.help
41
41
  ```
42
42
 
43
43
  [![Installing the pwn Security Automation Framework](https://raw.githubusercontent.com/0dayInc/pwn/master/documentation/pwn_install.png)](https://youtu.be/G7iLUY4FzsI)
@@ -52,7 +52,7 @@ $ rvm use ruby-3.3.0@pwn
52
52
  $ gem uninstall --all --executables pwn
53
53
  $ gem install --verbose pwn
54
54
  $ pwn
55
- pwn[v0.5.18]:001 >>> PWN.help
55
+ pwn[v0.5.19]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
  If you're using a multi-user install of RVM do:
@@ -62,7 +62,7 @@ $ rvm use ruby-3.3.0@pwn
62
62
  $ rvmsudo gem uninstall --all --executables pwn
63
63
  $ rvmsudo gem install --verbose pwn
64
64
  $ pwn
65
- pwn[v0.5.18]:001 >>> PWN.help
65
+ pwn[v0.5.19]:001 >>> PWN.help
66
66
  ```
67
67
 
68
68
  PWN periodically upgrades to the latest version of Ruby which is reflected in `/opt/pwn/.ruby-version`. The easiest way to upgrade to the latest version of Ruby from a previous PWN installation is to run the following script:
@@ -8,33 +8,28 @@ module PWN
8
8
  module Assembly
9
9
  # Supported Method Parameters::
10
10
  # PWN::Plugins::Assembly.opcode_to_asm(
11
- # opcodes: 'required - hex escaped opcode(s) (e.g. '\x90\x90\x90')',
12
- # arch: 'optional - architecture (defaults to PWN::Plugins::DetectOS.arch)'
11
+ # opcodes: 'required - hex escaped opcode(s) (e.g. '\x90\x90\x90')'
13
12
  # )
14
13
 
15
14
  public_class_method def self.opcodes_to_asm(opts = {})
16
15
  opcodes = opts[:opcodes]
17
- arch = opts[:arch] ||= PWN::Plugins::DetectOS.arch
18
16
 
19
17
  opcodes_tmp = Tempfile.new('pwn_opcodes')
20
18
  File.binwrite(opcodes_tmp.path, opcodes)
21
- asm = `objdump -M intel -b binary -D #{opcodes_tmp.path}`
22
- opcodes_tmp.unlink
23
-
24
- asm
19
+ `objdump -D #{opcodes_tmp.path}`
25
20
  rescue StandardError => e
26
21
  raise e
22
+ ensure
23
+ opcodes_tmp.unlink if File.exist?(opcodes_tmp.path)
27
24
  end
28
25
 
29
26
  # Supported Method Parameters::
30
27
  # PWN::Plugins::Assembly.asm_to_opcode(
31
- # asm: 'required - assembly instruction(s) (e.g. 'nop\nnop\nnop\njmp rsp\n)',
32
- # arch: 'optional - architecture (defaults to PWN::Plugins::DetectOS.arch)'
28
+ # asm: 'required - assembly instruction(s) (e.g. 'nop\nnop\nnop\njmp rsp\n)'
33
29
  # )
34
30
 
35
31
  public_class_method def self.asm_to_opcodes(opts = {})
36
32
  asm = opts[:asm]
37
- arch = opts[:arch] ||= PWN::Plugins::DetectOS.arch
38
33
 
39
34
  asm_code = ".global _start\n_start:\n#{asm}"
40
35
 
@@ -43,12 +38,12 @@ module PWN
43
38
  asm_tmp.close
44
39
 
45
40
  system('as', '-o', "#{asm_tmp.path}.o", asm_tmp.path)
46
- opcodes = `objdump -D #{asm_tmp.path}.o`
47
- asm_tmp.unlink
48
-
49
- opcodes
41
+ `objdump -D #{asm_tmp.path}.o`
50
42
  rescue StandardError => e
51
43
  raise e
44
+ ensure
45
+ asm_tmp.unlink if File.exist?(asm_tmp.path)
46
+ File.unlink("#{asm_tmp.path}.o") if File.exist?("#{asm_tmp.path}.o")
52
47
  end
53
48
 
54
49
  # Author(s):: 0day Inc. <request.pentest@0dayinc.com>
@@ -64,13 +59,11 @@ module PWN
64
59
  public_class_method def self.help
65
60
  puts "USAGE:
66
61
  #{self}.opcodes_to_asm(
67
- opcodes: 'required - hex escaped opcode(s) (e.g. '\\x90\\x90\\x90')',
68
- arch: 'optional - architecture (defaults to PWN::Plugins::DetectOS.arch)'
62
+ opcodes: 'required - hex escaped opcode(s) (e.g. '\\x90\\x90\\x90')'
69
63
  )
70
64
 
71
65
  #{self}.asm_to_opcodes(
72
- asm: 'required - assembly instruction(s) (e.g. 'jmp rsp')',
73
- arch: 'optional - architecture (defaults to PWN::Plugins::DetectOS.arch)'
66
+ asm: 'required - assembly instruction(s) (e.g. 'jmp rsp')'
74
67
  )
75
68
 
76
69
  #{self}.authors
data/lib/pwn/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PWN
4
- VERSION = '0.5.18'
4
+ VERSION = '0.5.19'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pwn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.18
4
+ version: 0.5.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.