阅读:1962回复: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 10:05
其实用ULTRAEDIT也可以修改程序,修改后运行良好。
应该是你修改的问题。贴出SOURCE。 |
|
|
板凳#
发布于:2002-11-13 10:07
其实用ULTRAEDIT也可以修改程序,修改后运行良好。 1,我必须用程序修改程序 2,不能贴source 我知道是我修改的问题,但大概什么问题?我现在连那个错误文件都无法调试了。 |
|
|
地板#
发布于:2002-11-13 10:09
用记事本修改应用程序就不行。估计是字符转换的问题。是否用UNICODE?
|
|
|
地下室#
发布于:2002-11-13 10:11
被修改的文件是2进制文件吗?打开文件用什么函数?
|
|
|
5楼#
发布于:2002-11-13 10:11
用记事本修改应用程序就不行。估计是字符转换的问题。是否用UNICODE? 你为什么非要说用工具修改程序呢? 我是在我的程序里修改程序,直接修改二进制代码。 |
|
|
6楼#
发布于:2002-11-13 10:15
呼呼,
改出问题了 :D |
|
|
7楼#
发布于:2002-11-13 10:16
二进制也是可以修改的,你的系统没问题吧?
|
|
|
8楼#
发布于:2002-11-13 10:16
被修改的文件是2进制文件吗?打开文件用什么函数? 被修改的是程序 打开用CreateFile啊 那些没问题,是我改错的,但问题是我现在无法调试,一调试就死。 |
|
|
9楼#
发布于:2002-11-13 10:18
二进制也是可以修改的,你的系统没问题吧? 我的系统看起来似乎没问题,因为我没修改前一切正常,但修改后就不行了。 |
|
|
10楼#
发布于:2002-11-13 10:18
[quote]用记事本修改应用程序就不行。估计是字符转换的问题。是否用UNICODE? 你为什么非要说用工具修改程序呢? 我是在我的程序里修改程序,直接修改二进制代码。 [/quote] [编辑 - 11/13/02 by ydyuse] |
|
|
11楼#
发布于:2002-11-13 10:19
修改会原来的样子可以么?
|
|
|
12楼#
发布于:2002-11-13 10:20
你没看清楚我的问题。我上面说过,修改后的文件,我一碰就死掉,更别说打开了。 大家注意,现在的主要问题是我不能碰修改后的文件,更无法打开了 |
|
|
13楼#
发布于:2002-11-13 10:24
你没看清楚我的问题。我上面说过,修改后的文件,我一碰就死掉,更别说打开了。
大家注意,现在的主要问题是我不能碰修改后的文件,更无法打开了 [/quote] 我不能回答你修改后的程序为什么不能碰?除非你给SOURCE。 但我是在让你无何避免! 究竟是谁没看清楚?花猫 |
|
|
14楼#
发布于:2002-11-13 10:25
你把 exe 文件改坏掉了吧。
|
|
|
15楼#
发布于:2002-11-13 10:28
我不能回答你修改后的程序为什么不能碰?除非你给SOURCE。 真奇怪,既然你看清楚了,为何还让我用UltraEdit看?能看吗?当然不能。 能给源码吗?当然不能。 大狗,我不能确定是不是坏了。 死掉的进程无法杀死,怎么回事? |
|
|
16楼#
发布于:2002-11-13 10:30
你在纯 DOS 下把它的扩展名改成别的,再到 windows 里,
如果在资源管理器能碰了,应该就是你改坏了。 |
|
|
17楼#
发布于:2002-11-13 10:30
我想是你修改后的文件中有非法字符。如果在Windows下面没有办法的话,建议你在纯dos下用debug看看。你也不必死脑筋一定要在windows下解决这个问题。
|
|
|
18楼#
发布于:2002-11-13 10:35
我想是你修改后的文件中有非法字符。如果在Windows下面没有办法的话,建议你在纯dos下用debug看看。你也不必死脑筋一定要在windows下解决这个问题。 用debug? 我这可是32位程序,还要调用Win32 API 如果只是用Debug看看16进制代码,看不出什么 大家注意,如果只是单纯的文件坏了,为何不能碰?一碰就死? |
|
|
19楼#
发布于:2002-11-13 10:39
可能是把跳转地址或某些参数改错了,所以文件按照可执行方式一打开就跳飞了,这样就会死机。
|
|
|
上一页
下一页