;Delphi---Virus.Win32.Induc.a [Anti感染解决方案]
;By:ZzAge
;Blog:http://hi.baidu.com/zzage
最近这个病毒火了..好多delphi写的正规的软件也不幸中奖了....
感染Delphi的SysConst.dcu文件,使编译出来的程序,都带了感染性的..不过这病毒也算不上有什么危害...但自己写的代码,编译多了一些莫名其妙的代码,还是非常不爽的...
昨晚回家,看了下自己的delphi,也中奖了.......
解决方案:
一:
先看看感染代码!从这段代码里,可以看得出来,这病毒是先从注册表的RootDir值读取了Delphi的路径,从而得到了SysConst.dcu的路径,相信大伙已经知道思路了,只要我们把RootDir值修改成别的,病毒不就获取不到路径了...当然也就感染不了...这里做个例子:把RootDir这个注册表项改成RootDDD
procedure st;
var
k:HKEY;
c:array [1..255] of char;
i:cardinal;
r:string;
v:char;
begin
for v:='4' to '7' do
if RegOpenKeyEx(HKEY_LOCAL_MACHINE,pchar('Software\Borland\Delphi\'+v+'.0'),0,KEY_READ,k)=0 then
begin
i:=255;
if RegQueryValueEx(k,'RootDir',nil,@i,@c,@i)=0 then
begin
r:='';
i:=1;
while c<>#0 do
begin
r:=r+c;
inc(i);
end;
re(r+'\source\rtl\sys\SysConst'+'.pas',r+'\lib\sysconst.','"'+r+'\bin\dcc32.exe" ');
end;
RegCloseKey(k);
end;
end;
二:
打开Delphi目录下的delphi32.exe文件,载入OD,找到"RootDir"这字符串,把"RootDir"这字符串改成"RootDDD",这样很简单就解决了..Delphi也正常使用了....也解决了被感染问题...(SysConst.dcu必须为正常的)..