阅读:1944回复:5
filedisk中如何将密钥从应用程序传入驱动程序??
各位大虾,我在filedisk中加上了加解密代码,密钥固定,工作正常,但是,如果我想将密钥从应用程序中传入驱动程序之中,完成加密和解密的工作,请问如何实现这一点,烦请高人指教。谢谢
|
|
|
沙发#
发布于:2004-03-09 13:15
直接传入RING0后,放到设备扩展即可。
|
|
|
板凳#
发布于:2004-03-09 12:46
这应当不是什么密密吧,在MSDN中查找DeviceIoControl的用法或者看几个相关例子即可。
|
|
|
地板#
发布于:2004-02-28 23:54
he_x_p 兄可否说得具体一些?我想实现的就是由应用程序向驱动程序的加解密函数中传递一个szKey密钥,谢谢。
我修改了应用程序的OPEN_FILE_INFORMATION: typedef struct _OPEN_FILE_INFORMATION { LARGE_INTEGER FileSize; BOOLEAN ReadOnly; USHORT FileNameLength; UCHAR FileName[1]; UCHAR mKey[8]; //增加 } OPEN_FILE_INFORMATION, *POPEN_FILE_INFORMATION; 驱动程序中的加解密函数: void crypt(PVOID pBuf,ULONG Len) { unsigned char *sbuf; rc4_key key; UCHAR szKey[8] = {0x21,0x32,0x23,0x34,0x25,0x36,0x27,0x38}; //szKey密钥需改 sbuf=ExAllocatePool(NonPagedPool,Len); RtlCopyMemory(sbuf,pBuf,Len); prepare_key(szKey,8,&key); rc4((unsigned char *)sbuf,Len,&key); RtlCopyMemory(pBuf,sbuf,Len); ExFreePool(sbuf); } |
|
|
地下室#
发布于:2004-02-28 13:39
有人知道,如果我真在读文件,这时如何卸载 filedisk呢
一般卸不了,怎么强行关闭所以对虚拟盘读写的程序呢, 很郁闷,搞好久了,还是没搞定 |
|
|
5楼#
发布于:2004-02-28 10:01
代在Driver中留下IoCtrl接口,然后在应用程序中先用CreateFile(...)打开驱动程序句柄,再用DeviceIoControl进行通信即可。
|
|
|