首页
社区
课程
招聘
[注意]0XC0000008错误中的一例子
发表于: 2014-10-17 06:38 13242

[注意]0XC0000008错误中的一例子

2014-10-17 06:38
13242
昨天修改了一下代码出现0XC0000008异常,调试时候一直跳出来,检查了很久没有发现问题,看网上说的一些例子,结合自己的修改总算知道其中一个例子会发生这样异常,写下本文供自己记忆整理之用。
原来总的结尾代码是下面的也一直没有问题
if (pi.hProcess)
{
   TerminateProcess(pi.hProcess, 0);
   CloseHandle(pi.hThread);
   CloseHandle(pi.hProcess);//实际上这边就异常了所以尝试半天时间看
}
if (pData->hProcess)
{
   CloseHandle(pData->hProcess);
}
if(checkANSERLOG==1)//调试器到这边报异常vs调试器给一个大概地址
{
                                    .
                                    .
                                    .
}

上面代码原来不报异常的。在代码之前加了2行代码

pData->hProcess=pi.hProcess;//为了多加一个检测加了这2条语句
            ...
CloseHandle(pData->hProcess);

结果导致后面  CloseHandle(pi.hProcess);
出现0XC0000008异常,原来CloseHandle只能关闭一次别画蛇添足再来一次那就异常了。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 459
活跃值: (398)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
2
我想windows 完全可以 在你第二次关闭句柄时发现是无效句柄,不做任何处理。
但为了告诉你这么做不合规矩,就给你报异常
2014-10-17 08:41
0
雪    币: 16420
活跃值: (1670)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
原来是这样啊。
2014-10-17 09:48
0
雪    币: 73
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这个是演示代码,演示如何出先错误,你要避免错误那是你代码上的处理问题了。我这个代码只是让大家知道碰到同样问题可以参考下是不是出现演示错误那样。
2014-11-13 08:55
0
游客
登录 | 注册 方可回帖
返回
//