C:\>rasm2 -a x86 -b 64 -d "48898D80FEFFFF"
mov qword [rbp - 0x180], rcx
C:\>rasm2 -a x86 -b 64 "mov qword [rbp - 0x180], rcx"
49898d80feffff
看到区别了吗?第一个字节已更改,并且每次都保持相同的行为。另一个问题是,我无法用8个字节来汇编此指令,它只能给我4个字节:
将寄存器设置为32位,它将为我提供正确的操作码!
C:\>rasm2 -a x86 -b 64 -d "C7458C0000803F"
mov dword [rbp - 0x74], 0x3f800000
C:\>rasm2 -a x86 -b 64 "mov dword [rbp - 0x74], 0x3f800000"
41c67400
为什么这样做,我做错了什么? GitHub问题链接以供将来参考。
#1 楼
这是一个错误,OP提出的问题现已在radare2 Master和最新版本中修复。$ rasm2 -a x86 -b 64 -d "48898D80FEFFFF"
mov qword [rbp - 0x180], rcx
$ rasm2 -a x86 -b 64 "mov qword [rbp - 0x180], rcx"
48898d80feffff
$ rasm2 -a x86 -b 64 -d "C7458C0000803F"
mov dword [rbp - 0x74], 0x3f800000
$ rasm2 -a x86 -b 64 "mov dword [rbp - 0x74], 0x3f800000"
c7458c0000803f
可以在此链接中找到此修复程序。
评论
rasm2 -v给什么?您使用的是最新版本吗?@PawełŁukasikrasm2 2.6.0-git 1 @ Windows-x86-64 git。我很确定这是最新版本。
我正在运行前两个命令,并具有相同的输出(尽管在Ubuntu上)。我待会再检查窗户
我问过核心开发人员-这是已知问题。可能很快就会解决。
@IgorSkochinsky完成。