CIH对硬盘破坏之完全剖析.docVIP

  • 2
  • 0
  • 约4.58千字
  • 约 4页
  • 2017-06-07 发布于重庆
  • 举报
CIH对硬盘破坏之完全剖析

CIH对硬盘破坏之完全剖析.txt27信念的力量在于即使身处逆境,亦能帮助你鼓起前进的船帆;信念的魅力在于即使遇到险运,亦能召唤你鼓起生活的勇气;信念的伟大在于即使遭遇不幸,亦能促使你保持崇高的心灵。CIH对硬盘破坏之完全剖析 IOS_SendCommand是Win95的一个非常底层的VXD调用,通常是用作对IO设备的低层操作,如:读,写,加锁,格式化等等。一般情况下只能在Ring 0和虚拟机中使用,在普通程序中使用会有不可预料的后果!该VXD调用的功能很多,也很繁杂。参数数量很少,只有BCB或IOR和BDD或DCB的地址。但这几个数据结构却包含了大量的信息,结构也相当的复杂。CIH病毒只用到了IOR结构,它包含了近二十个数据,但主要用到的就是IOR_func,IOR_s tatus,IOR_flags,IOR_start_addr[2],IOR_xfer_count,IOR_buffer_ptr,IOR_req_re q_handle,IOR_req_vol_handle,IOR_sgd_lin_phys,IOR_num_sgds,IOR_vol_designtr! IOS_SendCommand的调用方法是: mov esi, CmdData ; address of BCB or IOR mov edi, DevData ; address of BDD or DCB VxDCall IOS_SendCommand IOR的完整定义为: typedef struct _IOR ULONG IOR_next; // client link; see below USHORT IOR_func; // function; see below USHORT IOR_status; // request status; see below ULONG IOR_flags; // request flags; see below CMDCPLT IOR_callback; // address of callback; see below ULONG IOR_start_addr[2]; // starting address; see below ULONG IOR_xfer_count; // # of sectors/bytes; see below ULONG IOR_buffer_ptr; // client buffer; see below ULONG IOR_private_client; // BlockDev/IOS client reserved ULONG IOR_private_IOS; // reserved space for IOS ULONG IOR_private_port; // private area for port driver union urequestor_usage _ureq; // requestor usage; see below ULONG IOR_req_req_handle; // request handle; see below ULONG IOR_req_vol_handle; // media handle; see below ULONG IOR_sgd_lin_phys; // first physical SGD; see below UCHAR IOR_num_sgds; // number of physical SGDs UCHAR IOR_vol_designtr; // drive letter; see below USHORT IOR_ios_private_1; // reserved by IOS to force alignment ULONG IOR_reserved_2[2]; // reserved for internal use IOR, *PIOR; CIH病毒先构造一个IOR,再使用IOS_SendCommand调用,完成IOR所指定的功能。病毒在IOR中的IOR_flags中指示要写的设备为物理设备 IORF_PHYS_CMD ,同步调用 IORF _SYNC_COMMAND ,即在写操作完成之后才返回。然后指定第一次写的位置为0 IOR_start_a ddr[2]即0柱面0面0扇区,即主引导区 ,每次写入2048个字节 IOR_xfer_count ,第一次 为物理硬盘一 IOR_vol_designtr 80h ,需要写入的东西放在内存0c0001000h IOR_buffe r_ptr ,这个地址是无所谓的,目的只是要随便写一大串无关数据到硬盘上,只要该地址

文档评论(0)

1亿VIP精品文档

相关文档