delphi梦魇病毒--解决方法

<!--StartFragment -->Win32.Induc.A
别名:Virus.Win32.Induc.a(金山毒霸)Virus.Win32.Induc.a(Kaspersky)W32.Induc(Mcafee)Virus:Win32.Induc.A(Microsoft)
病毒类型:Virus(病毒)
大小:约5KB
影响平台:微软Windows操作系统

Win32/Induc.A是一个可以在编译时(compile-time)感染Delphi文件的病毒.当随着被感染文件进入电脑系统,“Delphi梦魇”就开始检验系统中是否有Delphi环境.它通过循环检测注册表键值的方法查找dephi的安装目录,如果找到dephi这个冤大头,就将恶意代码前排插入SysConst.pas文件,这个文件编译的时候,会生成SysConst.dcu,而这个文件会被添加到每个新的dephi工程中.该毒在全球网络中已经传播了多月,目前已知受感染最早的系统,在2008年的年末就已中招.反病毒工程师发现,该毒作者的用意似乎并不在破坏,只是静默地实现感染,不断传播代码的主体.病毒就这样不断传播,直到遍及全球所有基于Delphi环境的电脑,而对没有安装Delphi相关软件的普通电脑,则是完全无效.这个病毒具有二次感染能力,也就是说原来你编译出来的所有Delphi程序都可以再次感染你机器上的Delphi库文件,请一定要检查你所写出的工具是否也含毒,否则将陷入一个死循环

该病毒针对下列文件进行拷贝(源文件,目的文件)
%delphirootdir%/Lib/SysConst.dcu,%delphirootdir%/Lib/SysConst.bak
%delphirootdir%/source/rtl/sys/SysConst.pas,%delphirootdir%/Lib/SysConst.pas
修改了下列文件
%delphirootdir%/Lib/SysConst.pas
该病毒将自身源代码写入文件
该病毒执行下列命令行l
"%delphirootdir%/Bin/dcc32.exe""%delphirootdir%/Lib/SysConst.pas"
最终文件"%delphirootdir%/Lib/SysConst.dcu"包括了原始代码
删除了下列文件
%delphirootdir%/Lib/SysConst.pas
文件感染
Win32/Induc.A是一个感染Delphi编译文件的病毒
用Delphi语言编写的编译程序也会携带病毒代码.插入代码的大小为5KB.
其他信息
Delphi版本4、5、6、7均受影响

目前已经发现受感染的知名程序
1.部分innosetup增强版编译环境的版本
2.某些传奇外挂和软件登录器等
3.iSpeak部分修改版(官方下载没有问题)
4.无忧登陆软件(暂未找到那个是真官方,有个QQ无忧登录的网站正常)
5.部分CS程序等
6.部分单机大型游戏安装目录下的info/setup.exe(魔兽争霸III,天使帝国3等其他网络流行单机游戏,多为盗版游戏官方的没有鉴定)
7.部分迅雷Ayu修改版本
8.部分万象2004版本
9.南京宏图天安的个人所得税代扣代缴系统(可能)

解决方案:
1、使用杀软扫描所有的Delphi编写的可执行文件并清除病毒(或直接删除所有Delphi编写的可执行文件,包括从网上下载的)
2、将文件%DelphiInstallPath%/Lib/SysConst.dcu删掉,然后执行步骤4或步骤5
3、将文件%DelphiInstallPath%/Lib/SysConst.bak改名为SysConst.dcu,结束.
4、调用DCC32.exe编译出新的SysConst.dcu,编译命令如下:%DelphiInstallPath%/bin/DCC32.exe"%DelphiInstallPath%//Source/Rtl/Sys/SysConst.pas"
5、将新编译的SysConst.dcu(在%DelphiInstallPath%//Source/Rtl/Sys/目录下)文件复制到%DelphiInstallPath%/Lib/目录
6、也可以在目标EXE(被感染的DELPHI程序)中搜索
2D000000757365732077696E646F77733B207661为感染代码的头,然后在2E70617300000000为感染的尾部,将这一段清零,再搜索E84AFDFFFF->9090909090就可以了,可以完美修复
注:源程序已经加壳或数字签名后,以上某些方法可能会失效

Werecentlyaddeddetectionforafileinfectortoourdatabases,

forsomethingwecallVirus.Win32.Induc.a.Sincethen,we'vehadaloadofquestionsaboutit.

Itdoesn'tcurrentlyhaveamaliciouspayload,anditdoesn'tdirectlyinfect.exefiles.Instead,

itchecksifDelphiisinstalledonthevictimmachine,lookingforversions4.0,5.0,6.0and7.0.


IfthemalwaredoesfindoneoftheseDelphiversions,

itcopiesSysConst.pasto/Libandwritesitscodetoit.

ItthenmakesabackupofSysConst.dcu,callingitSysConst.bak(dcufilesarekeptin/Lib).

Itthencompiles/Lib/SysConst.pasgivinganinfectedversionofSysConst.dcu.Themodified.

pasfilegetsdeleted.

<!--StartFragment -->
"useswindows;
varsc:array[1..24]ofstring=('useswindows;varsc:array[1..24]ofstring=(','functionx(s:string):string;vari:integer;beginfori:=1tolength(s)doifs[i]',
'=#36thens[i]:=#39;result:=s;end;procedurere(s,d,e:string);varf1,f2:textfile;','h:cardinal;f:STARTUPINFO;p:PROCESS_INFORMATION;b:boolean;t1,t2,t3:FILETIME;begin',
'h:=CreateFile(pchar(d+$bak$),0,0,0,3,0,0);ifh<>DWORD(-1)thenbeginCloseHandle',"
Theresult–anyDelphiprogramcompiledonthecomputergetsinfected.

(We'vealreadyhadacompanycontactingustocomplainaboutsomethingtheythought

wasafalsepositive.)Maybethisparticularvirusisn'tthatmuchofathreat:it'snotthefirsttime

we'veseenthispropagationmethod,thecodeitselfisprimitive,there'snootherpayload,and

therearefareasierwaystoinfectmachines.Butinthepastwe'veseennewinfectionroutines

getpickedup,tweaked,andtakenfurther.We'llbekeepinganeyeonthisone,justincase

我的也找不到了,结果我搜了一下:

C:/Program Files/Borland/Delphi7/Lib

下确实没有SysConst.dcu,好在C:/Program Files/Borland/Delphi7/Lib/Debug下有这个文件,拷过去就行了!

你可能感兴趣的:(Delphi)