From 650a68c994a2552b780e804009e35d2a6f895be6 Mon Sep 17 00:00:00 2001 From: sinn3r Date: Fri, 19 Dec 2014 13:34:56 -0600 Subject: [PATCH] Fix jcxz to jecxz for x86_64 in metasm This fixes "invalid opcode near 'jecxz'" for x64 metasm encoding. --- lib/metasm/metasm/cpu/x86_64/opcodes.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/metasm/metasm/cpu/x86_64/opcodes.rb b/lib/metasm/metasm/cpu/x86_64/opcodes.rb index 149c090948..f023c5162d 100644 --- a/lib/metasm/metasm/cpu/x86_64/opcodes.rb +++ b/lib/metasm/metasm/cpu/x86_64/opcodes.rb @@ -61,7 +61,7 @@ class X86_64 addop('movq', [0x0F, 0x6E], :mrmmmx, {:d => [1, 4]}) { |o| o.args = [:modrm, :regmmx] ; o.props[:opsz] = o.props[:argsz] = 64 } addop('movq', [0x0F, 0x6E], :mrmxmm, {:d => [1, 4]}) { |o| o.args = [:modrm, :regxmm] ; o.props[:opsz] = o.props[:argsz] = 64 ; o.props[:needpfx] = 0x66 } - addop('jcxz', [0xE3], nil, :setip, :i8) { |o| o.props[:adsz] = 32 } # actually 16 (cx), but x64 in general says pfx 0x67 => adsz = 32 + addop('jecxz', [0xE3], nil, :setip, :i8) { |o| o.props[:adsz] = 32 } # actually 16 (cx), but x64 in general says pfx 0x67 => adsz = 32 addop('jrcxz', [0xE3], nil, :setip, :i8) { |o| o.props[:adsz] = 64 } end