我下周要复习考试,我遇到了一个过去的问题。
void func(char * arg)
{
char buf[32];
strcpy(buf, arg);
}
认为;
- 根本没有防备
- buf 从 0xbffebfb0 开始
- (gdb) x/2wx $ebp 0xbffebfd8: 0xbffec068 0x08048fe1
a) 你想运行一个 24 字节长的有效载荷,应该将哪些字节复制到缓冲区中以进行攻击?(我想为 24 个字节填写 '\x90')
b) 如果启用了 ASLR,每次运行时将堆栈偏移 0-15 个字节,那么什么有效负载(在 python 打印语句中描述)将始终让上面的 shellcode 执行?或者为什么这样的有效载荷是不可能的?