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相当容易
大家写驱动时不要犯这样的错误了...
不说了,有兴趣的自己看代码吧
上传的附件
文件类型: rar ILDriver完整逆向.rar (2009-01-01 20:30, 264.0 KB, 141 次下载)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章