各位大佬好,想问一个关于汇编和 ShellCode 中零字节的问题。
在学习缓冲溢出时,我根据要求写了一段取得程序 PID 的汇编来构造 ShellCode,其中一段调用了 C 中的 printf 来输出结果:
lea rdi, [rel message]
mov rsi, rax
call printf
反汇编后的结果如下:
13: 48 8d 3d e8 ff ff ff lea -0x18(%rip),%rdi # 2 <message>
1a: 48 89 c6 mov %rax,%rsi
1d: e8 00 00 00 00 callq 22 <code+0x19>
如上面代码第三行所示,opcode 出现了 \x00
, 我搜索了一圈都没有合适的能把 \x00
替换掉的方案,于是想来 V 站问问各位大佬们~
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.