我在objdump中看到了一个奇怪的指示:
fs cs gs js 0x6a
当我尝试使用this手动反汇编操作码时,我得到:
{{1}}
这条指令是什么意思?它的意义是什么?
信息:使用win64格式的NASM在Windows 7 64位上编译程序集。
答案 0 :(得分:5)
这是一个前面有一堆前缀的跳转指令。它解码如下:
64
是fs
段覆盖前缀。它没有任何作用。2e
是cs
段覆盖前缀。在条件跳转指令前面,它暗示不进行跳转。65
是gs
段覆盖前缀。它没有任何作用。78
是指令js
“如果符号标志设置为”65
是此指令的操作数。这条指令没有多大意义。由于编码对应于字符串d.exe
,因此它实际上可能是数据而不是代码。它也可能是汇编程序生成无用的前缀来进行某种对齐,但是如果没有看到该指令所在的地址,则无法测试该假设。