无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 559545|回复: 3535
打印 上一主题 下一主题

[sysshield]系统安全盾

[复制链接]
跳转到指定楼层
1#
发表于 2005-6-11 13:19:27 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
[这个贴子最后由wang6071在 2005/10/10 10:41pm 第 6 次编辑]

软件下载请到:
http://free5.ys168.com/?wangsea

一般来说,如果上面更新地址下到的[系统安全盾]是比较稳定的版本.如果软件更新,一般是在本贴最后先给出主程序测试,稳定后再上传到
http://free5.ys168.com/?wangsea

如果您好对本软件有好的建议,请在本贴后贴出您的建议.

目前软件性能稳定,功能基本成熟,已不开源,请不要再提类似问题.

完整安装包及程序使用说明请单独到偶的空间下载,本贴仅提供覆盖更新文件

[ 本帖最后由 wang6071 于 2006-9-22 11:40 PM 编辑 ]
2#
 楼主| 发表于 2005-6-11 13:20:47 | 显示全部楼层

[sysshield]系统安全盾

安全盾自定义规则说明:

  1:本级目录下不创建任何文件:全选X即可。

  2:本级目录及其子目录下都不允许创建任何文件:监视子目录打勾,其余打X。

  3:设置一个免检目录:勾选免检,其余打X。

  4:对某个目录使用免检列表,不在列表中的文件不允许创建:勾选免检+子目录,其余打X。

  5:自定义规则更改后必须应用设置才会保存,监控级别必须在自定义监视上才会有效。

组合应用示例:

  以下设置对应路径 子目录 免检  黑名单  模糊  类型
  (以下由文字代表选择√,未先择的用X表示)

  c:\                        规则:X X X X X
  这条设置是C:盘根目录下不允许创建任何文件,子目录不受影响。
  C:\Program Files\          规则:X X X X X
  注意,全X设置不能继承,所以我们对于c盘的子目录Program Files设置了一个相同的设置。

  但有的用户觉得对于c:\Program Files\设为不允许创建任何文件,要安装文件时自已切换到安全盾的
  安装模式中安装,所以对此目录可设置更严的规则
  C:\Program Files\          规则: 子目录 X X X X
  这样设置后,使用中发现C:\Program Files\KV2005\的病毒库升级在受到了影响,所以
  下面将Kv2005目录设置成免检目录。
  C:\Program Files\KV2005\   规则: X 免检 X X X
  

  c:\windows\                 规则: 子目录 X X X X
  对于windows目录,我们不希望有任何写入,上面的设定可实现这一点。可以,假设我们有一些程序需要
  写 runlog.log这个记录文件到c:\windows下时又如何办呢?
  我们需要先将runlog.log添加到免检文件中,再如下设置:
  c:\windows\                 规则: 子目录 免检 X X X
  这样c:\windows\目录下可以创建runlog.log,其它文件一律不允许创建。当然,如果我们想管理得宽松一
  些,比如使用只不允许创建类型过滤指定的文件时,可以选择:
  c:\windows\                 规则: 子目录 免检 X 类型  
                              或者: 子目录 免检 X 模糊 X  等.  

  c:\windows\temp\             规则: 子目录 X 黑名单 X X
  这个就简单了,对整个临时目录temp使用黑名单过滤。

  除了全X选项外(全X来能继承),其余规则是可以继承的即:
  c:\windows\              子目录 X X X X
  c:\windows\Fonts\        子目录 X X X X
  第二条设置相同规则就是多余的了,因为子目录Fonts不设置时可以继承父目录c:\windwos的设置。


                                                                    wangsea 20060921

[ 本帖最后由 wang6071 于 2006-9-21 11:05 PM 编辑 ]
回复

使用道具 举报

3#
 楼主| 发表于 2005-6-12 10:58:08 | 显示全部楼层

[sysshield]系统安全盾

非常感谢各位朋友对本软件的关注及测试。昨天过节,没看贴子,现在回答各位兄弟的对软件的提议
首先回答红叶兄的建议及关于userset.ini的写法问题:
emca兄的建议:
  1、“当前启动项”的内容框建议改为自动显示横向和纵向滚动条,以方便长路径地查看;
  其实可以自动横向与纵向的,实在不行还可以最大化窗口看.主要原因是使用了一个鸡肋控件Easysize,下一版将去除它(以前用它只是为了适应各种不同分辨率下窗口不变形,不过现在看来效果并不好).

  2、“进程监视”中建议添加进程文件对应的路径,则查杀恶意程序时更加方便、实用!而且也是必需的。
  因"进程监视"在win9x可显示完整路径及文件名,只是在NT系统如任务管理器一样无法显示路径及文件名,不过好象这个问题还是有办法解决的.
  3:对于属于系统本身的关键进程,能否以不同颜色显示?如果文件名及所在目录与系统中默认的一致,就可以以绿色显示;其余的以红色显示。如何?

  同2,如果取得文件路径,显示上做点功夫可以实现.

   4、“杀进程”功能,如果能够改进一下,改成前面带有复选框,用户可选择多个进程,然后一并查杀,以解决恶意程序的守护进程常规情况下无法关闭的问题;
   明白了,下一版改进.
关于在xp下使用userset.ini的问题:
   
   虽然偶努力想通过文字说清楚如何写userset.ini,但看来我的文字表达能力还是太差,还是有许多地方让各位兄弟不好理解呀.
   对于 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor 这样带有空格的键项名称,是否直接写入?还是要用引号括起来?
   是直接写入.不要用引号.如果对Command Processor主键名不太确定,可以打开注册表编辑器,找到这个键,然后右键重名定位到它的名字上,然后拷贝出它的名字.
