能力值:
( LV2,RANK:10 )
|
-
-
2 楼
翻译辛苦
表示感谢哈
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
辛苦了~期待第二部分的翻译
|
能力值:
( LV3,RANK:20 )
|
-
-
4 楼
这个必须学习啊,谢谢楼主分享
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
恩恩,写的不错,翻得精彩,LZ再接再厉哦
|
能力值:
( LV12,RANK:320 )
|
-
-
6 楼
作者是时隔1年写的第二部分,文章很长会翻译的,毕竟我也想写个调试器玩玩嘿嘿
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
多谢分享,学习了。下面几点是以前所不知道或者不是很清楚的:
3. 仅能有一个调试器被attach到被调试程序上(即不能同时有多个调式器去调试同一个进程). 但是一个调试器进程可以调试多个进程(用不同的线程).
4. 只有创建被调试程序的线程才能调试目标进程.因此,CreateProcess和调试器循环必须在同一线程中.
5. 当调试器线程结束,被调试程序也要结束.但是调试器进程可能继续运行.
6. 当调试器的调试线程忙于处理一个调试事件,被调试程序(目标进程)的所有的线程会被挂起. 对于4,和5有些疑问:
4. 如果是attach的话不属于这种情况吧。
5. 没有不终止被调试进程而detach的方法么?
|
能力值:
( LV12,RANK:320 )
|
-
-
8 楼
对于4:attach情况也属于.因为消息是基于线程的,如果DebugActiveProcess和调试循环不在同一线程中,发生调试事件时,那个线程就不能处理了,除非你在两个线程中都写上调试循环(不过这样有点舍本逐末了).
对于5:是有方法的.首先调试进程结束,被调试进程的结束默认是系统帮我们结束的.如果在低版本系统中,可以跟踪系统到底是怎么结束被调试进程,然后找到相关API打个补丁应该就可以,如果是高版本系统可以使用Windows提供的API DebugSetProcessKillOnExit来达到这个目的.
但是我个人觉得调试进程结束,被调试进程也结束是有益的. 万一你用OD分析一个病毒,仅仅想得到病毒内一个加密字符串最后解密后的结果是怎样的,然后得到了,退出OD,病毒执行了,这时你总不能骂微软吧,哈哈,所以微软还是考虑很周全的.
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
恩 这个值得关注
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
下载学习下。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
学习下
|
|
|