感染SysConst.dcu,delphi梦魇病毒解析

来源:互联网 发布:淘宝买家如何卖东西 编辑:程序博客网 时间:2024/04/30 16:46

 

好有趣的感染方式,够可爱了~

今天群的人发了一条链接,关于许多人SysConst.dcu被感染.

被感染后的SysConst.dcu体积是18KB左右,正常的SysConst.dcu是12KB左右.

偷偷瞄了一下偶的SysConst.dcu,竟然被感染了,而且潜伏的时间应该超过4个月~

只是前两天卡巴更新病毒库,卡巴报病毒名为:Virus.Win32.Induc.a,大家才发觉有所不妥.

大概分析一下原理

病毒的主体代码,首先执行后从注册表"HKEY_LOCAL_MACHINE/Software/Borland/Delphi/"的RootDir值下读取Delphi路径.

然后再读取delphi路径下的/source/rtl/sys/SysConst.pas文件,循环读取直到implementation行.然后跳出循环,下面开始输出恶意代码.保存文件后,最后使用MoveFile函数将原来的SysConst.dcu命名为SysConst.bak,最后使用CreateProcess函数隐藏调用dcc32.exe编译被感染后的SysConst.pas单元文件为SysConst.dcu.获取原文件时间,修改被感染后文件的时间,所以从文件时间上看不出任何变化.

被感染后的编译环境只要加入SysUtils单元所编译的任意可执行文件都会成为病毒载体,感染Delphi下的编译环境~

从代码可以看得出,作者用意不在破坏,而是静默无声无色地实现感染,一次又一次的感染,不断地传播代码的主体.

稍微推测一下作者,不像国人的作风,国人稍微找到一丁点可以利用的东西,肯定借题发挥.不断地XX转化为利益.

就算不为利益,肯定很炫耀地贴上by xxx,好让全世界都知道是他弄的.

从数组变量命名为sc,不难想象,其实应该是Source Code的缩写,像老外作风,觉得作者应该是国外的.

而且作者很低调,似乎只是想实现自己的一种自我价值.享受着精神上的价值,不过也可以说是恶作剧.

还好没有加入其它更邪恶的代码,要是弄一个下载者功能进去,又开始无敌了~

通过感染源文件实现传播,感染确实有那么一点点新颖,以前有想过,不过感觉作者实现得很好.

主动防御的出现确实抹杀了不少病毒和木马之间的生存空间,起码传统上的几乎无一幸免.

传统上的传播已经江郎才尽,能发挥的都发挥了,只有其他更多种多样的途径上传播才是王道.

感染源文件,那样可委屈那些开发人员的,好不容易写出一套程序,编译后并发布,却要背负着植入恶意代码的嫌疑,真是悲哀~

而且稍微补充一下这个XX的不足

1.主体代码用字符串数组的方式保存,随便用一些十六进制编辑软件都能看见主要代码,容易泄漏技术细节.

2.因为字符串内包含'符号会导致编译冲突.所以作者弄了一个x函数,本意是将字符串内的$替换为'符号.

结合以上两点,可以考虑用简单的xor异或加密的方式保存主体代码.而且密钥方面可以随机改变一下.

我尝试将被感染后的程序内的主体字符串代码填充为00,然后保存后,卡巴大叔不杀了,哈哈~

可以看得出,卡巴是通过特征码查杀技术,假如将那段主体代码每次随机加密保存,不知道卡叔如何对付呢?应该会用上启发式查杀,哈哈~


注意,就算恢复回原来的SysConst.dcu文件,但是那些被感染过的程序再次执行,还会再次被感染.

暂时免疫方法:恢复后,设置SysConst.dcu文件属性为只读,并且保留SysConst.bak文件或者创建SysConst.bak名字的文件夹.

原创粉丝点击