这里提供本人添加的一些监视项目,不知道格式是否正确,请兄弟指教:
[locklist]
; 深山红叶提供
;
; 启用系统文件保护:
root=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
rkey=SFCDisable   //这个键值名可不行,因为它的类型是REG_MULTI_SZ型,本程序目前只支持REG_SZ型
rval=00000001     
;
; 保护系统初始化程序
root=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
rkey=Userinit  //这个可以使用,类型是REG_SZ
rval=%SystemRoot%\system32\userinit.exe,
;
; 保护系统外壳
root=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
rkey=VmApplet  //这个可以使用,类型是REG_SZ
rval=rundll32 shell32,Control_RunDLL "sysdm.cpl"
root=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
rkey=Shell    //这个也可以,但偶的win2003下 rval=Explorer.exe  不需要%SystemRoot%路径(以注册表中所见为准,不知xp是否有路径)
rval=%SystemRoot%\Explorer.exe
;
; 防范恶意程序彻底隐藏文件(开启显示隐藏文件也不行!)
rem 防范恶意程序彻底隐藏文件://不能用rem开头做注释,注释全部以;开头
root=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
rkey=Checkedvalue   //这个偶的注册表中无此键值名,看值的样子好象不是REG_SZ型
rval=00000000
;
root=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
rkey=valueName      //偶的注册表中无此键值名,如果是REG_SZ型就没问题   
rval=Hidden
;
root=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
rkey=Defaultvalue   //同上,偶的机器中无,查看你的注册表以确定
rval=00000002      
;其实对于系统默认没有的主键及键值可以加到[DelList]段删除就可以了,不必用locklist锁定
;锁定的话系统中没有此键或键值是会创建[locklist]中指定的主键或键值的.
;
root=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
rkey=HKeyRoot  //偶的机器上没有此键值名
rval=80000001
; 防范命令行自动运行参数被添加附加程序:
root=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
rkey=AutoRun   //这个可以使用
rval=
; 防范以登录或注销脚本形式自动加载恶意程序:
root=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts  //这个主键偶的机器上没有,加到[DelList]段删除中即可
rkey=              
rval=
; 修正和防范启动组位置重定向:
root=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
rkey=Startup  
;这个偶不确定,因为我的是rval=E:\Documents and Settings\Administrator\「开始」菜单\程序\启动
;各个机器可能会不同吧,以注册表中所见为准
rval="%USERPROFILE%\「开始」菜单\程序\启动"
;
; 防范通过 load 或 run 自动运行恶意程序和更改可执行文件类型:
root=HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows
rkey=load           //这个可以使用
rval=
root=HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows
rkey=run     //偶机器上没有此键名,可加到[DelList]中删除
rval=
;
;保持pif文件的打开方式
root=HKEY_CLASSES_ROOT\piffile\shell\open\command
rkey=        //这个可以使用
rval="%1" %*
;
;保持inf文件的打开方式
root=HKEY_CLASSES_ROOT\inffile\shell\open\command
rkey=  //偶机器上这个键值类型是REG_EXPAND_SZ,不能使用,另外,win2003下rval=%SystemRoot%\System32\NOTEPAD.EXE %1多了个路径system32
rval=%SystemRoot%\Notepad.exe %1
;
;保持hlp文件的打开方式
root=HKEY_CLASSES_ROOT\hlpfile\shell\open\command
rkey=    //这个可以使用
rval=%SystemRoot%\System32\winhlp32.exe %1
;
;保持cmd批处理文件的打开方式
root=HKEY_CLASSES_ROOT\cmdfile\shell\open\command
rkey=    //可以使用
rval="%1" %*
;
; 取消碎片文档类型:
;原始键值:rundll32 %SystemRoot%\system32\shscrap.dll,OpenScrap_RunDLL %1
root=HKEY_CURRENT_USER\ShellScrap\shell\open\command  
rkey=   //偶机器上没有此ShellScrap主键,可放在[DelList]段中删除即可
rval=
;
; 防止恶意 DLL 与 Explorer 链接加载:
root=CLASSES_ROOT\CLSID\{E6FB5E20-DE35-11CF-9C87-00AA005127ED}\InProcServer32
rkey=          //这个不行,键名默认值是REG_EXPAND_SZ型
rval=%SystemRoot%\system32\webcheck.dll
以上是对红叶兄提供的[locklist]段中可使用和不可使用部分的注解,各位兄弟可参照打开自已的注册表实际对比一下,就明白如何写userset.ini了.
  
不过,对于文件类型锁定的指定我还是要和大家探讨一下:
如果是我,对文件类型我会这么做,useset.ini内容如下
[DelList]
;注删表编辑器解锁
root=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\
rkey=DisableRegistryTools
[locklist]
;只需锁定.reg文件的打开方式,然后导出一分ROOT分支root.reg
;当发生指定方式打开错误时,以保证偶的备份能顺利导入即可.
root=HKEY_CLASSES_ROOT\regfile\shell\open\command
rkey=
rval=regedit.exe "%1"

回复

使用道具 举报

4#
 楼主| 发表于 2005-6-12 10:59:42 | 显示全部楼层

[sysshield]系统安全盾

