阅读:1810回复:12
如何截取windows98对硬盘的访问。
大家好,我初到贵地,现在有一个问题想问。
我门想搞一个硬盘加密方案(呵:)是不是有点落后,但我是抱着学编程的目的来搞的) 现在有两个方向:1.在引导和关机时解/加密FAT,操作系统使用时FAT是明文,关机后是密文;2.FAT在任何时候都是密文,在操作系统中安排程序监控操作系统对硬盘的访问,是访问FAT就进行解密。 大家知道如何让自己编的程序在正常关机的时候成为最后一个任务或者怎样截取操作系统对硬盘的访问吗?如果是用第2个方案,是用vc好还是vxd?大家有这方面的详细资料吗? 希望大家跟我联系交流。qq:77493618,e-mail:dszsun@sina.com 谢谢! |
|
沙发#
发布于:2002-08-07 08:53
这种事情app干不了吧。用VxD吧。
|
|
板凳#
发布于:2002-08-07 09:08
回1楼:那在vxd中是哪个类有着功能你知道吗?
谢谢 |
|
地板#
发布于:2002-08-07 09:54
没有做过这个,就不太清楚了。
|
|
地下室#
发布于:2002-08-08 17:54
兄弟,我也在考虑这个问题,一起搞吧
|
|
5楼#
发布于:2002-08-08 18:31
-----------------------------------------------------------
发表于: 2002/8/8 - 09:54 兄弟,我也在考虑这个问题,一起搞吧 ----------------------------------------------------------- 但还有些问题没解决,急需帮助呀! |
|
6楼#
发布于:2002-08-08 21:03
关注中???
|
|
7楼#
发布于:2002-08-10 12:51
vxd layered driver.
|
|
8楼#
发布于:2002-08-12 08:20
怎样截取操作系统对硬盘的访问
------------------------------- 在Win9x中每一个硬件设备都有一个DCB,你要做的就是将自己的回调函数插入改DCB的CallDown List中。 case AEP_CONFIG_DCB: // IOS sends this message when a new DCB is introduced to the system. The VSD // may at this point insert itself into the calldown list for the DCB. The // async event packet for this message is described by struct AEP_dcb_config. pDcb = ((AEP_dcb_config*)pAep)->AEP_d_c_dcb; // In the case of this example VSD, we are only interested in physical CD-ROM devices. if ( (pDcb->DCB_device_flags & DCB_DEV_PHYSICAL) && (pDcb->DCB_device_type == DCB_type_cdrom) ) { dprintf(\"VSDXMPL: Inserting into calldown chain for DCB %x\\n\", pDcb); // Initialize to zero the structure that will be passed back to IOS memset(&InsertISP, 0, sizeof(InsertISP)); // Set the required fields to arrange for insertion into the calldown list InsertISP.ISP_i_cd_hdr.ISP_func = ISP_INSERT_CALLDOWN; // set function InsertISP.ISP_i_cd_dcb = pDcb; // set device InsertISP.ISP_i_cd_req = VSDXMPL_RequestHandler; // specify our request handler InsertISP.ISP_i_cd_lgn = VSDXMPL_LGN_ORD; // specify IOS layer InsertISP.ISP_i_cd_flags = pDcb->DCB_dmd_flags; // copy current demand flags InsertISP.ISP_i_cd_ddb = pDcb->DCB_ptr_cd->DCB_cd_ddb; // Call IOS on the entry supplied in ILB at registration time VSDXMPL_Ilb.ILB_service_rtn((PISP)&InsertISP); // Set the flag indicating that we have inserted into at least one calldown list. bFoundAtLeastOneDevice = TRUE; } pAep->AEP_result = AEP_SUCCESS; break; 这样,每一个发送到该设备的请求都会送到 VSDXMPL_RequestHandler ... 在VToolsD下有一个例子vsdxmpl. |
|
|
9楼#
发布于:2002-08-12 09:07
谢谢楼上。那我试试看。
谢谢你 |
|
10楼#
发布于:2002-08-12 21:02
还是win2000中容易一些啊!!
如果你要在 win2000中做,我门可以交流一下 |
|
11楼#
发布于:2002-08-12 21:15
2000中有什么好法子
|
|
|
12楼#
发布于:2002-08-13 11:18
楼上的,在2000中有什么办法?
|
|