【发布时间】:2015-09-26 05:15:15
【问题描述】:
我目前正在关注Shellcoder's Handbook (2nd edition) 的勘误表。 这本书有点过时了,但还不错。我现在的问题是我无法猜测我的有效负载需要多长时间我试图遵循每一步(并使用相同的参数运行 gdb)并且我试图猜测缓冲区从哪里开始,但我不知道确切.我对此也很陌生,所以这很有意义。
我有一个带有strcpy() 和buffer[512] 的易受攻击的程序。我想让堆栈溢出,所以我用程序运行了一些 A(作为 Shellcoders 手册的勘误表)。我想知道有效载荷需要多长时间(没有 ASLR)所以理论上我只需要找到缓冲区的位置。
由于我是新手,我无法发布图片,但本书的首选输出有完整的 4 行“A”(0x41414141),而我的输出是这样的:
(gdb) x/20xw $esp - 532
0xbffff968 : 0x0000000 0xbfffffa0e 0x41414141 0x41414141
0xbffff968 0x41414141 0x41414141 0x00004141 0x0804834
那是什么地址?我怎么知道这个缓冲区从哪里开始?我想这样做,以便我可以继续使用这本书。我意识到缓冲区在那里的某个地方是因为我运行的 A。但是如果我想知道有效载荷需要多长时间,我需要它开始的点。
【问题讨论】:
-
您可以将图片上传到 imgur 并在这里分享。
标签: security gdb stack overflow shellcode