下面引用由紫狐2005/06/11 07:18pm 发表的内容:
简单的看了一下,wang6071的编程水平不错,但是我觉得使用Easysize控件的作用不大,建议去掉,这样在一定程度可以减少资源的占用,由于我对Delphi还不是很懂,而且也没有详细的细读程序,所以想问一下,兄弟是不 ...
   Easysize控件的作用确实不大,偶用它只是想用它来实现在不同分辨率下显示界面的一致性.可以去掉,但资源并不能省多少,"变化监视"本身仅占极少的资源.
   另外,检测确实是用的Timer控件,无它,只为节省资源占用.用全局HOOK占用要比现在多得多(至少我以前尝试是这样的).用Timer并不会降低效率(无论恶意程序写注册表多少次,我们只要确保能删除它最后一次写在注册表中的东西就成了.)
   再有,用Timer程序会非常健状(指我们这个软件的情况),说点题外话:我曾经帮朋友在一台中了木马的机器上杀进程,结果是XP的任务管理器死了,我们的变化监视软件仍然活着,仍旧能杀进程.
回复

使用道具 举报

5#
 楼主| 发表于 2005-6-12 11:09:53 | 显示全部楼层

[sysshield]系统安全盾

关于pyqkgd兄提的
    下载试用了一下,很好用.希望功能更强一些,例于能够例出注册表中启动项.
    因为软件定位在于监视而不是一个注册表工具,所以没做这方面的工作,请见谅。个人愚见,导注删表的工具很多,偶想没必要再加一个众多软件都能实现的功能吧。
关于runningpig,wqx520等兄弟因威望不到1不能得到源码的问题:
    是这样的,偶在贴子如下写的:
    因为偶考虑到此软件的危险性,怕不懂的朋友乱改(软件用delphi6编制,应可以在d4-d7都可编译成功),所以软件只对无忧论坛上威望为1以上的朋友开放源码(获得无忧的威望1也不是件容易的事,一定为各位兄弟做了不少奉献.)
    希望得到源码的朋友能在此基础上做出更好的软件。
    所以请不能得到源码的朋友见谅。编译好的软件你可免费下载,传播与使用,希望能得到您的意见。
回复

使用道具 举报

6#
 楼主| 发表于 2005-6-12 16:44:18 | 显示全部楼层

[sysshield]系统安全盾

感谢红叶兄对注册表中恶意键值的注释,学到了不少东西,谢谢!
回复

使用道具 举报

7#
 楼主| 发表于 2005-6-13 18:57:24 | 显示全部楼层

[sysshield]系统安全盾

下面引用由紫狐2005/06/13 05:21pm 发表的内容:
wang6071,在源码里面是不是缺少MSNPopUp。
上传时清理监时文件不小心清掉了,我已重新上传,请重新下载吧。
回复

使用道具 举报

8#
 楼主| 发表于 2005-6-14 18:57:49 | 显示全部楼层

[sysshield]系统安全盾

下面引用由紫狐2005/06/14 04:26pm 发表的内容:
wang6071,建议下个版本添加在SysTray上双击的时候显示主界面的事件。
谢谢紫狐兄的建议。
功能上下一版拟做如下改进:
1:去掉鸡肋控件Easysize。(已完成)
2:进程监视的增强,98与xp都能完整地显示程序路径,xp下可显下该程序包含的模块.
(这个已完成)
3:杀进程功能改进,拟用更好的方式杀进程(思路是杀本身进程,杀父进程等,筹划中)。
4:注册表写功能增强,使写操作完全支持字符串的各种类型。(还未开始)
其它的,听大家的意见啦。。。。
回复

使用道具 举报

9#
 楼主| 发表于 2005-6-14 22:33:23 | 显示全部楼层

[sysshield]系统安全盾

谢谢红叶兄对软件的过高评价和对软件后期改进的建议。
"一切以实现主要的防御目的为重,技术上一定要有前瞻性,千万不要添加任何无关紧要的功能!"
  这条最好,我会记住的。
建议将锁定启动项目作为默认被选定。在完善基本功能的基础上,再考虑更灵活的选项。
  这条我也非常赞成(所以这个版本的变化监视我仍然是默认就监测启动项目),因为我喜欢写操作简单,但又不乏灵活性的软件。我对好软件的看法也是:操作简单、有扩展性。
  至于对软件后期的展望,谢谢红叶兄的吉言,但偶清楚自已的水平(93年函大计算机应用,大家可以想想能学些什么),所以努力写好这个软件回报大家对这个软件的支持已很满足了。
回复

使用道具 举报

10#
 楼主| 发表于 2005-6-15 19:15:22 | 显示全部楼层

[sysshield]系统安全盾

[这个贴子最后由wang6071在 2005/06/15 07:36pm 第 1 次编辑]

[UploadFile=1_1118834013.jpg]
大家的建议我会认真考虑的,这两天主要在完成 杀进程 部分的增强(已成功地干掉了在服务中启动的kv2005及kv防火墙),基本上是完成了还未做更多的测试,先贴个图给大家看一下。
超强杀进程采用的是微软内置的超强命令,只不过是保它集成在界面中,可以批处理地杀一帮进程.呵呵,不怕DLL守护啦.
微软无敌命令介绍:
    ntsd -c q -p PID
  只有System、SMSS.EXE和CSRSS.EXE不能杀。前两个是纯内核态的,最后那个是Win32子系统,ntsd本身需要它。ntsd从2000开始就是系统自带的用户态调试工具。被调试器附着(attach)的进程会随调试器一起退出,所以可以用来在命令行下终止进程。使用ntsd自动就获得了debug权限,从而能杀掉大部分的进程。
回复

使用道具 举报

11#
 楼主| 发表于 2005-6-15 21:46:48 | 显示全部楼层

[sysshield]系统安全盾

[这个贴子最后由wang6071在 2005/06/15 09:47pm 第 1 次编辑]

