0xa*_*b3d 1 c stack-overflow buffer-overflow
我是道德黑客世界的新手,其中一个最重要的事情是堆栈溢出,无论如何我编写了一个易受攻击的C程序,它有一个char名称[400]语句,当我尝试用401A运行程序时它不会不要溢出,但是我所遵循的这本书说它必须溢出而且逻辑意义如此说,那么什么是错的?
如果您已定义缓冲区:
char buf[400];
Run Code Online (Sandbox Code Playgroud)
并在其中写入401个字节,缓冲区已溢出.其余的,取决于代码的结构:
事情比他们看起来更复杂.引用维基百科:
在计算机安全和编程中,缓冲区溢出或缓冲区溢出是异常,其中进程将数据存储在程序员为其预留的存储器外部的缓冲区中.额外数据覆盖相邻存储器,其可能包含其他数据,包括程序变量和程序流控制数据.这可能导致程序行为不稳定,包括内存访问错误,错误结果,程序终止(崩溃)或违反系统安全性.
请注意,此引号中可能包含该单词的多个实例.所有这一切都可能发生,也可能不会发生.同样,这取决于其他因素.