ysy
ysy
驱动中牛
驱动中牛
  • 注册日期2002-02-18
  • 最后登录2008-08-25
  • 粉丝0
  • 关注0
  • 积分201分
  • 威望29点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
阅读:2017回复:8

一个小程序

楼主#
更多 发布于:2007-10-16 11:36
首先声明,虽然程序有连网动作,但是没有任何木马。只是试图更新程序,后面我会慢慢说明原理。
希望有人帮我测试一下。安装并重新启动计算机看看回不会蓝屏,如果蓝屏,只需进入保护模式卸载即可。并且改程序的卸载也要进入保护模式。
另外还需注意一点就是可能会和杀毒软件,防火墙存在冲突。
该程序支持2k-vista,但是不支持vista防火墙。
附件名称/大小 下载次数 最后更新
setup.zip (907KB)  17 2007-10-17 09:24
ysy
ysy
驱动中牛
驱动中牛
  • 注册日期2002-02-18
  • 最后登录2008-08-25
  • 粉丝0
  • 关注0
  • 积分201分
  • 威望29点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
沙发#
发布于: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实现,这样做的目的就是简单,没有别的原因。
ysy
ysy
驱动中牛
驱动中牛
  • 注册日期2002-02-18
  • 最后登录2008-08-25
  • 粉丝0
  • 关注0
  • 积分201分
  • 威望29点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-10-16 13:05
占坑
ysy
ysy
驱动中牛
驱动中牛
  • 注册日期2002-02-18
  • 最后登录2008-08-25
  • 粉丝0
  • 关注0
  • 积分201分
  • 威望29点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-10-16 16:16
占坑
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
地下室#
发布于:2007-10-16 17:17
开源?~不开源,还要拿个ida看看,boot 0的驱动,safemode卸载的了?
没有战争就没有进步 X3工作组 为您提供最好的军火
zealsoft_zhu
驱动小牛
驱动小牛
  • 注册日期2004-03-30
  • 最后登录2014-07-30
  • 粉丝2
  • 关注0
  • 积分22分
  • 威望375点
  • 贡献值0点
  • 好评度137点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-10-16 17:22
呵呵,试还是不试呢,只是害怕搞得我重新安装系统。
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
6楼#
发布于:2007-10-16 17:28
引用第5楼zealsoft_zhu于2007-10-16 17:22发表的  :
网上的程序,如果没有源代码我一般都不用,有源代码我也是先看看源代码,自己编译一下再用,谁知道里面有没有什么东西


除了大牌公司的程序,其他的我也是按照这个原则工作,不过添上一条:没有源码的一般我要ida,放虚拟机跑跑看看,加壳就脱壳,这年头上网还是小心为妙~
没有战争就没有进步 X3工作组 为您提供最好的军火
ysy
ysy
驱动中牛
驱动中牛
  • 注册日期2002-02-18
  • 最后登录2008-08-25
  • 粉丝0
  • 关注0
  • 积分201分
  • 威望29点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-10-16 18:20
引用第4楼killvxk于2007-10-16 17:17发表的  :
开源?~不开源,还要拿个ida看看,boot 0的驱动,safemode卸载的了?

因为我担心搞死机器所以如果是进入保护模式,不做任何动作,同时安全目的,进入保护模式卸载。
xaxiao
驱动小牛
驱动小牛
  • 注册日期2007-09-11
  • 最后登录2010-02-10
  • 粉丝1
  • 关注0
  • 积分1分
  • 威望199点
  • 贡献值0点
  • 好评度197点
  • 原创分2分
  • 专家分0分
8楼#
发布于:2008-04-04 13:35
看看源代码嘛
游客

返回顶部