首页
社区
课程
招聘
[求助]程序退出后内存中还会有其映象吗?
发表于: 2007-3-13 01:51 4002

[求助]程序退出后内存中还会有其映象吗?

2007-3-13 01:51
4002
我很菜,大家莫笑我。比如用VB编个程序,这个程序运行后发现内存中有Dump或调试或监视它的程序,那么就执行VB的"End"过程将自己关闭,如果自己正常地关闭了(例如没有被调试软件下断拦截住),那么,内存中还会有它的映象吗?另外我想知道,是不是任何程序正常退出后内存中的映象就都不存在了?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 50161
活跃值: (20610)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
既然退出,内存也释放了。
2007-3-13 09:23
0
雪    币: 2943
活跃值: (1788)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
3
楼主说得正确。

在编程的角度讲:
栈stack,会自动清除,
堆Heap,如果不手动清除,则会占用内存。
有:
对象.Create
一定要在程序退出,Destroy前进行:
对象.free

有的程序虽然能正常运行。但是因为没有:Free 。会出现莫名其妙的错误。
2007-3-13 16:32
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
4
我觉得他的想法是

在硬盘里简单的删除一个文件,仍然能恢复

同样道理,内存释放之后,是不是也能通过读取物理内存取得数据
2007-3-13 16:40
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
目的是防止其他程序对自己的程序进行dump等,是出于反监控、反调试目的。三位老大说法不尽相同,我不好拿注意了,请大家继续给我详细些的讲解啊,再次谢谢了。
2007-3-13 22:29
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
6
DUMP,是不可避免的
看什么水平的人CRACK又或者CRACK你的人工具够不够NB
2007-3-13 22:37
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
这是VB帮助中对End语句的讲解:End 语句不调用 Unload、QueryUnload、或 Terminate 事件或任何其它 Visual Basic 代码,只是生硬地终止代码执行。窗体和类模块中的 Unload、QueryUnload、和 Terminate 事件代码未被执行。类模块创建的对象被破坏,由 Open 语句打开的文件被关闭,并且释放程序所占用的内存。其它程序的对象引用无效。
End 语句提供了一种强迫中止程序的方法。Visual Basic 程序正常结束应该卸载所有的窗体。只要没有其它程序引用该程序公共类模块创建的对象并无代码执行,程序将立即关闭。
懂得了:被Dump不可避免。那执行End后,监控或调试程序也可以读出程序原来分配内存中的内容(就象删除的文件可以被反删除一样)是吧(只是它读出来的内容更乱或残缺不全是吧)?
2007-3-13 22:54
0
游客
登录 | 注册 方可回帖
返回
//