Skip to content

Commit e88da09

Browse files
author
Tod Beardsley
committed
Land rapid7#2660, DLL/service creation for x64
2 parents eea811b + 135dad1 commit e88da09

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

lib/msf/core/exploit/exe.rb

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,10 @@ def generate_payload_exe_service(opts = {})
7575
pl = opts[:code]
7676
pl ||= payload.encoded
7777

78-
if opts[:arch] and (opts[:arch] == ARCH_X64 or opts[:arch] == ARCH_X86_64)
78+
#Ensure opts[:arch] is an array
79+
opts[:arch] = [opts[:arch]] unless opts[:arch].kind_of? Array
80+
81+
if opts[:arch] and (opts[:arch].index(ARCH_X64) or opts[:arch].index(ARCH_X86_64))
7982
exe = Msf::Util::EXE.to_win64pe_service(framework, pl, opts)
8083
else
8184
exe = Msf::Util::EXE.to_win32pe_service(framework, pl, opts)
@@ -94,7 +97,10 @@ def generate_payload_dll(opts = {})
9497
pl = opts[:code]
9598
pl ||= payload.encoded
9699

97-
if opts[:arch] and (opts[:arch] == ARCH_X64 or opts[:arch] == ARCH_X86_64)
100+
#Ensure opts[:arch] is an array
101+
opts[:arch] = [opts[:arch]] unless opts[:arch].kind_of? Array
102+
103+
if opts[:arch] and (opts[:arch].index(ARCH_X64) or opts[:arch].index(ARCH_X86_64))
98104
dll = Msf::Util::EXE.to_win64pe_dll(framework, pl, opts)
99105
else
100106
dll = Msf::Util::EXE.to_win32pe_dll(framework, pl, opts)

0 commit comments

Comments
 (0)