关于rootkit和anti-rootkit的一些思考(一)

       作了进两个月的rootkit和anti-rootkit,不免有很多思考。你一直在想握着篇文章算是什么类型的呢,心得,算不上,讲技术的,更不说,就叫日志吧。如果你不幸看到这篇文章,发现几乎没有叫的是对的,请不要大惊小怪。当然我更欢迎你指出。

       说道rootkit和anti-rootkit,我想有一个不能不说的是hook。很多rootkit和anti-rootkit产品都在hook上做了很多手脚,比如icesword,darkspy等等。假如一个rootkit想做个防进程结束的东西,他可能做的是去hook TerminateProcess(r3态)或是NtTerminateProcess,PspTerminateProcess或是更下面点的PspTerminateThreadByPoint等等,当然anti-rootkit则做的是相应的反hook,或是去hook更低下的函数。于是相应针对这种hook的方法就出来了,比如炉子的通过改线程ETHREAD结构的CrossThreadFlags来防进程中止。我不知你试过没有这种方法是可以过icesword的,我相信如果你知道icesword杀进程的原理和那种方法防杀的原理,你就会很容易明白这些。同样我们也知道如果你要写个防删的东西,你会去hook一些关于文件操作的函数,而anti-hook则会又是反hook或hook更低的函数(当然想icesword这样高级的不再做这些了)。

     无休止的hook、反hook到头来就看谁技高一筹爬到最低下了。但你有没有换种方法试试,就像炉子那样的思路走一下非hook的路线。就像是文件的隐藏和防删除,你会做点什么,对于anti-rootkit的你还会去简单的hook吗,或者是更强点的如何做到的让别人不能hook或是不好hook呢?相信你一定看过有人写的通过MmFlushImageSection来实现的,好不好呢。很不错,效果很好。但好像很容易被hook调,我的一个方法是hook ObReferenceObjectByHandle这个函数很容易过这种方法,甚至是这一类方法。那有没有好一点的方法呢?我个人认为的好一点的方法是通过OpenFile和WriteFile。也许你会笑,这不更差了吗。不一定吧,如果你OpenFile的不是要删的文件,而是盘符,或是别的什么的,通过数据分析来找到该文件从而删除它,我相信这被hook的可能就不大了。同样对付炉子的那个防杀的东西你有了思路吗?darkspy是可以的,但我不知道具体的方法,就炉子的分析是自己实现PspTerminateProcess之类的。我用PspTerminateThreadByPointer是不行,我不知是不是我编程的问题。但我用在线程apc队列里写一段代码的方法很和谐的结束了它。

    我不知道我叫了这么多,你想到了些什么吗。不要老是hook,hook的,icesword通过查系统内核结构的方法使得很多通过hook来隐藏进程的人没了方法,futo-rootkit的DKOM又是冰刃暂时没辙了,我相信如果你还思路也一定搞定futo-rootkit下的进程隐藏,我就是现一种简单,但很实用的算法实现了。

    希望这篇文章对于你的rootkit和anti-rootkit之路有点小帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值