阅读:2017回复:8
一个小程序
首先声明,虽然程序有连网动作,但是没有任何木马。只是试图更新程序,后面我会慢慢说明原理。
希望有人帮我测试一下。安装并重新启动计算机看看回不会蓝屏,如果蓝屏,只需进入保护模式卸载即可。并且改程序的卸载也要进入保护模式。 另外还需注意一点就是可能会和杀毒软件,防火墙存在冲突。 该程序支持2k-vista,但是不支持vista防火墙。 |
|
|
沙发#
发布于:2007-10-16 11:41
首先说明一下目的,本来是想开发一个类似于杀毒软件或者防火墙或者数据加密的东西,但是发现工作量实在太大,想做成一个产品实在太难,所以干脆公布于此。
驱动程序的启动是boot方式,隶属于System Reserved组。原因还是希望能够早些启动。 驱动程序安装还是使用普通的CreateService方式。 setup结束驱动程序就已经加载,加载程序的目的是启动保护机制,保护程序自身的文件不被更改和删除。重新启动计算机的目的是hook相关的api和相关的驱动程序。目前还没有实现动态hook。安装结束之后文件的保护仅仅是独占方式打开相关的文件而已,也是因为这个原因,驱动程序只做了一个,里面实现所有功能,应用程序也只有两个,下一步也要改为一个。不用dll库,改用lib库。watcher.sys, wachmain.exe,wachsrv.exe. 其中wachmain只是显示相关的信息给用户,autorun方式启动 wachsrv.exe则是用于更新程序,以service方式启动,下一步该程序也将要被剔出。程序的自动更新有驱动程序来实现。 驱动程序创建的设备名称是动态的,也是防止恶意程序抢占了该名称导致应用程序无法和驱动通信。名称规则其实很简单,就是一个64位整数递增,想法就是除非恶意程序抢占了所有的这些名称,否则就是可以启动起来。打开设备以后要验证该驱动程序是否是我们自己的驱动,验证方法是一段随机加密的密文。 因为对于杀毒引擎实在不熟,所以对于恶意程序的判断是通过md5验证,所以一但恶意程序修改了自己的一点点内容,也会导致判断失误。对于和特征库md5一样的程序,该文件就不能打开了。这个特征库设计目标是可以随时更新的,并且也已经实现,但是由于没有服务器可用所以测试并不是很多,但是是经过测试的。程序特征放在windwos\wvlib目录,如果重新启动电脑后会对wvlib目录保护,该目录从浏览器是不能访问。对于该目录的保护是通过hook fs dispatch routine 实现,没有新招。但是对于恶意程序的验证时通过hook api实现,hook api不是hook ssdt 也不是修改入口,而是找到程序call 的地方进行修改指令执行顺序。并且监控如果fs hook部分被unhook之后重新hook fs。之所以从ssdt验证md5是因为没有解决掉在fs级别如何验证。具体是hook IoCreateFile实现。 对于自己进程保护是通过hook ntopenprocess实现。检验进程是通过比较全路径名实现。进程的的检测时通过标准的notify来获得。 对于tdi也是通过hook dispatch routine实现,这样做的目的就是简单,没有别的原因。 |
|
板凳#
发布于:2007-10-16 13:05
占坑
|
|
地板#
发布于:2007-10-16 16:16
占坑
|
|
地下室#
发布于:2007-10-16 17:17
开源?~不开源,还要拿个ida看看,boot 0的驱动,safemode卸载的了?
|
|
|
5楼#
发布于:2007-10-16 17:22
呵呵,试还是不试呢,只是害怕搞得我重新安装系统。
|
|
6楼#
发布于:2007-10-16 17:28
引用第5楼zealsoft_zhu于2007-10-16 17:22发表的 : 除了大牌公司的程序,其他的我也是按照这个原则工作,不过添上一条:没有源码的一般我要ida,放虚拟机跑跑看看,加壳就脱壳,这年头上网还是小心为妙~ |
|
|
7楼#
发布于:2007-10-16 18:20
引用第4楼killvxk于2007-10-16 17:17发表的 : 因为我担心搞死机器所以如果是进入保护模式,不做任何动作,同时安全目的,进入保护模式卸载。 |
|
8楼#
发布于:2008-04-04 13:35
看看源代码嘛
|
|