如何使用二进制可执行文件(无需访问源代码)来防止缓冲区溢出?
How can you prevent buffer overflow with a binary executable file (without access to the source code)?
如果您试图防止对您正在编写的 C 程序的缓冲区溢出攻击,您只需修改您的代码以使其更安全。但是,如果您 只是 给定了一个由 C 源代码制作的二进制可执行文件,它容易受到缓冲区溢出攻击(您可能会通过使用 objdump 和粉碎堆栈引起这种攻击)。如果您无法访问上述可执行文件的源代码,您可以使用哪些方法来阻止您的攻击?
编辑:当您运行 可执行文件时,系统会提示您输入要压缩的文件名。您给它文件名,它会为您压缩。
编写一个包装程序,通过它传输 'badprog' 的输入和输出,并确保输入的长度和/或内容正确
如果您试图防止对您正在编写的 C 程序的缓冲区溢出攻击,您只需修改您的代码以使其更安全。但是,如果您 只是 给定了一个由 C 源代码制作的二进制可执行文件,它容易受到缓冲区溢出攻击(您可能会通过使用 objdump 和粉碎堆栈引起这种攻击)。如果您无法访问上述可执行文件的源代码,您可以使用哪些方法来阻止您的攻击?
编辑:当您运行 可执行文件时,系统会提示您输入要压缩的文件名。您给它文件名,它会为您压缩。
编写一个包装程序,通过它传输 'badprog' 的输入和输出,并确保输入的长度和/或内容正确