小编mar*_*ire的帖子

避免使用 CALL 读取 RIP 的 shellcode 中的 0xFF 字节?

我正在尝试编写解码器存根,但遇到了0xFF作为坏字符的限制。我正在使用该jmp-call-pop方法将我编码的 shellcode 的地址放入一个寄存器中。这是相关的片段:

401012: e8 eb ff ff ff          call   0x401002
Run Code Online (Sandbox Code Playgroud)

似乎call总是0xFF以字节为单位使用。是否有另一条指令在执行时会压入rip堆栈并跳转到另一段代码?我试过手动将地址推送到堆栈上,但这会导致空字节,因为我的地址有 3 个字节长并且需要填充。


我的机器代码中不允许的字节是:

  • 00
  • FF

assembly x86-64 machine-code shellcode

2
推荐指数
1
解决办法
699
查看次数

标签 统计

assembly ×1

machine-code ×1

shellcode ×1

x86-64 ×1