Board logo

标题: 再次证明瑞星是垃圾 [打印本页]

作者: pchy     时间: 2009-12-10 05:15    标题: 再次证明瑞星是垃圾

我自己的一个远程控制工具(是客户定制的专用工具,不公开),最近客户反应安装时,瑞星的主动防御会杀;安装程序自删除时,瑞星的主动防御会杀;开启屏幕控制时,瑞星的主动防御会杀;远程卸载时,瑞星的主动防御会杀;启用键盘记录时,瑞星会杀。

于是做了修改。
首先是安装,软件本身是安装为系统服务的,测试发现瑞星拦截了 CreateService(),我做了点小小的修改就通过了,仍然安装为系统服务,没有任何提示。至于修改方法,就不说了,免得瑞星发现这篇贴子后马上升级,我又得改。

然后是远程屏幕控制,这个其实不应该被拦截的,关键是在Vista和Win7下,或者是XP登陆多个用户进行用户切换之后,服务的 Session 和用户桌面的 Session 不是同一个,服务截取不到用户桌面的画面,也取不到用户桌面的任何信息。这样就需要在用户的 Session 下创建一个新进程来截取桌面再把数据传送给服务或直接发到网络。我以前偷懒,把这部分功能写成了DLL,然后用 Rundll32.exe 来调用DLL。于是瑞星就拦截了。现在,我写一个小程序,几行代码而已,和Rundll32.exe使用相同的参数执行相同的功能,改用这个程序来调用,就OK了。瑞星真傻。

然后是安装程序的自删除。自删除本来就是个比较麻烦的问题,为了不产生兼容性问题,又不能使用太变态的方法。以前程序是在结束时调用 CMD 用 del 命令自删除,把CMD.exe的进程优先级设置为最低,使能在进程结束后,CMD 才开始执行 del 命令。但瑞星拦截了。于是,换了一个比较烂的方法:又写了一个小程序,专门执行删除,放在安装程序的资源中,安装程序运行时把这个小程序解到 Windows 目录中,安装完成时调用这个程序,然后自己退出。执行删除的程序会在删除成功时才退出,退出时调用 MoveFileEx() 使系统在下次启动时删除掉自己。

远程卸载时,和自删除类似,因为是程序自己要结束掉自己的服务,删除自己的服务,再删除自己的文件。问题出在删除文件这一步。于是继续用上面写的自删除的方式,完成。

键盘记录,这个基本上没办法了,因为要 HOOK 全局的键盘消息,无论哪个杀毒类的软件都会报警的。虽然不用HOOK,也可以得到键盘输入,但仅限于知道在键盘上的按键动作,对通过输入法进行的中文输入我暂时没办法取得,经客户同意,这部分没有修改。

瑞星杀毒软件2010版,软件版本 22.00.02.21,病毒库版本 22.25.02.05
分别设置“木马行为防御”为“中”和“高”。进行测试。
安装时,瑞星无报警;
开启屏幕控制时,瑞星无报警;
远程卸载时,瑞星无报警;
启用键盘记录插件时,瑞星有报警,提示是危险行为。


以上修改对微点没有任何效果,该杀的还是会杀。还好客户也说了,微点现在的用户量还少,可以不管……

作为一个软件开发者,虽然有时会写点比较边缘的软件,但我还是喜欢微点。我过不了微点,就表示和我同水平的程序员基本上都过不了,很好。

其实我有过微点的思路,但开发工作量太大,就懒得写代码测试了,也不知道思路到底对不对。
作者: 饭桶小白     时间: 2009-12-10 07:28
lz就做一个嘛..上报给微点,或许有奖励也说不定哦
作者: lsj301     时间: 2009-12-10 08:51
如作出来了,自然是楼主上水平,微点上台阶.
作者: 镜湖YES     时间: 2009-12-10 09:41
微点好不好,专业的技术人员最有说服力了。微点在中国黑客界享有盛誉。
作者: 点饭的百度空间     时间: 2009-12-10 10:36
楼主未来的it茶馆

“不能因为麦田里长出了几根杂草,就把麦子和杂草一起拔掉”
作者: pchy     时间: 2009-12-10 11:56


  Quote:
Originally posted by 点饭的百度空间 at 2009-12-10 10:36:
楼主未来的it茶馆

“不能因为麦田里长出了几根杂草,就把麦子和杂草一起拔掉”

我没有看懂。
作者: tcjgdw@163.com     时间: 2009-12-10 13:52
意思是被你拿几个样本过了,就全盘否定,有点极端,任何杀毒软件都不是万能的。
对一款软件的评价应是综合性的,全面的。

[ Last edited by tcjgdw@163.com on 2009-12-10 at 13:53 ]
作者: 点饭的百度空间     时间: 2009-12-10 18:02
“...”那句话转自于楼主 另外有什么过微点的方法 不怕你拿出来呵呵
作者: pchy     时间: 2009-12-10 22:58


  Quote:
