本文只供研究参考之用,如作其他用途,概于本人无关!

本文只供研究参考之用,如作其他用途,概于本人无关!

ID:19469048

大小:37.00 KB

页数:4页

时间:2018-09-28

本文只供研究参考之用,如作其他用途,概于本人无关!_第1页
本文只供研究参考之用,如作其他用途,概于本人无关!_第2页
本文只供研究参考之用,如作其他用途,概于本人无关!_第3页
本文只供研究参考之用,如作其他用途,概于本人无关!_第4页
资源描述:

《本文只供研究参考之用,如作其他用途,概于本人无关!》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、本文只供研究参考之用,如作其他用途,概于本人无关!我的个人主页:http://bbs.scu.edu.cn/~tpo我的电子邮件:zd_dan@263.net邹丹编写于1999年4月29日CIH对硬盘破坏之完全剖析IOS_SendCommand是Win95的一个非常底层的VXD调用,通常是用作对IO设备的低层操作,如:读,写,加锁,格式化等等。一般情况下只能在Ring0和虚拟机中使用,在普通程序中使用会有不可预料的后果!该VXD调用的功能很多,也很繁杂。参数数量很少,只有BCB或IOR和BDD或DCB的地址。但这几个数据结构却包含了大量的信息,结构也相当的复杂。CIH病

2、毒只用到了IOR结构,它包含了近二十个数据,但主要用到的就是IOR_func,IOR_status,IOR_flags,IOR_start_addr[2],IOR_xfer_count,IOR_buffer_ptr,IOR_req_req_handle,IOR_req_vol_handle,IOR_sgd_lin_phys,IOR_num_sgds,IOR_vol_designtr!IOS_SendCommand的调用方法是:movesi,CmdData;addressofBCBorIORmovedi,DevData;addressofBDDorDCBVxDCallIO

3、S_SendCommandIOR的完整定义为:typedefstruct_IOR{ULONGIOR_next;//clientlink;seebelowUSHORTIOR_func;//function;seebelowUSHORTIOR_status;//requeststatus;seebelowULONGIOR_flags;//requestflags;seebelowCMDCPLTIOR_callback;//addressofcallback;seebelowULONGIOR_start_addr[2];//startingaddress;seebelowUL

4、ONGIOR_xfer_count;//#ofsectors/bytes;seebelowULONGIOR_buffer_ptr;//clientbuffer;seebelowULONGIOR_private_client;//BlockDev/IOSclientreservedULONGIOR_private_IOS;//reservedspaceforIOSULONGIOR_private_port;//privateareaforportdriverunionurequestor_usage_ureq;//requestorusage;seebelowULONGI

5、OR_req_req_handle;//requesthandle;seebelowULONGIOR_req_vol_handle;//mediahandle;seebelowULONGIOR_sgd_lin_phys;//firstphysicalSGD;seebelowUCHARIOR_num_sgds;//numberofphysicalSGDsUCHARIOR_vol_designtr;//driveletter;seebelowUSHORTIOR_ios_private_1;//reservedbyIOStoforcealignmentULONGIOR_res

6、erved_2[2];//reservedforinternaluse}IOR,*PIOR;CIH病毒先构造一个IOR,再使用IOS_SendCommand调用,完成IOR所指定的功能。病毒在IOR中的IOR_flags中指示要写的设备为物理设备(IORF_PHYS_CMD),同步调用(IORF_SYNC_COMMAND),即在写操作完成之后才返回。然后指定第一次写的位置为0(IOR_start_addr[2]即0柱面0面0扇区,即主引导区),每次写入2048个字节(IOR_xfer_count),第一次为物理硬盘一(IOR_vol_designtr=80h),需要写入

7、的东西放在内存0c0001000h(IOR_buffer_ptr),这个地址是无所谓的,目的只是要随便写一大串无关数据到硬盘上,只要该地址不是指向不存在的内存空间即可。最后CIH调用IOS_SendCommand,完成一次写操作!操作完成后,先判断状态(IOR_status),看是否有该设备是否正常,是则每次2048字节的一直写下去。如果写完一个硬盘(不太可能)或出错则把IOR_vol_designtr+1使之指向下一个物理硬盘!程序注释如下:;***************************;*KillAllHardDisk*;*

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。