由于发现新出的一种无进程木马在
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\explorer\ShellExecuteHooks]下写入键值,所以提前发布一个半成品
如果只有一个
"{AEB6717E-7E19-11d0-97EE-00C04FD91972}"="" 是正常的多了就得考虑了。
这个版本内置检查中加入了上面说的防无进程木马的注册表检查,请大家同时测试一下楼上说的超强杀进程。
由于文件大小超过了200K,分包可能有朋友不会合并,我放到我的空间了
http://wangsea.ys168.com/
回复

使用道具 举报

12#
 楼主| 发表于 2005-6-15 23:28:25 | 显示全部楼层

[sysshield]系统安全盾

[这个贴子最后由wang6071在 2005/06/16 01:17am 第 3 次编辑]
下面引用由emca2005/06/15 10:59pm 发表的内容:
1、“册除”应当为“删除”,笔误请修正;
2、建议添加程序自身的保护能力,比如退出时确认一下,甚至可以考虑日后添加用口令才能退出的功能(实现是否麻烦,对系统是否有影响?仅供参考)
3、我试用新版本时, ...
没注意打错字了,谢谢提醒.
退出时确认也可以加入,这个不麻烦,口令的事暂不考虑,因为密码与绿色软件有一点小冲突,保存在何处要考虑一下.
第三点是指  启动时运行 锁定启动组 吗?我原先的考虑是不把软件做得太霸道,让用户运行后自已选择。因为启动时运行要将自已加到启动组中,而锁定启动组虽不写注册表但怕用户拷贝时将自已的配置文件连同软件本身一起拷到不同的机器上造成误删除。(虽然我在代码中加了检测系统用户名,但现在克隆的机器比较多,怕造成不必要的损失)同时锁定启动组也仅是每次开机是否按重新生成set.ini,关系不是很大,所以是这么设定的。
如果觉得菜鸟多于老鸟的话也可以先以做成默认是选定的。
还是修正一下,按上面的3点更改了一下程序,请各位兄弟试试感觉怎样?
回复

使用道具 举报

13#
 楼主| 发表于 2005-6-16 19:59:53 | 显示全部楼层

[sysshield]系统安全盾

下面引用由emca2005/06/16 06:55pm 发表的内容:
口令可以是明文。我想如果要设置口令,唯一的目的就是为了防范监视器被不小心随意关闭。我就不小心关闭了一次。
上一个匆忙改的版本有一个BUG,不能使用用户定义文件userset.ini,所以改进了一下,其的更新见下面。下载还是在我的空间:http://wangsea.ys168.com/
口令下次的版本中加入。
最新增加的说明:
   调整了一下功能关联。软件第一次运行将自已加到run中,并自动锁定启动组。如果要删除本软件,请先解除"启动时运行"的选项,退出软件即可删除。
   当锁定启动组选择未勾选时,每次开机重新生成配置文件set.ini.
   若软件运行中未勾选"锁定启动组",当在使用 关闭监视--然后--启动监视 时重新生成新的set.ini文件,以用于某些启动时运行软件的安装。反之,当"锁定启动组"被选定,则关闭监视--然后--启动监视仍然检测原来的set.ini中记录的启动项是否被改变。
   为节约资源,进程显示页的刷新不是实时刷新的。在以下三种情况下可以看到进程显示的刷新:
   1:在启动监视与进程监视页面中切换一下。
  
   2:最小化软件到托盘,再重新使用"恢复窗口"功能恢复窗口时。
   3:杀掉某个进程后。
   新的功能:
   进程管理中如果你杀掉Explorer,程序将会自动重新开启一个Explorer,并同时将自已的任务栏图标刷新。
所以即使其它的任务栏图标在杀死Explorer后不可见,本软件的任务栏图标仍然可见,解决最小化后调不出界面的问题。
  这个功能主要用在杀掉大多数木马的宿主Explorer,以便进行清除木马的后期工作。
回复

使用道具 举报

14#
 楼主| 发表于 2005-6-17 20:00:02 | 显示全部楼层

[sysshield]系统安全盾

听取了各位朋友的意见,今日更新如下:
1:加入用户退出码,退出号采取随机方式给出(避开了保存密码),防止误退.现在退出注册表监视器有两个方案
  a:右键托盘小图标选择退出(需要输入随机的退出号)。
  b:通过杀进程“自杀"。
2:userset.ini做了一个小修改
[locklist]段中现在允许使用 reg_sz型及reg_expland_sz型(以前不支持reg_expland_sz型),这样对文件打开方式的锁定基本上都可以使用了.其它的类型一般不会有恶意程序修改.
要注意的是,locklist段支持的reg_expland_sz型必须是你系统存在的键值,若不存在则默认创建的是reg_sz型,这点请大家注意.也就是说,仅可以使用locklist段在注册表中新增一个reg_sz型的键值,其它的类型是不支持新增的.
程序中对rval将自动校验其类型,仅reg_sz及reg_expland_sz型才会做锁定恢复,不再因类型错误写不进注册表而出现系统提示数据类型不匹配的窗口.
3:有朋友们提到程序可以反复加载的问题,其实只有你保持程序自动启动(不手动启动)就没有这个问题,不过修改这一点并不麻烦,所以就顺便加了几行代码保证只有一个"注册表监视器"运行.
4:有朋友提出将程序放到服务中启动,因服务中启动的程序是没有界面的,暂不做这样的考虑.
下载地方不变:http://wangsea.ys168.com/
回复

使用道具 举报

15#
 楼主| 发表于 2005-6-18 01:06:50 | 显示全部楼层

[sysshield]系统安全盾