Originally posted by 点饭的百度空间 at 2009-12-10 18:02:
“...”那句话转自于楼主 另外有什么过微点的方法 不怕你拿出来呵呵

:) 我只是对瑞星太失望了。因为我能轻松绕过瑞星的主动防御,说明很多人都能轻松绕过。不过不排除瑞星继续研究达到微点现在的程度的可能性。
对杀毒软件,我其实都很失望,一般的网游木马,通常放出去几个月之后才会被杀,一般情况下,连代码都不用改,只改编译参数,重新编译一下,又可以坚持几个月,直到被杀得改编译参数都没有用了,才修改代码中的各个函数名(比如函数名前面加个 A 加个 B 之类的),修改代码的物理顺序(就是把一些函数在源代码中的位置换一下,剪切粘贴),这样编译之后的二进制文件里面的物理顺序就不一样了,杀毒软件又找不到特征码了,对于杀毒软件来说,又是个新木马。
对微点我还是比较信任的,基于行为判断,通常的过杀毒软件的方法就没用处了。
但瑞星的主动防御目前来说确实有很多很弱智的地方。

关于过微点,我暂时没有找到经过验证的有效的方法,也不想做实验。只是提出一些想法:

1. 程序本身只是连接网络,从Web服务器下载一些加密的二进制代码片断,不存储为文件,而只是在内存中 new 一块内存出来,把加密的二进制代码片断解密后写到内存中,通过内存地址直接调用。这样应该任何主动防御和杀毒软件都无法拦截这种行为。平时这个程序是潜伏的,只在需要时才下载特定的代码执行,而且不生成任何文件,如果只是用来窃取数据而没有其它的破坏行为,应该是不会被拦截的。

2. 程序不直接使用 WinAPI 生成文件,而是用 CreateFile() 打开磁盘设备,直接读写磁盘扇区,由程序自己对NTFS和FAT32的分区进行文件写入和修改的操作(通过修改文件分配表、$MFT、扇区或簇数据的方式进行)。出于效率的考虑,主动防御和各种杀毒软件要么直接把所有的扇区操作都拦截了,要么都不拦截,不可能去分析我写的扇区是对应于哪个文件的。这样主动防御就无法追踪文件的创建者程序,也就是说,由程序生成的另外的程序文件,再由程序去调用执行,主动防御并不知道被调用的程序是由谁创建的,会认为那是用户电脑中原本就存在的文件。

3. 类似上面,分析 Windows 注册表文件的二进制结构,通过读写扇区来修改注册表文件,增加启动项、增加服务、增加驱动,又或者替换掉某个不重要的服务或驱动的文件,这也是拦截不了的。

4. 如果用WinAPI读写扇区被拦截(尽管不知道我到底要写入什么数据),那么,还有 I/O 调用,通过磁盘 I/O 直接读写磁盘数据,虽然开发上麻烦些,但并不是不能实现。现成的读写 I/O 的驱动比如有免费的 WinIO 库等,我自己也有类似的驱动。

以上都只是推测,我没有实验过。大家不用跟我较真,写着玩而已。

5. 刚刚又想到一点,现在的程序大多是调用 WinSock 来实现的网络通信,WinSock 又去调用的驱动,但如果连WinSock都不用,直接调驱动呢?虽然驱动也是分成很多层的,主动防御可以加入过滤驱动来拦截网络操作,但应该不能阻止程序直接使用最低层的驱动吧?

[ Last edited by pchy on 2009-12-10 at 23:31 ]
作者: pchy     时间: 2009-12-10 23:15
写上面这些东西,并不是我不认可主动防御,相反,我非常喜欢微点。

毕竟写个非法程序的收入其实很低,除非自己加入运营,但那样风险又太大。

如果程序太完美,破坏性就大,风险也会很大。

在没钱赚又有风险的情况下,大多数程序员是不会费大把力气去试验我上面写的那些方法的,呵呵。

其中,上面写的第一种方法,难度不大,比较容易实现。甚至在网上有公开的代码。

[ Last edited by pchy on 2009-12-10 at 23:31 ]
作者: 王者天下     时间: 2009-12-10 23:21
不喜欢瑞星,占用资源大而且效果也一般........
作者: 坐照     时间: 2009-12-11 17:08
RS的用户群还是很大的。
作者: jiejiesunbin     时间: 2009-12-11 21:28
好强大 我们都不会 教教啊
作者: 我爱长发飘飘     时间: 2009-12-14 20:22
瑞星现在好可怜啊,免费都没人爱用~咋整的啊,人缘这么差啊
作者: chenke3xxx     时间: 2009-12-17 19:31
瑞星虽然算不上什么厉害杀软,但是起码可以满足一般的用户,说它垃圾严重了吧




欢迎光临 微点交流论坛 (http://bbs.micropoint.com.cn/) bbs.micropoint.com.cn