首页
论坛
课程
招聘

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

2007-12-18 06:09 4376

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

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

[推荐]看雪企服平台,提供项目众包、渗透测试、安全分析、定制项目开发、APP等级保护等安全服务!

最新回复 (9)
forgot 26 2007-12-18 10:27
2
0
怎么总是想无聊的事情啊
soychino 2007-12-18 10:49
3
0
完全不懂楼主的意思...
szdbg 5 2007-12-18 11:26
4
0
还要卖个关子
JSniperWYC 1 2007-12-18 13:08
5
0
好吧,算我开始没说清楚,如果看了《Windows Internals》你会发现,第三张系统机制的对象管理器一节中,列出了对象头的格式,对象头的格式中包含了一个域,“已打开句柄列表”,也就是说,哪个进程使用了该对象的句柄,那么这个进程就会被列入该列表中,如果在反调试的过程中,遍历该列表,可以快速找到目前有可能对被保护进程有所动作的可疑进程。

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

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

谢谢!
jskew 1 2007-12-18 13:57
6
0
你想把自己隐形?那你就不要以物质形式出现
foxabu 13 2007-12-18 14:14
7
0
什么时候开始流行WinDbg?
JSniperWYC 1 2007-12-18 14:35
8
0
不知道楼上什么意思,WinDBG好象也要用到句柄的吧。
hengking 2007-12-18 16:21
9
0
小问题,用虚拟机可以解决,完全透明调试
JSniperWYC 1 2007-12-19 03:00
10
0
可否请楼上朋友给一个详细的说法,具体用什么软件啊!我对虚拟机还不太了解。
游客
登录 | 注册 方可回帖
返回