module PWN::Plugins::Assembly
def self.asm_to_opcodes(opts = {})
def self.asm_to_opcodes(opts = {}) ||= PWN::Plugins::DetectOS.arch ian] ||= :little .new('pwn_asm') parameter is required.' if asm.nil? ncase ', 'x86' m::Ia32.new(endian) _64' m::X86_64.new(endian) m::ARC.new(endian) mv4b', 'armv5l', 'armv5b', 'armv6l', 'armv6b', 'armv7b', 'armv7l', 'arm', 'armhf' m::ARM.new(endian) rm64' m::ARM64.new(endian) m::BPF.new(endian) m::CY16.new(endian) m::Dalvik.new(endian) m::EBPF.new(endian) m::MCS51.new(endian) m::MIPS.new(endian) m::MIPS64.new(endian) m::MSP430.new(endian) m::OpenRisc.new(endian) m::PPC.new(endian) m::SH4.new(endian) m::ST20.new(endian) m::WebAsm.new(endian) m::Z80.new(endian) ed architecture: #{arch}" Shellcode.assemble(arch_obj, asm).encode_string s = opcodes.bytes.map { |b| format('\x%02x', b) }.join pcodes}\n" Error mbly instruction(s) provided:\n#{asm}" call opcode_to_asm here or just raise the error? => e
def self.authors
def self.authors st.pentest@0dayinc.com>
def self.help
def self.help to_asm( ired - hex escaped opcode(s) (e.g. \"\\x90\\x90\\x90\")', _string_obj: 'optional - always interpret opcodes passed in as a string object (defaults to false)', l - architecture returned from objdump --info (defaults to PWN::Plugins::DetectOS.arch)', nal - endianess (defaults to :little)' pcodes( - assembly instruction(s) (e.g. 'nop\nnop\nnop\njmp rsp\n)', l - architecture returned from objdump --info (defaults to PWN::Plugins::DetectOS.arch)', nal - endianess (defaults to :little)'
def self.opcodes_to_asm(opts = {})
def self.opcodes_to_asm(opts = {}) codes] ing_obj = opts[:opcodes_always_string_obj] ||= false ||= PWN::Plugins::DetectOS.arch ian] ||= :little des parameter is required.' if opcodes.nil? ncase ', 'x86' m::Ia32.new(endian) _64' m::X86_64.new(endian) m::ARC.new(endian) mv4b', 'armv5l', 'armv5b', 'armv6l', 'armv6b', 'armv7b', 'armv7l', 'arm', 'armhf' m::ARM.new(endian) rm64' m::ARM64.new(endian) m::BPF.new(endian) m::CY16.new(endian) m::Dalvik.new(endian) m::EBPF.new(endian) m::MCS51.new(endian) m::MIPS.new(endian) m::MIPS64.new(endian) m::MSP430.new(endian) m::OpenRisc.new(endian) m::PPC.new(endian) m::SH4.new(endian) m::ST20.new(endian) m::WebAsm.new(endian) m::Z80.new(endian) ed architecture: #{arch}" s a fix if opcodes are passed in as: not to be confused w/ "\x90\x90\x90") opcodes.length join(',') if opcodes.is_a?(Array) pect pe(opcodes) pect hen method is called directly) with: rk in pwn REPL driver with: pect if passed in via pwn REPL driver s_string_obj 5B') 5D') 5Cx') 2C') 22') 27') ') ') pect ].pack('H*') pect disassemble(arch_obj, opcodes).to_s.squeeze("\n") => e