我的objdump中的这一行是什么?

who*_*ami 2 assembly winapi disassembly

我在objdump中看到了一个奇怪的指令:

64 2e 65 78 65 fs cs gs js,pn 0x4010cb
Run Code Online (Sandbox Code Playgroud)

当我尝试使用手动反汇编操作码时,我得到:

fs cs gs js 0x6a
Run Code Online (Sandbox Code Playgroud)

这条指令是什么意思?它的意义是什么?

信息:使用win64格式的NASM在Windows 7 64位上编译汇编.

fuz*_*fuz 5

这是一个前面有一堆前缀的跳转指令.它解码如下:

  • 64fs段覆盖前缀.它在这里什么也没做.
  • 2ecs段覆盖前缀.在条件跳转指令前面,它暗示不进行跳转.
  • 65gs段覆盖前缀.它在这里什么也没做.
  • 78是指令js"如果符号标志设置跳转"
  • 65 是该指令的操作数.

这条指令没有多大意义.由于编码对应于字符串d.exe,因此它实际上可能是数据而不是代码.它也可能是汇编程序生成无用的前缀来进行某种对齐,但是如果没有看到该指令所在的地址,则无法测试该假设.