将堆栈指针引用到syscall的登记册-gnu gas at& t语法
我正在尝试将我的堆栈指针引用到%rsi
寄存器中,以便SYSCALL将从i的第二个参数中获取结构。
这是代码:
01: mov $0x2a, %al
02 : mov $3, %rdi
03 : push $0x02
04 : push $0x0068
05 : push $0x5c11
06 : push $0xa8c0
07 : push $0x1401
08 : mov (%rsp), %r13
09 : mov %r13, %rsi # this is where I get lost
10 : mov $0x10, %dl
11 : syscall
strace ./helloworld给我这个:
connect(3, 0x5c11, 16)
exit(0)
我的问题是:我如何将堆栈上的结构传递给RSI寄存器(通过堆栈的指针)
到目前为止尝试的内容:
- 读取有关GNU语法
- 直接传递参考而无需中间寄存器的 有关GNU语法
08:#MOV(%RSP),%R13 09:MOV%RSI,(%RSP)
- 使用指针拆卸
03:MOV $ 0x02(%RSP) 04:MOVW $ 0x0068 2(%RSP) 05:MOVW $ 0x5C11 4(%RSP) 06:MOVW $ 0XA8C0 6(%RSP) 07:MOVW $ 0x1401 8(%RSP) 08:#mov(%RSP),%R13 09:MOV(%RSP),%RSI strace ./hellowworld: ... 连接(3,0xA8C05C1100680002,16) ...
我在第二个论点中每次都有的是寄存器或堆栈的价值,而不是指针。
使用NASM语法,一切都可以。
我正在使用这些资源:
- http:// 6。 s081.scripts.mit.edu/sp18/x86-64-Architecture-guide.html
- YouTube:X86-64 GNU gnu汇编器craster crasher crasher crash-course从“写下自己的操作系统”
- youtube:如何从“战术网络网络解决方案”中编写shellCode playlist
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论