try the payload's arch/platform if we don't have an associated exploit

git-svn-id: file:///home/svn/framework3/trunk@11116 4d416f70-5f16-0410-b530-b9f4589650da
unstable
James Lee 2010-11-23 20:37:32 +00:00
parent b3b43bbb8b
commit 7581ce0153
1 changed files with 4 additions and 3 deletions

View File

@ -337,14 +337,15 @@ class EncodedPayload
})
# Prefer the target's platform/architecture information, but use
# the exploit module's if no target specific information exists.
# Lastly, try the payload's.
opts[:platform] ||= emod.target_platform if emod.respond_to? :target_platform
opts[:platform] ||= emod.platform if emod.respond_to? :platform
opts[:platform] ||= pinst.platform if pinst.respond_to? :platform
opts[:arch] ||= emod.target_arch if emod.respond_to? :target_arch
opts[:arch] ||= emod.arch if emod.respond_to? :arch
opts[:arch] ||= pinst.arch if pinst.respond_to? :arch
end
# Lastly, try the payload's. This always happens if we don't have an
# associated exploit module.
opts[:platform] ||= pinst.platform if pinst.respond_to? :platform
opts[:arch] ||= pinst.arch if pinst.respond_to? :arch
Msf::Util::EXE.to_executable(framework, opts[:arch], opts[:platform], encoded, opts)
end