Overflow& Memory Safety

Overflow& Memory Safety_第1张图片
Overflow& Memory Safety_第2张图片


Overflow& Memory Safety_第3张图片





Overflow& Memory Safety_第4张图片

通过memory overwrite 直接把仓位修改成了头等舱。

Overflow& Memory Safety_第5张图片
Overflow& Memory Safety_第6张图片

未必连续,也许有padding。假设连续,我们如果往name里写了很多数据,会overwrite 下一个memory block里的内容



Overflow& Memory Safety_第7张图片

黑客可以改变pointer地址,指向他想执行的func。这个叫:malicious code injection

Overflow& Memory Safety_第8张图片

function pointer

如果黑客改了function指针地址,让他指向黑客写的一个function,那就可以无限运行他想做的事情。

Overflow& Memory Safety_第9张图片

看到c 里有人写了gets,去打那个程序员。

系统漏洞排行榜


Overflow& Memory Safety_第10张图片

这里就不是static overflow, 而是heap overflow!  malloc new block.

Buffer overflow attack!!Buffer copy without checking the size of input

虽然你分配了64 byte的空间,但是他可以access 大于64 byte,导致�修改其他地方的内容。

Overflow& Memory Safety_第11张图片

IT浏览器略不安全

Overflow& Memory Safety_第12张图片

Memory里上方的地址高,下方地址低。

Overflow& Memory Safety_第13张图片


Overflow& Memory Safety_第14张图片


这个是安全的,因为fgets和gets不一样,他

Overflow& Memory Safety_第15张图片


实战例子:


Overflow& Memory Safety_第16张图片

In short, 就是Memory overflow. 一个bug在于他access 大于array size的地方。 一个在于snprintf给定长度的时候用的是

name.length.如果name很长,也会memory overflow。

Overflow& Memory Safety_第17张图片

你可能感兴趣的:(Overflow& Memory Safety)