阅读:1964回复:32
提问两个非驱动的诡异小问题
先给20分,如果回答的非常好我可以再加分
背景:我在调试一个Win32程序,纯Win32的,我的这个程序会修改别的程序,但修改后的程序会……………… 问题一: 修改后的程序,我一运行就死,这不可怕,可怕的是我用调试器打开它,调试器打开时会死掉,这还不是最可怕,最可怕的是我在DOS窗里对这个文件操作,比如删除,或拷一个文件覆盖它,执行的命令也会死!在资源管理器里我把鼠标点上它,资源管理器也会死! 这种死,有时表现系统非常慢,过好半天才缓过来,但有时系统几乎不响应了 这种情况最让我苦恼,我根本都无法调试,只能到纯DOS下把它删除。 这是在2000下,在98下,我只要把鼠标点到那个文件上(没有打开),系统就彻底死了。 问题二: 上述死掉的东西,在task manager里可以看到,但无法杀死!告诉我\"access denied\",我的访问被拒绝了。这是怎么回事?这种情况一般都发生在system service上啊,我这可是正宗的响当当的Win32程序,没什么特别的,只不过对文件读写而已,怎会如此惨死? 哪位遇到这种问题?有经验吗? 大家注意,现在的主要问题是我不能碰修改后的文件,更无法打开了 [编辑 - 11/13/02 by Koms Bomb] [编辑 - 11/13/02 by Koms Bomb] |
|
|
沙发#
发布于:2002-11-13 22:26
给下源代码嘛,大家免费与你做宣传的。
|
|
板凳#
发布于:2002-11-13 15:34
以后可以给的时候,连源代码都给大家。
[/quote] 哈哈,最好是源代码给大家。执行体还是留在自己机器上吧! |
|
|
地板#
发布于:2002-11-13 13:33
这有什么啊?你吧那个文件公开一下,让大家也看看嘛,我有VMWare,你发给我试试。哪里会有这么邪的事情啊。 不能给你啊 以后可以给的时候,连源代码都给大家。 估计就是Norton的事情了,晚上我就试试去。 |
|
|
地下室#
发布于:2002-11-13 13:22
这有什么啊?你吧那个文件公开一下,让大家也看看嘛,我有VMWare,你发给我试试。哪里会有这么邪的事情啊。
|
|
5楼#
发布于:2002-11-13 13:00
哈哈毒客受到挑战喽。。。
|
|
|
6楼#
发布于:2002-11-13 11:58
有时候就是这样,我做mp3播放器调试的时候还能让linux彻底死掉,连网络都不通,是不是进了某个死循环!而且是跟驱动跟硬件有关的死循环,不要认为打开文件只是小操作,看看操作系统源码,还是有很多事要做的! 打开文件是很复杂,但在CreateFile里死掉的机会很小。 |
|
|
7楼#
发布于:2002-11-13 11:57
[quote]可能是把跳转地址或某些参数改错了,所以文件按照可执行方式一打开就跳飞了,这样就会死机。 1,那样的死机应该可以杀死进程 2,我还没执行那个文件呢,只是想覆盖它或者点一下它,就死掉了 [/quote] 有时候就是这样,我做mp3播放器调试的时候还能让linux彻底死掉,连网络都不通,是不是进了某个死循环!而且是跟驱动跟硬件有关的死循环,不要认为打开文件只是小操作,看看操作系统源码,还是有很多事要做的! |
|
|
8楼#
发布于:2002-11-13 11:41
病毒高手被杀病毒的东东给蒙了 我一直都不注意我机器中的Norton到底是否活着 :( |
|
|
9楼#
发布于:2002-11-13 11:32
病毒高手被杀病毒的东东给蒙了
霍霍 :D |
|
|
10楼#
发布于:2002-11-13 10:58
Norton?有可能。
|
|
|
11楼#
发布于:2002-11-13 10:50
你在资源管理器里碰它的时候,Windows 至少要去读它的资源。 你提醒我了,我好像有装Norton耶,难道是Norton在那里启发查毒,结果死机? 这样真的挺合理,如果是Norton死掉了,那我那个文件进程当然不能被杀死了,因为被Norton“启发”中。 现在最大的问题就是我不知道我到底是开了Norton自动防护。 我晚上回去看看,如果真是这样,我就因祸得福了,哈哈哈哈 如果真这样,大狗我给你50分专家分。 阿弥托佛,上帝保佑 btw,和读资源应该没什么太大问题 愚以为,一个程序如果不执行,很难死得如此惨。越想越可能是Norton的事 |
|
|
12楼#
发布于:2002-11-13 10:43
[quote]我想是你修改后的文件中有非法字符。如果在Windows下面没有办法的话,建议你在纯dos下用debug看看。你也不必死脑筋一定要在windows下解决这个问题。 用debug? 我这可是32位程序,还要调用Win32 API 如果只是用Debug看看16进制代码,看不出什么 大家注意,如果只是单纯的文件坏了,为何不能碰?一碰就死? [/quote] 你在资源管理器里碰它的时候,Windows 至少要去读它的资源。 还有就是不知道你有没有装病毒实时监控之类的东西。 |
|
|
13楼#
发布于:2002-11-13 10:41
可能是把跳转地址或某些参数改错了,所以文件按照可执行方式一打开就跳飞了,这样就会死机。 1,那样的死机应该可以杀死进程 2,我还没执行那个文件呢,只是想覆盖它或者点一下它,就死掉了 |
|
|
14楼#
发布于:2002-11-13 10:39
可能是把跳转地址或某些参数改错了,所以文件按照可执行方式一打开就跳飞了,这样就会死机。
|
|
|
15楼#
发布于:2002-11-13 10:35
我想是你修改后的文件中有非法字符。如果在Windows下面没有办法的话,建议你在纯dos下用debug看看。你也不必死脑筋一定要在windows下解决这个问题。 用debug? 我这可是32位程序,还要调用Win32 API 如果只是用Debug看看16进制代码,看不出什么 大家注意,如果只是单纯的文件坏了,为何不能碰?一碰就死? |
|
|
16楼#
发布于:2002-11-13 10:30
我想是你修改后的文件中有非法字符。如果在Windows下面没有办法的话,建议你在纯dos下用debug看看。你也不必死脑筋一定要在windows下解决这个问题。
|
|
|
17楼#
发布于:2002-11-13 10:30
你在纯 DOS 下把它的扩展名改成别的,再到 windows 里,
如果在资源管理器能碰了,应该就是你改坏了。 |
|
|
18楼#
发布于:2002-11-13 10:28
我不能回答你修改后的程序为什么不能碰?除非你给SOURCE。 真奇怪,既然你看清楚了,为何还让我用UltraEdit看?能看吗?当然不能。 能给源码吗?当然不能。 大狗,我不能确定是不是坏了。 死掉的进程无法杀死,怎么回事? |
|
|
19楼#
发布于:2002-11-13 10:25
你把 exe 文件改坏掉了吧。
|
|
|
上一页
下一页