下面引用由紫狐2005/06/18 00:06am 发表的内容:
源码没有更新~~~~呵呵~~~
别慌呀,等我再查一下有无BUG,把帮助文件重写一下就上传源码.
回复

使用道具 举报

16#
 楼主| 发表于 2005-6-18 11:08:19 | 显示全部楼层

[sysshield]系统安全盾


今天花了三个钟头再次测试并重写了帮助文件(1楼源码及2楼软件说明已更新)
http://wangsea.ys168.com/ 已重上传了加入说明的压缩包。
xubo1971朋友提出的某些未知进程未显示路径,可能是因为这些进程是通过服务加载的,所以无法取得路径。待找到好的方法再解决吧。
软件的基本功能是完成了,如果没有大的改动或者是Bug发现,下一个版本可能要过一段较长的时间才会推出。学习兼资料搜集中.............



回复

使用道具 举报

17#
 楼主| 发表于 2005-6-19 10:25:51 | 显示全部楼层

[sysshield]系统安全盾

下面引用由emca2005/06/18 10:34pm 发表的内容:
我在使用Mcafee的时候,发现一个非常实用的功能:锁定系统目录,禁止向Windows和System32目录写入EXE或DLL文件。如果这个工具能够实现这个功能,则多数情况下不是用户自己安装程序时,其他试图感染系统目录的企 ...
谢谢红叶兄的提议。
监视文件的创建是可以办到的,但如何监视,如何保护(主要是如何分别正常软件与恶意软件)得花点心思去想一个周全的方案。要做到使用上的简单(这样可适用的不同层次的用户),同时又不乏设置上的灵活性,考虑中......
回复

使用道具 举报

18#
 楼主| 发表于 2005-6-22 19:21:10 | 显示全部楼层

[sysshield]系统安全盾

这段时间工作上的事很忙,晚上有点空也在不断地查资料学习中。先贴一点最近看资料的心得,以回答朋友们关注的文件监控的问题:
    以前偶没试过做文件监视,本以为很简单(delphi本身就有一个控件),可真正做起来才发现问题不是那么简单:
    1:现成的控件没找到一个能监测文件及文件夹增加的并返回增加的文件或文件夹名的,只能返回有变化,但监测不到是哪个文件变化了。
    2:查阅很多资料后,得出的结论是在NT系统下要完成实时监控必须用WDM驱动编程(9x下要使用VXD编程)。怪不得这方面的资料那么少,驱动编程一般只有大公司才做,这个东东太高深了,俺不懂呀,想学也没有完整点的资料。
    3:如果仅是不允许用户作增加,改变文件等操作,是有那么几个API(或用钩子)做,但我们的要求是要禁止程序的安装而不是限定Shell的功能。所以此路也不通。
   4:最后在<深度历险>找到了一个范例,可以非实时查到文件的变化,但只支持NT类系统。原理是采用单独的一个线程监测某个目录。
   偶已经将它改写成了一个类,以方便多线程的创建,但随之而来的问题:线程的稳定性及系统资源的占用性(用线程来监视肯定不如驱动编程的实时与稳定,实时的话可以直接就禁止操作了,而非实时要等操作完成后再做后期处理。另外,线程监控是用轮循的方式,而驱动编程是用消息的方式)。所以如果哪位兄弟有更好的想法或做过这方面的东西,不妨告之。
   虽然用线程的方案不是很完美,但做为一个学习的过程我还是决定先用我这个改写成的类试验一下,想法是:当安装程序在windows下创建文件夹或文件后立即删除它的新增文件。如果完成后测试的结果理想,就用这个方案了。
回复

使用道具 举报

19#
 楼主| 发表于 2005-6-24 12:32:14 | 显示全部楼层

[sysshield]系统安全盾

下面引用由lj8581552005/06/24 01:39am 发表的内容:
好工具!什么时候新版本出来!锁定文件工具完成以后,能不能做出锁住全部注册表类型的?
经测试还是比较好的方案,偶用rar压缩一大堆程序自解压来测试偶的自动删除,当一个文件未解压完就开动了删除,以致于偶为了避免删除失败不得不在程序中加入延时以等待文件解压完毕。
新版本近期就会出来,我已经开始将测试代码正式移植到注册表监视器中,当然为了程序的良好结构,还要将代码优化一下,同时也要做更多的测试(ps:在测试过程中我因为一时疏忽写错了一句代码,结果在几秒内俺的C盘文件全部被删除。好在我的C盘没有重要文件,加上有Ghost备份,所以才没造成大的损失).
回复

使用道具 举报

20#
 楼主| 发表于 2005-6-25 09:39:06 | 显示全部楼层

[sysshield]系统安全盾

