天天看点

Icelight驱动部分完整逆向(源代码)

 by achillis

Icelight(一线光)是个安全小工具,整体功能比较一般,但自我保护还不错,比较全面吧.

前几天不能上网,无聊之中看到Icelight的驱动不大(14k),于是就把它给逆了一下,也是我第一次完整逆一个驱动.

驱动中Hook时用了两个反汇编引擎(搞不懂为什么用两个),其中一个是LDasm,就直接拿来用了.

另一个水平有限,还原成的C版不准确导致有时候结果不正确,无奈之下用了原版汇编~~

对应的程序版本:1.8.802

TimeDateStamp:4886978D

驱动源码编译通过,可以替换原驱动正常工作~~

里面用的相关技术没有很特别的,但是应该说比较实用,至少有以下看点:

1.SSDT Hook 保护进程(Hook函数写的很ws哈)

2.SSDT Shadow Hook(有8个相关函数,比较全了)

3.强制删除文件(这个作者也说了,是参考自网上一份代码)

4.一字节两次跳转法Hook PspTerminateThreadByPointer保护自己线程

5.直接投递Apc杀线程(为杀线程准备了两个ApcRoutine,获取PsExitSpecialApc失败就用自带的)

5.强制杀进程(自己遍历ThreadList然后逐个投递Apc杀之)

需要以上代码实例的尽可来A~~

不足之处:

1.有一个反汇编引擎没有还原成C(之前还原成C版的了,但是用的时候结果不完全正确,只好先用原版汇编的保证准确度)

2.程序退出后,驱动卸载之后会有一些遗留问题,进程无法打开,关于窗口的部分操作不正常,这个我找不出原因来,大牛帮解决下...

这个驱动的DeviceIoControl例程中对于用户层传入的参数不论是读还是写都不作任何检查,所以想搞个BSOD相当容易

大家写驱动时不要犯这样的错误了...

不说了,有兴趣的自己看代码吧 上传的附件

Icelight驱动部分完整逆向(源代码)
ILDriver完整逆向.rar (2009-01-01 20:30, 264.0 KB, 141 次下载)

继续阅读