使用缓冲区溢出的 mips 程序集显示字符串

mips assembly display string using buffer overflow

我正在练习缓冲区溢出和汇编编码。现在我可以找到 return 地址,并跳转到程序本身的任何地方。然而,我想做的不仅仅是跳转到自身,我想显示一些我发送到程序缓冲区的字符串(该字符串不包含在程序中,但它是我用我的 exploit 发送的输入)。假设我想显示 "you are hacked!",我该怎么做?

我知道要显示一些东西,我需要在程序本身内部调用 prints() 函数,并将地址值分配给 $a0,这是传递给 prints() 的参数,prints() 将打印任何内容那个地址出来。但是,我的输入字符串不包含在程序中,我无法显示我自己的消息,只能显示程序本身的数据。我该怎么做?

我一步之遥得到了答案,我确实将我的黑客信息放入了缓冲区。我错误地将字符串放在$a0中,但我真正应该做的是将字符串的内存地址放入$a0中。我一这样做,我的破解消息就显示出来了。