首页
社区
课程
招聘
关于结束调试进程(WaitForDebugEvent)
发表于: 2006-9-29 09:08 7690

关于结束调试进程(WaitForDebugEvent)

2006-9-29 09:08
7690
收藏
免费 7
支持
分享
最新回复 (10)
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
2
因为你在调试它
你自己退,它也退
2006-9-29 09:11
0
雪    币: 220
活跃值: (107)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我就是想摸拟注册机的方式算号嘛,在程序启动时自较验注册码时替换成的序列号,然后自动算出注册码(因为是明码比较,所以不想分析算法),所以算完一个号就要终止这个被调试的程序,然后再重新建立被调试的程序,就像OD那样“重新开始”调试程序。
2006-9-29 09:19
0
雪    币: 99
活跃值: (2613)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
最初由 ttabcs 发布
我想自己弄个内存注册机,可是当我用WaitForDebugEvent调试进程后,在取得注册码后,想终止被调试的程序,用 TerminateThread和TerminateProcess都不能结束掉,不知道为什么,请大家指教!

要把被调试进程中所有的进程句柄,线程句柄和文件句柄统统关掉,然后再TerminateProcess即可。
2006-9-29 20:23
0
雪    币: 220
活跃值: (107)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
那样也许太麻烦了,再说了也不了解,
我现在想出了个简单的方法,就是建立一个A进程来对那个要debug的
程序进行调试,完了以后我让A进程自已退出,所以就可以不理会debug
进程的所有句柄(它也有自动结束所有)。嘿嘿嘿
2006-10-8 15:35
0
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
6
在你自己的调试进程中新建一个线程作为调试体(既在该线程内实现的你调试目标),然后结束该线程的话,就可以结束被调试进程
2006-10-8 16:30
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
7
还是北极星2003厉害,学习了
2006-10-8 16:35
0
雪    币: 220
活跃值: (107)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
老大就是老大,一语惊醒梦中人,
我开始被进程迷惑了,搞个又进程还要将一些变量写到那个进程
    中去,麻烦死,还要分析文件名件。晕罗。
又长进了,呵呵呵。
2006-10-8 21:23
0
雪    币: 99
活跃值: (2613)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
最初由 北极星2003 发布
在你自己的调试进程中新建一个线程作为调试体(既在该线程内实现的你调试目标),然后结束该线程的话,就可以结束被调试进程

这样会造成资源泄漏。
2006-10-8 22:46
0
雪    币: 222
活跃值: (10)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
10
关闭相关句柄(注意释放各种从DEBUG事件中获得的句柄),然后将被调试进程的主线程EIP设置到Kernel32!ExitProcess处,收到EXIT_PROCESS事件后关闭最后两个线程和进程句柄,ContinueDebugEvent即可
2006-10-9 03:00
0
雪    币: 220
活跃值: (107)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
我仔细看过了双进程和双线程的区别,
双线程的句柄是每运行一次就增加很多,
双进程就因为退出了,所以也跟着释放了。
可要是要记录些句柄,相关处理真的要做得细致很多。
我虽然也想追求完美,但能力有限,多占用点资源就多占用点吧。
系统的句柄我想我是花不光的吧。
2006-10-9 08:40
0
游客
登录 | 注册 方可回帖
返回
// // 统计代码