在我正在分析的反汇编程序中,我找到了命令
sar %eax
这是做什么的?我知道带有两个参数的sar
执行右移,但我只能用一个参数找不到它的意思。
该程序是为Intel x86处理器编译的。
答案 0 :(得分:26)
看起来,诈骗者使用SAR EAX,1
的简写,其操作码为0xD1F8
。当立即数不是1,即SAR EAX,xx
时,操作码为0xC1F8 xx
,请参阅英特尔指令参考,卷。 2B,4-353。
答案 1 :(得分:2)
当只有一个操作数时,隐含的移位为1。
...所以
SAR %EAX
表示已签名%EAX >> 1
为此,
SAR %eax = SAR $1, %eax
我已成功证明这可以分析GDB中的一些代码。