Sha256: 94c24a68191163e433113dd60907bc260e4b18a68ef592b5c4c01e8c6098ba6f
Contents?: true
Size: 1.28 KB
Versions: 2
Compression:
Stored size: 1.28 KB
Contents
# This file is part of Metasm, the Ruby assembly manipulation suite # Copyright (C) 2006-2009 Yoann GUILLOT # # Licence is LGPL, see LICENCE in the top-level directory require 'metasm/x86_64/opcodes' module Metasm class X86_64 def dbg_register_pc @dbg_register_pc ||= :rip end def dbg_register_flags @dbg_register_flags ||= :rflags end def dbg_register_list @dbg_register_list ||= [:rax, :rbx, :rcx, :rdx, :rsi, :rdi, :rbp, :rsp, :r8, :r9, :r10, :r11, :r12, :r13, :r14, :r15, :rip] end def dbg_register_size @dbg_register_size ||= Hash.new(64).update(:cs => 16, :ds => 16, :es => 16, :fs => 16, :gs => 16) end def dbg_func_arg(dbg, argnr) if dbg.class.name =~ /win/i list = [:rcx, :rdx, :r8, :r9] off = 0x20 else list = [:rdi, :rsi, :rdx, :rcx, :r8, :r9] off = 0 end if r = list[argnr] dbg.get_reg_value(r) else argnr -= list.length dbg.memory_read_int(Expression[:esp, :+, off + 8 + 8*argnr]) end end def dbg_func_arg_set(dbg, argnr, arg) if dbg.class.name =~ /win/i list = [] off = 0x20 else list = [] off = 0 end if r = list[argnr] dbg.set_reg_value(r, arg) else argnr -= list.length dbg.memory_write_int(Expression[:esp, :+, off + 8 + 8*argnr], arg) end end # what's left is inherited from Ia32 end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
metasm-1.0.1 | lib/metasm/x86_64/debug.rb |
metasm-1.0.0 | lib/metasm/x86_64/debug.rb |