pwn 0.5.18 → 0.5.19

Sign up to get free protection for your applications and to get access to all the features.
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.