首页
社区
课程
招聘
[讨论]有关内存不释放问题
发表于: 2015-1-20 18:11 4182

[讨论]有关内存不释放问题

2015-1-20 18:11
4182
ne_Ex = ExAllocatePool(NonPagedPool,1024);

if(ne_Ex)ExFreePool(ne_Ex);//释放内存空间   这里代码是执行了的,可是内存数据还在为什么呀,难道ExFreePool不能释放内存空间了吗

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 345
活跃值: (57)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
你怎么知道还在的
2015-1-20 20:52
0
雪    币: 19
活跃值: (1086)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
释放了只是表示这段内存不属于你的了而已
2015-1-20 20:56
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
4
只释放所有权,但并不清零。。
2015-1-20 22:02
0
雪    币: 44
活跃值: (186)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这不等于没释放数据完整的还在还可以一样的访问,是不是函数没有执行到最后就退出了
2015-1-20 23:25
0
雪    币: 1689
活跃值: (379)
能力值: ( LV15,RANK:440 )
在线值:
发帖
回帖
粉丝
6
和你执行普通的删除文件一样,文件你看不到了,但它的数据依然可能存在(但这不是必然的,你的删除操作告诉系统这个文件占用的空间可以在未来某个时间被别人改写使用)。
2015-1-20 23:40
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
7
不是释放过程出错,你释放之后,依然是可以访问的,但是所有权没有了,这跟ring3用VirtualAlloc申请内存是不一样的,类似于Heap,不同的是ring3的Heap在释放之后会把数据填充掉而已。在别人申请到这段内存之前,里面的数据应该是不会变的。当别人申请到这段内存之后,如果你还在往里写数据,那就乱了套了。。。
2015-1-20 23:41
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
8
重点是要和ring3的VirtualAlloc这种内存申请方式区分开来~
2015-1-20 23:42
0
雪    币: 44
活跃值: (186)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
谢谢楼上的朋友热心,耐心解答
2015-1-21 16:37
0
游客
登录 | 注册 方可回帖
返回
//