病毒背景:
它是一种杀毒软件很难清除的一种木马,会随着系统启动而启动,会自动生成文件到系统目录或是程序目录,有可能还会在RAR文件目录中生成,一般杀毒软件查杀到RAR里面有此文件会提示删除文件而导致客户的文件丢失。如果发现电脑中几乎所有的目录都存在lpk.dll,甚至压缩包中也存在,则极有可能中了利用操作系统自动加载lpk的蠕虫(而且是木马)。

大部分杀毒软件没法完美的处理RAR中病毒,(据说瑞星可以,但是速度很慢,不知道是不是采用的解压方法)

为了应急对付LPK.DLL的大量感染或者说是挽救大量的RAR,熬夜写了这样一个东西(如果清理不干净,稍不留神会再次激活)

软件仅能删除LPK.DLL(不会误删),可以删除带有系统、只读属性的,也可以删除RAR里(不管是在RAR根目录下还是里面的文件夹里)

采用体积匹配,应该能对付一些变种。
附源代码以及lpk.dll样本,本来想用unrar.dll来处理RAR,不过来不及了。


有什么建议留言就好。

上传的附件 LPK杀.rar

  • 标 题:答复
  • 作 者:fireworld
  • 时 间:2011-07-26 15:43:15

支持usp10.dll清理吗?

  • 标 题:答复
  • 作 者:怪才
  • 时 间:2011-07-27 10:50:57

你自己加上去就可以啦,有源代码,
            if Match(FilePath + FileRec.Name, MaskList) then
            begin
              ce:=FilePath + FileRec.Name;
              Form1.lbl3.Caption := ce;
              Application.ProcessMessages;
                if LowerCase(RightStr(ce,9)) = 'usp10.dll' then
                begin
                  Form1.mmo1.Lines.Add('发现usp10.dll:' + ce);
                  SetFileAttributes(PChar(ce),0);
                  if (filerec.Size>30000) and (filerec.Size<48000) then//这儿你看一下文件大小,自己改一下,为了对付变种,看一下它的体积区间,单位是字节
                  if WinExecAndWait32('cmd /c del /f "' + ce +'"', SW_HIDE)=0
                  then
                  begin
                  Form1.mmo1.Lines.Add('删除:' + ce);
                  Inc(sum);
                  end;

                end;
                if LowerCase(RightStr(ce,3)) = 'rar' then
                begin
                  Form1.mmo1.Lines.Add('发现RAR文件:' + ce);
                  Form1.mmo1.Lines.Add('分析' + ce);
                  WinExecAndWait32('cmd /c rar.exe vb "' + ce +
                    '" >TEMP.TXT', SW_HIDE);
                  system.Assign(p, 'TEMP.TXT');
                  system.Reset(p);
                  repeat
                    Readln(p, s);

                    l := Length(s);
                    if (l > 8) and (LowerCase(RightStr(s, 9)) = 'usp10.dll') then
                    begin
                      Form1.mmo1.Lines.Add('发现USP10.DLL文件:' + s);
                      if WinExecAndWait32('rar.exe d -sm30000 -sl48000 "' +
                        ce + '" "' + s + '"', SW_HIDE) = 0 then//注意体积 -sm后跟的是最小体积,-sl后是最大体积
                        begin
                        Form1.mmo1.Lines.Add('已清理:' + s);
                        Inc(sum);
                        end;
当然,重点就是RAR的清理。