【发布时间】:2017-07-04 22:49:01
【问题描述】:
我正在寻找来自this 链接的反向shellcode。我无法遵循 shellcode 中以下说明的原因:
4000a3: 4d 31 d2 xor r10,r10
4000a6: 41 52 push r10
4000a8: c6 04 24 02 mov BYTE PTR [rsp],0x2
4000ac: 66 c7 44 24 02 7a 69 mov WORD PTR [rsp+0x2],0x697a
4000b3: c7 44 24 04 0a 33 35 mov DWORD PTR [rsp+0x4],0x435330a
4000ba: 04
4000bb: 48 89 e6 mov rsi,rsp
我搜索了其他 SO 问题,发现 BYTE/WORD/DWORD PTR 将用于分配字节/字/双字。由于这个 x86 64,我假设这里的 WORD 表示 2 个字节,而 DWORD 表示 4 个字节(如果我错了,请纠正我)。 作者将零压入堆栈。然后他有3个mov指令。 假设 RSP 最初指向:
x00 x00 x00 x00 x00 x00 x00 x00
1) 下面是不是三个mov指令的效果(假设是小端)?
x04 x35 x33 x0a x7a x69 x00 x02
2) 如果是,那么作者通过它实现了什么,因为下一个 mov 指令不会覆盖 rsp 所指向的内容吗?
谢谢
【问题讨论】:
标签: shellcode