に私は逆アセンブラ(SmartDec:http://decompilation.info/)を使用していますし、生成された解体中の命令の多くは次のようになり:不明意味(:)アセンブリ命令
mov rax, [rip + 0x32b5]:64
私は不慣れですこの命令の一部に:64
が含まれています。どういう意味ですか?
その他の例:
cmp [rcx + r8 * 0x8]:64, 0x0
mov eax, [rip + 0x592a]:32
jmp [rip + 0x6bad]:64
この逆アセンブラは、対応するマシンコードが表示されないので、私はバイナリエディタを使用して、この命令がでたと述べたアドレス見上げ:
1665: mov rax, [rip + 0x19a4]:64
を
これは、リトルエンディアンで、そこに16バイトの価値があったものです。
54 00 00 49 89 E8 FF 15 DC 5F 00 00 E9 57 FF FF
SmartDecはディスアセンブラです、http://decompilation.info/ – SeanRamey
私はあなたがその命令のための正しい16進バイトを持っているとは思わないです。マシンコードに 'a4'または' 19'バイトがどこにもありません。おそらくあなたの逆アセンブラはRIP +を意味するものではなく、実際に絶対アドレスがRIPに関連して '0x19a4 'であることを意味します。しかし、とにかく、 '54'は' mov'のオペコードではありません。 REX.W = 1 'mov r/m64、r64'(ストア)](https://github.com/HJLebbink/asm-dude/wiki/MOV)ですが、これらのバイト別の命令の一部である(開始ではない)。私は将来の比較のために別の逆アセンブラ( 'objdump -drwC -Mintel'のような)を使うことをお勧めします。 –