## # This module requires Metasploit: https://metasploit.com/download # Current source: https://github.com/rapid7/metasploit-framework ## ### # # SingleByte # ---------- # # This class implements simple NOP generator for AARCH64 # ### class MetasploitModule < Msf::Nop def initialize super( 'Name' => 'Simple', 'Alias' => 'armle_simple', 'Description' => 'Simple NOP generator', 'License' => MSF_LICENSE, 'Author' => ['timwr'], 'Arch' => ARCH_AARCH64) register_advanced_options( [ OptBool.new('RandomNops', [ false, "Generate a random NOP sled", true ]) ]) end def generate_sled(length, opts) random = opts['Random'] || datastore['RandomNops'] nops = [ 0xd503201f, # nop 0xaa0103e1, # mov x1, x1 0xaa0203e2, # mov x2, x2 0x2a0303e3, # mov w3, w3 0x2a0403e4, # mov w4, w4 ] if random return ([nops[rand(nops.length)]].pack("V*") * (length/4)) end return ([nops[0]].pack("V*") * (length/4)) end end