有一个函数清就是系统给清内存了?你怎么不说用debug库内存free后还给改成fe呢,栈上的给初始化为烫烫烫呢。
如果懂汇编可以看一下反编译一个小函数看看,函数退出时直接改eip,根本没有清0操作,入栈时同样没有清零操作。
在分配内存时无论是栈上还是堆上如果要清零都需要一次写操作,这对很多程序是完全没必要的。当然不排除有部分高级语言,如Python之类的会清零,但是底层,在c、asm是不会清的。
大范围数据泄漏,去查查openssl的heartbleed漏洞。
【 在 leadu 的大作中提到: 】
: 基础扎实一些的,有很多方面知道os给过来的是清0过的,比如win sdk开发的应该看过
https://docs.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc: Reserves, commits, or changes the state of a region of pages in the virtual address space of the calling process. Memory allocated by this function is automatically initialized to zero.
: 或者逻辑上简单推一下也应该知道。
: ...................
--
FROM 124.64.16.*