生产实习 — 基于Windows内核的Anti-Rootkit工具

最近忙于校内生产实习的答辩,答辩完后,也就正式步入大四了。时间一晃而过,转眼四年即将到尽头,我也即将步入社会。略为感慨,有点舍不得现在的大学生活,可以参加各种兴趣的活动,可以和同学们好好的玩/学一天,可以做自己想做的事情,不受约束。想到工作后每天上班下班,或者加班…  面对各种挑战,哎~想那么多干嘛,先来说说这次做的软件。

一、作品介绍

随着信息科技的迅速发展,Internet已经成为全球最重要的信息传播工具。当人们在享受网络为我们的工作、生活带来方便和效率的同时,但它们潜在地也带来了安全问题。据了解,凡是接触过互联网的人,大部分人都被入侵过,并且安全威胁事件逐年上升。可见黑客如此猖獗,应该采取什么手段来防止黑客入侵是大家普遍关心的问题。俗话说:“亡羊补牢,为时未晚”,面对网络安全威胁,大家总不断与邪恶势力斗争,魔高一尺,道高一丈,总有办法阻止黑客的入侵。

长期以来,最为严重的安全威胁就是恶意程序。恶意程序不仅会给个人带来危害,如个人隐私被窃取,还会给企业带来巨大损失,最为严重的是还可能使国家安全面临严重的威胁。                                         

因此,恶意程序,尤其是间谍软件和Rootkit已经成为了计算机安全领域的重点防范对象。

本软件所做的工作:

1.分析PE文件结构:节表、导出导入表分析。

2.检测隐藏进程:搜索某些通过各种方法隐藏的进程。

3.强杀进程:能够杀死系统中的对自身保护的恶意进程。

4.保护进程:保护进程不被用户结束掉。

4.强杀线程:能够强制结束掉进程下的某个线程。

5.强制卸载模块:能够强制卸载掉附加在某个进程下面的不明模块。

6.枚举内核模块:通过在驱动下遍历内核模块链表来枚举隐藏的模块。

7.SSDT检测:检测SSDT,可以看出哪些函数被HOOK了,并恢复被HOOK的表项。

8.ShadowSSDT检测:检测ShadowSSDT,可以看出哪些函数被HOOK了,并恢复被HOOK的表项。

9.键盘监控:过滤键盘驱动,并显示当前按键信息。

10.网络监控:查看当前实时的网络访问流量。

11.进程创建监控:当创建新的进程时,会弹出对话框,用户可以选择允许或阻止。

该作品不仅能够用于个人电脑上作为杀毒软件的辅助工具,还能作为计算机安全人员研究Rootkit的参考工具,为其研究Rootkit提供方便。

二、作品展示

下面是进程线程管理的主界面:

wps_clip_image-5777

管理功能:

wps_clip_image-5923

SSDT检测部分:

wps_clip_image-6057

网络流量监控:

wps_clip_image-6204

其它功能图就不一一贴上来了。

三、实现细节

因为涉及的知识点太多了,我就不在这里一一细说,但是我会在后面另写博文来分别讲解这些知识点O(∩_∩)O哈!

四、待完成的功能

由于时间仓促,还有许多功能没有完成,比如文件系统的过滤加密、驱动防火墙、NTFS文件系统分析等等,这些功能我会慢慢的去完成它。

五、总结

这次生产实习和以前的课程设计或者实验之类的课题大有不同,首先从规模上来讲,这次的软件规模要以以前的都要大,都要难,涉及的知识很多。以前都是比较简单的一个课题,然后针对这个课题简单运用已经学习过的知识点即可。但是这次我选择的课题是以前都没有接触过的,也就是意味着要从头开始学习新的东西,并把学到的知识实现出来。

由于我选择的是Anti-Rookit类的软件,而网上关于这方面的东西讲的都很少,很多东西都需要自己来探索,但是这也培养了我的学习能力和解决问题的能力。一开始学习的时候确实很痛苦,不知道从何开始。但是,我慢慢从基础的东西一点点开始学习,买了很多书来看,逐渐对以前不知如何下手的问题有了一些自己的想法,便开始慢慢的去实现它。一开始的时候会很多莫名其妙的错误,网上也没有具体的解决方案,很是苦恼,只能自己摸索,不过在摸索的过程中,我发现自己又学习了一些新的解决问题的方法,原来一些很困难的问题也变得不是那么难了。

通过这次生产实习,感觉自己的能力确实提高了很多,不管是学习能力还是解决问题的能力,很多事情不要认为自己不可能做到就不愿意去尝试,不去尝试你永远也不知道自己能不能做到,所以说要勇于尝试,勇于挑战,就算碰壁了那又有什么关系呢?

六、参考文献

[1] (美)Stanley B. LippmanBarbara E. Moo JoséeLaJoie. C++ Primer[M]. 人民邮电出版社, 2010.

[2] 侯俊杰. 深入浅出MFC[M]. 华中科技大学出版社, 2001.

[3] 谭文, 杨潇, 邵坚磊. 寒江独钓[M]. 电子工业出版社, 2009.

[4] 张帆等. Windows驱动开发技术详解[M]. 电子工业出版社, 2008.

[5] 罗云彬. Windows环境下32位汇编语言程序设计[M]. 电子工业出版社, 2003.

[6] 戚利. Windows PE权威指南[M]. 机械工业出版社华章公司, 2011.

[7] 看雪论坛 http://www.pediy.com/

[8] Coder 我的博客 http://www.alonemonkey.com

本文链接:http://www.alonemonkey.com/windows-anti-rootkit.html