能力值:
( LV11,RANK:190 )
|
-
-
2 楼
驻足留名,顶了
|
能力值:
( LV4,RANK:50 )
|
-
-
3 楼
学习了~~~
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
写的不错。。。。很有启发
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
|
能力值:
( LV9,RANK:610 )
|
-
-
6 楼
支持一下楼主~~
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
这个必须顶。。。我都想弄到我论文里去唬老头们了~
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
顶,好厉害。。。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
支持一下,希望还有后续
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
顶,很给力,加油。
|
能力值:
( LV7,RANK:100 )
|
-
-
11 楼
不错,前提是必须有一个反调试进程。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
其实hook swapcontext这个方法在两年前就以前思考过了,当你思考得更细节时,你会发现很多问题,
现在大部分检测都会在被保护程序自身进程空间进行,
比如你对他下一个断点,而当这个断点被触发时,是在该进程空间中,此时你的swap hook会让他所有的内核代码hook都仍然存在,想想吧,接下来会发生什么?呵呵
以上言论纯属技术探讨,无其他意思
|
能力值:
( LV4,RANK:50 )
|
-
-
13 楼
首先感谢楼上的指点交流,不过你的回复我咋有点看的不是很明白?我通篇说的就是过在进程上下文反调试,他hook存在当然就不会检测到被恢复了,不是么? 想请ls的再详细说下
另外,这篇文章现在可能还有点问题。有很多其他的方面没考虑到,但我相信,只要对原理的细腻的理解是终究是可以做到的
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
就像之前我说的,目前大部分的保护方式都是,自身进程执行保护自己的代码.
而在切换到该进程时,所有的保护都会被你的程序恢复过来,就会有一些事情发生,
比如:
当程序通过hook IDT的中断处理程序来保护自己不被调试时,
一旦进程中触发了断点,转到中断处理程序里的时候,仍然是在该进程环境中,
由于你的hook swap忽悠反调试程序的方法,这时的IDT表是被该进程执行HOOK后的表,
那就会进入到保护程序HOOK后的中断处理程序中,至此,反反调试失败...
其他部分情况类似.
|
能力值:
( LV4,RANK:50 )
|
-
-
15 楼
回楼上,你说的没错
当然,恢复与不恢复主要还是看内核例程起什么作用和功能的,并非一成不变的全盘恢复,我所说的是对于大多数的在调试进程中需要用到的内核例程,楼主所说的是在被调试进程调试事件发送给调试器进程之前的反调试手段,希望和楼上一起探讨下这个问题~
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
不错,学习中。
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
没能看懂,不过正在学习中,以后再加入此类问题的讨论!
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
学习学习 相当给力呀~
|
能力值:
( LV3,RANK:20 )
|
-
-
19 楼
我离内核为什么这么远。
遥远的ring0啊
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
好文章,留记号
|
能力值:
( LV4,RANK:50 )
|
-
-
21 楼
好文章,顶一个
|
能力值:
( LV4,RANK:40 )
|
-
-
22 楼
内核中玩,,, very good
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
标记
|
|
|