Delphi民工的梦魇!

最近金山云安全中心截获了一个很牛X的病毒,金山的反病毒工程师不由叹道YY很久的东西终于有人实现了。

这是一段针对IT民工、尤其是Delphi程序员的病毒,简单的描述该毒行为,就是:它专门感染程序员的电脑,一旦成功,程序员今后写出的任何程序,都是带毒的。
它通过某种方式去查找dephi的安装目录,如果找到dephi这个冤大头,就将邪恶的恶意代码前排插入SysConst.pas文件,这个文件编译的时候,会生成SysConst.dcu,而这个文件会被添加到每个新的dephi工程中,all right!现在,民工们所编写的程序就全部都带毒咯!。
而更可怕的是,根据对染毒系统的分析,我们发现该毒在全球网络中已经传播了多月。已不知道有多少民工的生产工具中了招……





Delphi程序员的悲惨经历——病毒运行过程描述

某年某月某日,dephi噩梦中开始无声无息的执行。病毒的运行以后,首先执行后从注册表"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单元所编译的任意可执行文件都会成为病毒载体,一个隐秘的病毒兵工厂就这样一个个的诞生。



不幸中的万幸

虽然有可能已有大量程序员中招,但通过代码我们发现,该毒作者的用意似乎并不在破坏,只是静默无声无色地实现感染,一次又一次的感染,不断地传播代码的主体,病毒就这样不断传播,直到遍及全球所有IT民工的电脑,这一定是一个能让他觉得十分有成就感的过程。


天朝的病毒作者兴奋了
虽说病毒原作者看上去没啥坏心,但是在天朝广大趋利的病毒作者眼中,这无疑是一份大大的馅饼。根据目前金山云安全中心的监控首次截获病毒是8.13号,相信在孜孜不倦的天朝黑客的手中,这份看上去温和的代码会不断的改良,实现下载盗号器等功能,不久便“绽放”在神州大地。


手工解决方案

这个病毒具有二次感染能力,也就是说原来你编译出来的所有Delphi程序都可以再次感染你机器上的Delphi库文件,要彻底清除该病毒需做到以下几点:

1、不要运行任何Delphi编写的程序。
2、使用杀软扫描所有的Delphi编写的可执行文件并清除病毒。(或直接删除所有Delphi编写的可执行文件,包括从网上下载的)
3、将文件 %DelphiInstallPath%\Lib\SysConst.dcu 删掉,然后执行步骤4 或 步骤5和6。
4、将文件 %DelphiInstallPath%\Lib\SysConst.bak 改名为 SysConst.dcu,结束。
5、调用 DCC32.exe 编译出新的 SysConst.dcu ,编译命令如下: %DelphiInstallPath%\bin\DCC32.exe "%DelphiInstallPath%\\Source\Rtl\Sys\SysConst.pas"
6、将新编译的SysConst.dcu(在%DelphiInstallPath%\\Source\Rtl\Sys\目录下)文件复制到 %DelphiInstallPath%\Lib\ 目录,结束。
7、使用金山毒霸2009并升级到最新版本全盘扫描清除已经被感染的delphi程序

金山互联网安全技术研发中心

反病毒社会专家管理组—L.S.



用户系统信息:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
己已斋