Memory corruption 分析 (C++)

Memory corruption 分析的复杂性


Memory corruption一般是由于向一个不属于自己的内存中写数据或者是自己的内存值被损坏导致的。Memory corruption是属于很难分析的一类bug,主要是因为当某个内存中的值被损坏的时候,在这个损坏内存的现场,一般不会暴露出什么问题。这个被损坏的内存值有可能潜伏在其他数据结构中很长时间,并且会随着程序的运行不断的传播变异,导致最终很难定位到问题的根源。
Memory corruption在不同的情况下会有不同的症状,比如crash,这是由于程序访问无效内存地址导致的,这就是我们常说的memory segmentation fault或者access violation exception,这就意味着当前指令所访问的内存地址不属于该进程的地址空间。还有一种情况,程序访问的地址是合法的,但是地址中的值是非法的,这个非法值就像是个定时炸弹,随时可能导致程序出现奇怪的行为。

Memory corruption 是如何发生的


Memory Overrun/Underrun

你可能感兴趣的:(c++,gdb)