|
注意:这篇科普不是什么“新科技”,而是老生常谈。 在内核里隐蔽执行代码,总体来说分为两类:隐藏驱动和“以BUFFER形式加载驱动”。
一、“五毛”技术:隐藏驱动并把DriverSection置零
隐藏驱动的基本手段是断链,这个大家都知道,可惜这样子不能过流行ARK(比如PCHUNTER)。网上有个老文章提出,可以自己去抹掉目录对象里的数据,再把PE头抹掉。这么做不是不行,但是这么做,不但硬编码多,而且影响驱动稳定性。其实有个简单的方法,代码就一行,即可让驱动从PCHUNTER的驱动列表里消失,对于其它ARK,即使搜索到了可疑驱动,也无法显示驱动路径:这样子隐藏驱动虽然很爽,但是有个严重的后果,就是不支持新系统:
二、高级技术:以BUFFER形式加载驱动
由于上述方法的严重后果,所以必须另辟蹊径。以BUFFER形式加载驱动,就是你自行把驱动文件给映射到内核并执行,替代系统自带的驱动加载函数。由于这一切都是你自己做的,自然无论用任何手段都找不到你的驱动了,也就达到了过任何检测隐藏驱动目的。这还有个额外的好处,就是驱动文件不落地(落地的只有驱动加载器),防止被竞争对手分析功能驱动。说到这里,估计有人要忍不住要去抄某些“国牛”在前几年在放的含坑代码了。其实真的不必,有个非常好的项目可以抄:但是,看到这里也暂时不要欢欣鼓舞,因为无论是方法一还是方法二,都有个麻烦的问题:估计肯定有人想问“有可以避免麻烦问题的方法吗”?答案是有的,估计乱七八糟的方法很多。我自己也想到了一个,并于用在了公司产品上,但限于“保守商业秘密”的原则就不公开了。 |
|