首页
社区
课程
招聘
[注意]如果完全抛弃使用任何句柄,该如何调试程序!
发表于: 2007-12-18 06:09 5855

[注意]如果完全抛弃使用任何句柄,该如何调试程序!

2007-12-18 06:09
5855
我认为调试类或破解类软件迟早要走到这一地步的,这是我在研究WRK的时候得出的结论,详细情况请允许我暂时卖个关子,总之以后,就我猜测反破解软件可以做到这一点,任何使用了句柄的调试或破解类软件都会被抓住。显然如果这样,一切操作都可能要用到系统底层的函数,可不幸的在于WINDOWS底层的内核函数有时候也会用到句柄,想问一下,如果放弃使用任何句柄,目前的调试手段有多少就是完全无效的,有没有什么替代手段。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
2
怎么总是想无聊的事情啊
2007-12-18 10:27
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
完全不懂楼主的意思...
2007-12-18 10:49
0
雪    币: 266
活跃值: (52)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
4
还要卖个关子
2007-12-18 11:26
0
雪    币: 80
活跃值: (14)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
好吧,算我开始没说清楚,如果看了《Windows Internals》你会发现,第三张系统机制的对象管理器一节中,列出了对象头的格式,对象头的格式中包含了一个域,“已打开句柄列表”,也就是说,哪个进程使用了该对象的句柄,那么这个进程就会被列入该列表中,如果在反调试的过程中,遍历该列表,可以快速找到目前有可能对被保护进程有所动作的可疑进程。

由于大多数调试类软件中的选择被调试的进程这一环都由用户来选,所以这一块处于用户态,一定用的是句柄的方法。我看了一下,象OLLYDBG和VSS2005这类软件,在调试具体进程的时候,用微软的HANDLE工具可以看到,它们的已打开句柄列表中都有被调试进程的PROCESS对象句柄。如果我是反调试软件,我可以不停的扫描我要保护的进程对象的对象头的已打开句柄列表,如果心狠手辣的话,只要发现有可疑进程,就立即杀掉。

选择被调试的进程也可以在内核级别进行,这样就绕开了句柄这一环,但关键在于内核模下的操作系统例程不是完全不使用句柄,有几个例程还是要用到的,这从WRK里的几个内核函数可以看出来,有几个函数是需要用句柄来做参数。所以想完全绕开句柄有点难。有句柄我想上面的反调试手段就应该会有效。所以目前我想了解和讨论的话题是,如果完全不用句柄,想调试一个程序该怎么走。这样说,不知道大家明不明白。

谢谢!
2007-12-18 13:08
0
雪    币: 124
活跃值: (70)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
你想把自己隐形?那你就不要以物质形式出现
2007-12-18 13:57
0
雪    币: 325
活跃值: (97)
能力值: ( LV13,RANK:530 )
在线值:
发帖
回帖
粉丝
7
什么时候开始流行WinDbg?
2007-12-18 14:14
0
雪    币: 80
活跃值: (14)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
不知道楼上什么意思,WinDBG好象也要用到句柄的吧。
2007-12-18 14:35
0
雪    币: 217
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
小问题,用虚拟机可以解决,完全透明调试
2007-12-18 16:21
0
雪    币: 80
活跃值: (14)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
可否请楼上朋友给一个详细的说法,具体用什么软件啊!我对虚拟机还不太了解。
2007-12-19 03:00
0
游客
登录 | 注册 方可回帖
返回