首页
社区
课程
招聘
求助关于CreateProcess函数的DEBUG_PROCESS造成进程不能结束的问题
2011-8-29 01:48 5596

求助关于CreateProcess函数的DEBUG_PROCESS造成进程不能结束的问题

2011-8-29 01:48
5596
    
Select Case fGetLong(DebEv.dwData, 3)''DebEv.u.Exception.ExceptionRecord.ExceptionCode

    Case EXCEPTION_BREAKPOINT:
    dwStatus = DBG_CONTINUE
    Select Case Bpcount:
    Case 0:

    Debug.Print "Breakpoint Surntdll.DbgBreak(c normal): &H" & Hex(fGetLong(DebEv.dwData, 15))
    Bpcount = Bpcount + 1

    Case 1:
    Debug.Print "endof debug"

    Ret =WriteProcessMemory(lpPi.hProcess, ByVal OEP, ByVal VarPtr(BytesEP(0)), 1, 0)
    Ret =TerminateProcess(lpPi.hProcess, 0)
    GoTo Exit1
    End Selectt]


    Case EXCEPTION_ACCESS_VIOLATION:'//don't care about THE SEH !
    dwStatus =DBG_EXCEPTION_NOT_HANDLED

    Case Else:
    dwStatus = DBG_CONTINUE
    End Select
    End Select

这是在VB中用DEBUG_ONLY_THIS_PROCESS +DEBUG_PROCESS 模式调用

CreateProcess函数的形式。

可以创建成功,并且可以调试。

我的问题是,在我用TerminateProcess结束进程时,为什么用任务管理器查看的时候,进程根本没有销毁。

而是在VB工程退出时,才销毁。?

可运行代码见附件

[培训]科锐软件逆向50期预科班报名即将截止,速来!!! 50期正式班报名火爆招生中!!!

上传的附件:
收藏
免费 0
打赏
分享
最新回复 (4)
雪    币: 73
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
私仇之路 2011-8-29 12:20
2
0
ContinueDebugEvent
雪    币: 139
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kylinpoet 2011-8-29 15:45
3
0
ContinueDebugEvent 有添加,具体见附件,上面的只是一部分。。
雪    币: 11
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rqqeq 2011-8-30 12:04
4
0
晕死,你在这边也发了帖子,而且还翻译了
再次回答:
结束进程是系统会检测进程是否被调试,必须要用DbgUiStopDebugging终止调试才能关闭(不停调试插apc都关不了)
当调试进程退出时(即使不TerminateProcess进程)被调试进程也会自动退出
雪    币: 41
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dzyssssss 2011-9-1 17:26
5
0
况且TerminateProcess函数调用后,即使不在被调试下未必一定能关闭哦!!! 使用TerminatePorcess时是需要注意这个问题的。
游客
登录 | 注册 方可回帖
返回