下面引用由xubo19712005/06/24 06:42pm 发表的内容:
支持!楼主函大计算机应用专业毕业,编程能有如此水平,真是佩服!
吾连计算机函大都没有上过,只看过一些计算机教材,感觉自己硬件、网络学的还算可以,编程则是一大硬伤。我现在想提高一下编程能力(看过一点C ...
xubo1971兄弟:
   偶虽然是读过函大计算机应用专业,但因为毕业的时间早(1994年毕业),所以当时学的知识(主要是dos下的编程,那时的操作系统主流还是dos3.3)可以说是完全用不上。
   从1994-2003年,偶从事的工作都与计算机无关,虽然自已从1997年购买了自已的第一台计算机,但由于种种原因,并没有写过一个程序。所以,偶的感觉是想学编程并不在于你是否读过计算机专业。而且,计算机知识的更新是非常快的,要撑握新的知识唯有靠自学。
  
   2003年偶的工作变动后进入偶公司的微机室,发现偶公司的收费管理系统在速度上无法及时处理日益增多的用户数据,且原系统存在管理漏洞。一开始是想联系软件公司购置新系统,但一来因为售价不菲(要十多万),二来是公司收费有它的特殊点,所以软件公司的软件要修改才能使用.三是原有的数据不能丢掉,要完全导入新库.四是公司原有用户管理的帐号因原来设计不好,需要重整数据库。软件公司需要花一点时间改程序,但对数据库的导入与数据重整未作明确答复。
   在等待新软件交付使用期间,系统是不可能停止计费的。原系统是用delphi编程的,而我恰好以前购有两本delphi的入门书,所以就开始了我的编程之族。原系统虽然没有源码可以参考,但好在它的数据库没有加密,所以偶分析了数据库的结构,在3个月后写成了偶公司的收费管理程序的第一个升级版,当然以后就没再购软件公司的软件了。
   后来这个系统经过我不断地升级,在速度与数据分析上已经比同行业的同类系统好用多了,这是题外话,就不多说了。
   写这么多主要不是要表现lj858155兄弟所说的我如何有"天份",是想对有志编程的兄弟说:想学编程首先要有爱好(偶如果没有爱好就不会在未使用delphi前就
在书藉打折时购上两本delphi书收藏),二是要有目标(以前偶有一段时间也曾考虑过学VB编程,结果是因为没有目标,遇到一点困难就半途而废了)。
当然,有了爱好有了目标不一定就能编程入门,所以下面我再谈一点学习编程语言的方法(个人看法):
      
1:关于资料的选购:
  
   书不在多,但一定要选对你的入门书。最好到旧书市场淘一本你选择的编程语言的入门书,最好是被某大学课本书。这点很重要!因为你自学是没有老师答疑的,选大学的课本书一是书编写的比较详细,有例题或辅助资料,例子一般都能调试通过。
   这本书仅作为你大概看一下,没必要做它提供的例题,对不理解的地方不要强求,主要的目的是对你想学的那种编程语言有一个印象。
   同类的入门书不要购得太多,一两本足够参照学习了。(当你基本学会了这门语言再购更深入的书,那时一定要选老外的中译本啊!)
   
2:如何开始写第一个程序:
   看书不做例子,你一定会说我是在胡扯。我的看法是教材的例子大多数是算法,做研究还有点价值,初学者往往会因此失去编程的兴趣。那么,我们正式写程序的切入点在哪呢?
   如果你有条件上网,先搜索你要学习的语言的电子书,最好是chm的,pdf的也行,但超星就算了,电脑上看太吃力。没条件上网就到电脑市场购买相关的碟子,这样可以省一大笔学习费用。
   下载来的电子书作为你学习的参考,不一定马上看,是遇到难点时作为资料查的。
   然后到相关的编程网站去下载示例源码,找感兴趣的下它一大堆放到你的硬盘。一个一个地调试这些源码并作一定修改。初期最好读懂原作者的每一行代码的意思,不理解就查你购的书与下的资料(所以开始不要选太长太难的源码来调试)。
   调试中如果有难点,不要轻易放弃,应再找实现同样功能的源码来看。参照学习就容易理会了。当然,肯定还会有部份你无法理解的,这时也不必太深入,暂时先放弃它,学习其它的源码。
   注意:不光是调试别人的源码,同时也要试图NEW一个工程,自已仿照着写一下。
3:关于调试工具的安装
  
   初学者所用的编程工具一定不要下XXX精简版,一定要带帮助的完全版,要学会查软件自带的帮助(这样你才不会因一个小的函数不知道用法而四处问别人了).
有条件的话最好是安装MSDN,那个帮助十分地完整,任何语言都可参照学习它。MSDN有点大(偶也没装),不想装的话用下面的方法。
4:如何更深入编程
   如果平时搜集的资料够多,一般来说不会再上XX编程论坛上问初级的问题了。偶认为如果你编程遇到难点,不要轻易到论坛发贴子求助,应首查你下载的资料中有无解决方案(所以我前面说CHM格式的资料最好,查询方便呀!),如果没有google一下,还是没有就到相关编程网看有无相关的示例源码。最后才选择到论坛发贴子求助。
  
   如果编程已基本入门,就得看一些经典的书来补充开始时快速入门的不够系统的不足了,此时读这些书你就会对你以前写的程序有了更深一层的认识与了解。
   
5:网站推荐
   如果你决定学C,偶推荐的网站是:
   CSDN             http://community.csdn.net/
   中国动力联盟     http://www.playicq.com/   
   如果你决定学delphi,偶推荐的网站是:
   大富翁论坛       http://www.delphibbs.com/
   delphi盒子       http://www.2ccc.com/
   CSDN             http://community.csdn.net/
   中国动力联盟     http://www.playicq.com/
   基于网速及网站的开放性,我建议你到上述网站的论坛上去注册,其它的网站你根据你的需要自已找吧。
   当你学会一门编程语言后,你会发现学习其它的编程语言也是非常容易入门的。
   
回复

使用道具 举报

21#
 楼主| 发表于 2005-6-25 15:18:59 | 显示全部楼层

[sysshield]系统安全盾

[这个贴子最后由wang6071在 2005/06/25 03:27pm 第 1 次编辑]
下面引用由xubo19712005/06/25 01:51pm 发表的内容:
我总结老大的编程之路:个人兴趣+工作需要+不懈努力。
    所介绍的学习方法要点:1、先找一本编程的大学课本大概看一下;2、调试、修改从网上下载的示例源码;3、不懂的地方先查帮助文件、电子书,再不行就到 ...
没有过渡,偶原来的dos编程等于没学。偶是自学delphi后再返回学dos编程的。所以完全是按偶总结的方法来学dos编程的。
如果你想学dos编程,用TC的话则可以先下wintc,并到唯C论坛注册,以便查看老贴解决你的初级问题。
你还可找一些国外的FTP网站下一些别人的源码看。具体网址偶记不住了你可到http://qbdos.51.net/cgi-bin/bbs/index.php去找,这个Basic编程网论坛的置顶贴中有几个好的国外FTP网址,可下到不少源码参考。
如果你是想从dos编程编程到windows过渡,把它当作一门新的语言来学吧,偶上面提到的网址中可下到不少的源码及电子书,应该够用了。
回复

使用道具 举报

22#
 楼主| 发表于 2005-6-25 15:21:23 | 显示全部楼层

[sysshield]系统安全盾

注册表监视器的文件监视部份完成了,请各位到二楼提供的地址中去下载试用。
【文件监视】:本软件提供了一个监视windows目录下新创建文件及文件夹的功能。我们知道,windows目录下一般应用程序是不写这里的,通常在这里添加程序的软件一般来说都是恶意软件。所以,本程序的这功能是自动删除windows目录下新增的文件及文件夹。
    此功能仅能在NT类系统下使用,9x就不支持了。该功能可以手动停止,也允许你在设定"锁定启动组"的情况下决定下次是否随软件启动。
测试该功能的方法:
1:手动在windows\目录下建文件或文件夹。
2:使用软件将一些文件安装到windows\目录下试验。比如用winrar压一些文件为rar.exe自解压文件,然后直接将这些文件释放到windows\目录下试验。
回复

使用道具 举报

23#
 楼主| 发表于 2005-6-25 19:10:09 | 显示全部楼层

[sysshield]系统安全盾

下面引用由推士机2005/06/25 06:39pm 发表的内容:
最新测试版只监视了windows根目录,在子目录如system32下仍然可以创建添加文件或文件夹。有些垃圾就是不请自进system32里,建议增加对system32目录的监视。
程序设计来就只监视windows根目录,不监视子目录的。主要原因是为了方便安装程序。实际上要监视完还有system,Downloaded Program Files等,但完全做成自动删除会给使用者带来不便。
所以,监视这些目录还不如让用户自行设定这些目录的只读权限。
回复

使用道具 举报

24#
 楼主| 发表于 2005-6-25 19:35:56 | 显示全部楼层

[sysshield]系统安全盾

下面引用由推士机2005/06/25 07:26pm 发表的内容:
个人认为增加对system32目录的监视,对阻止木马、病毒入侵是有一定作用的
增中system32等目录监控不难,偶还是先放一放,多听听大家的意见。是采用目录权限的方式好啦还是自动删除好。
回复

使用道具 举报

25#
 楼主| 发表于 2005-6-26 01:34:09 | 显示全部楼层

[sysshield]系统安全盾

查看记录新增与删除原本是办到了的,但因为偶想要快速清除,所以就没做出显示来(做显示一是有影响删除速度,二是当删除文件太多时对线程的稳定性有一定影响。所以最后做成的是删除不了的文件才报告到日志上来。不过如确实需要可以改进这点,只需再开一个线程来显示就行了。
因为想把软件做得易用些,所以不打算采用用户交互的方式来决定新增文件的去留。怕影响软件的安装你完全可以关闭文件监视功能,待安装完毕后再打开。如果做成交互方式,提示对话框在正常软件安装时会很多(例如安装一个较大型的软件),同时也可能想杀木马时已经晚了(木马可能已经在等待回答提示框的同时已经执行了,正在执行的文件是不可能删除的).
system32目录的监视问题我再考虑一下,有朋友试过目录权限吗?目录权限有何不足,望告之。
回复

使用道具 举报

26#
 楼主| 发表于 2005-6-27 18:59:01 | 显示全部楼层

[sysshield]系统安全盾

   考虑了几天,觉得反正都锁定windows了,再加个system32的监视也不会有多少不便,所以本次更新增加了system32的锁定.其它目录暂不监视(偶觉得可以手动删除的就必要自动删除,大家最怕的是文件被锁定无法删除),视兄弟们使用后的反馈而决定.
  本次代码已经优化,实际监视的是系统盘上所有新增(含子目录),只不过偶做了一个小小的过滤,所以目前只开放了windows及windows\system32下的新增自动删除.偶想如果你是先使用了监视功能再安装或上网,由于自动删除保护了你的这两个重要目录,注册表启动监视保护了你的启动项,应该很少有程序能够在这种条件下复活了.所以即使留有垃圾文件,手动清除应该项没问题了.
   在文件监视页你可看到被监视目录下的文件新增及程序执行后删除的情况.由于偶改变了一下删除的方式,所以不会再有漏删情况(上一版在安装文件子目录结构很复杂时可能会漏删一部份文件).如果左边的新增中有某个文件则表明是无法删除的文件,这种情况是那个文件正在执行或使用着,根据文件名在杀进程页中杀了它,应该可以自动册除.(这仅是预防万一,一般不会发生这种情况)
当然,监视system32的后果是安装你需要的程序时得注意:
先关闭文件监视-->安装程序-->安完后再打开.
如果忘记了也不要紧,重新按上面说的步骤再次安装即可.
为了保护您的系统,这点不便想来大家都可接受吧.
  虽然偶已经对程序做过了测试,但为慎重起见,请你在测试前备份好您的系统以免造成损失.
ps:有条件的朋友请在VM中做一下样本测试,找些木马及恶意软件安装看看,以便及时发现程序的不足。
回复

使用道具 举报

27#
 楼主| 发表于 2005-6-27 22:45:32 | 显示全部楼层

[sysshield]系统安全盾

[这个贴子最后由wang6071在 2005/06/27 10:49pm 第 1 次编辑]
下面引用由emca2005/06/27 08:35pm 发表的内容:
目前的目录监视已经不错了,但有个难以解决的问题:对于那些以捆绑方式安装的垃圾程序,如果不开放系统目录,则正常的程序安装可能受到影响;如果开放系统目录吧,则那些捆绑程序又会乘虚而入。因此仍然建议添加 ...
确实如此,如果要安装一个捆绑方式的软件,而这个干净的软件又不太好找时会遇到这个问题。下一版将增加黑名单方式,多一种选择总是好的。
各位兄弟能否帮忙搜集一下进入的黑名单软件的文件列表(有文件名就可以了不需要具体的安装路径),以便下一版推出时随软件一起发布。
注意的是:黑名单软件的文件列表应指仅是恶意软件的主程序,dll等,不要包含正常软件所需要的辅助文件。
回复

使用道具 举报

28#
 楼主| 发表于 2005-6-28 00:18:17 | 显示全部楼层

[sysshield]系统安全盾

[这个贴子最后由wang6071在 2005/06/28 00:51am 第 3 次编辑]
下面引用由emca2005/06/27 11:58pm 发表的内容:
路径最好要考虑进去。如果恶意程序弄个与系统文件相同的名字但路径不同,是否会被删除?还是系统文件也被误删除?这个得慎重考虑。
恶意程序的黑名单程序随后我整理一些提供。
另外,还可以考虑试图将含有某些特 ...
不用考虑路径是因为偶的监测是全系统盘监测(是盘符级,比如你的xp安装到D盘则是D:全盘的监测,目前只提取出windows目录及system目录的新增而已,实际上添加系统盘的其它目录已经非常容易),所以只对比新增的文件名不会误删(新增的一定是系统中没有的)。
我不打算采用定时目录查询方式,这种方式可能会造成造成误删除。而且不如目前这种方式实时和资源占用小(目前的方式是api消息级的,文件未创建完已经知道了)。
至于expl1rer.exe这样的太多了,定义名单搞不过来(当然,已发现的可以定义它几个),变体还是交结杀毒软件去处理吧。或者直接采用现在的傻瓜式新增杀除方法也可以。
如果仅将自动删除定义为windows及system32等系统目录的话,则含有数字1等易混淆的的文件作为删除对象也未尝不可(如果是系统盘及的查就可能会删掉安装的正常程序,比如program files下的含有数字的正常程序。)到底匹配到哪一级大家可以探讨一下。
回复

使用道具 举报

29#
 楼主| 发表于 2005-6-29 19:08:11 | 显示全部楼层

[sysshield]系统安全盾


   等了几天也没有哪位朋友提供禁用的数据,结论可能是该功能不很适用吧。不过偶还是完成了它,想下的朋友就下吧。
   如果你使用自定义功能,请用文本工具打开filter.dat文件,添加你要禁止增的文件或文件夹。(仅windows,windows\system32,及program files\有效。)另外,有朋友提出windows在win2000下是winnt,程序会自动获得系统目录的,所以win2000也适用此程序。
   filter.dat目前定义如下
3721;Baidu;CNNIC;Dudu;CnMinPK.sys;Explorer.exe;Exp1orer.exe;Exiorer.exe;IExplorer.exe;Rundll32.exe;Rund1132.exe;Rund1l32.exe;Rundl132.exe;Ntdll.dll;Ntd11.dll;Ntdl1.dll;Ntd1l.dll;System32.exe;ahook.sys;SERINIT32.EXE;Dvldr32.exe;wsearchahook.sys;
   说明,每个文件或文件名后接符号";"结束,不区分大小写。请自找资料添加吧。
   注意,虽然偶上面的定义中有Explorer.exe,程序不会误删你的Explorer.exe,只会删除新增的Explorer.exe。你可以在program files\下新建一个3721的目录,因为你的操作实际上是两步,新建文件夹,重命名文件夹,这样的操作程序不会删除你的3721目录。但是,当你在其它地方复制一个3721目录直接放到program files\下时,程序将发现文件夹的创建并删除它。
   因为本人所在单位要求偶搞一个全面管理的平台方案(类似于ERP),时间很紧,找不到合适得还得自已做,偶得查资料做调查。所以这个版本的注册表监视器将是终结版,除非有大的BUG,一般来说将不再有更新。顺便说一句,偶空间上的seeip也做了一个更新(加了两个功能),需要的朋友下吧。http://free.ys168.com
   再次谢谢各位兄弟对本软件的关注与支持,以后一段时间上无忧的时间将少了。所以有问题请在我的空间给我留言。
回复

使用道具 举报

30#
 楼主| 发表于 2005-7-2 00:14:09 | 显示全部楼层

[sysshield]系统安全盾

本说未发现大的BUG不再更新了的,可偏偏又发现了一个,还是更新一下:
这个BUG是重启机器后因文件路径未找到造成自定义设置选项不能保存.如果你是每次启动后再手动执行注册表监视则不会发现这个BUG.
另外,自动功能中将windows\AppPatch目录屏蔽了,以免每次启用自动功能删除其下的东西.
现在的自动功能是:删除一切windows及其子目录下所有新增的文件及子目录(仅不含apppath目录).
自定义功能是用过滤列表来删除window及program files目录及其子目录下所有在列表中的目录或文件(当然,也仅是对新增有效).
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-10 14:43

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表