当我试图对缓冲区溢出进行概念验证时,我遇到了一个奇怪的问题。程序中存在我想在地址0x0828433c执行的代码。这是一个简单的溢出,所以攻击是这样执行的:
$ perl -e 'system("./program lotsofcharacterstofillinspacethen\x3c\x43\x28\x08")'
但是,\x3c
在 ascii 中转到 >,并且 shell 期望其余的字符是一个输出文件。(即。echo 1 > hello.txt
)
幸运的是它上面有 2 个 nop,所以我不需要使用那个特定的地址,但是如果我需要呢?
谢谢!