Brain
驱动牛犊
驱动牛犊
  • 注册日期2003-01-11
  • 最后登录2007-06-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2393回复:10

谁做过 vxd 的文件驱动? fsn_read中读.doc文件的问题(.xls;.ppt都通过)!

楼主#
更多 发布于:2003-02-13 13:29
  
     我做vxd的驱动,对.doc文件加密,然后在fsn_read的时候就蓝屏,其他文件都没问题代码如下:

case IFSFN_READ:
{

strcpy(Path_kk,\"D:\\\\QQ\\\\\");
if(!GetFullNameByHandle(pir,Drive,ResType,CodePage,pPPath, FALSE))
break;

UniToBCSPathEx((PUCHAR)pBCSPath,pPPath->pp_elements,Drive,MAX_PATH,CodePage,&res);
                        
                        if(memcmp(pBCSPath,Path_kk,strlen(Path_kk))!=0)
                            break;
                      
                               dprintf(\"r=%s\",pBCSPath);
                      
                      nRetVal=(*PrevHookProc)(pfn,fn,Drive,ResType,CodePage,pir);
                     
                      flag=TRUE;
                                        
                              
                                                            
                       str = (unsigned char *)origir->ir_data;
                       
                for(unsigned long i=0;i<origir->ir_length;i++)
                {
                   str=str^97;
                         
                        }
                       
                     
                      break;


}
Coolice
驱动小牛
驱动小牛
  • 注册日期2002-11-13
  • 最后登录2003-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-02-13 13:52
1. 文件名应该在open里判断
2. 解密前,nRetVal没有判断
Brain
驱动牛犊
驱动牛犊
  • 注册日期2003-01-11
  • 最后登录2007-06-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-02-13 14:15
如何在open里判断?判断完后怎么传给read 告之是否应该进行加/解密处理?  nRetVal判断有什么用吗?我手里没有资料,不清楚。

还有一个最致命的问题,现在我没有使用任何加密算法,因为加密算法都是需要和长度有关系的,这样的话,加密的时候和解密的时候fsn_read里面的长度有不一样的情况,加密解密就出现问题。针对这个问题如何解决?谢谢了!coolice ,有空请你吃饭?你有空吗?

什么??没有??那我就不能请你了,呵呵呵呵!
Coolice
驱动小牛
驱动小牛
  • 注册日期2002-11-13
  • 最后登录2003-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-02-13 16:01
open的时候获得文件名并判断,如果是加密文件,记录下ir_fh,在read里根据ir_fn判断

nRetVal 为0 表示读取成功,否则为错误代码

不请吃饭?那加密算法的长度嘛...
Brain
驱动牛犊
驱动牛犊
  • 注册日期2003-01-11
  • 最后登录2007-06-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-02-14 11:22
   Coolice 太谢谢了,请你吃饭,在北京吗?qq390503 联系

加密算法长度,当然还要请教你了,加密算法这个问题很关键,长度问题怎么解决?如果是按每512个字节加解密的话即使是用rc4算法速度也会很慢啊!还有,一个问题请教,按你说的我只对一个文件进行操作时,通过句柄就完全可以实现.doc的加解密,但是如果我要对指定的文件夹下的所有文件操作的话,那难道非要建立一个文件句柄链表?(open可以同时有多个文件打开,多个文件句柄如何处理?)
Coolice
驱动小牛
驱动小牛
  • 注册日期2002-11-13
  • 最后登录2003-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-02-14 12:35
我不在北京,饭先记下,以后请吧,呵

不用解密512字节,解密最小数据块要求的倍数

对,就算能在read中得到文件名,也会因为频繁的read,影响系统速度,所以链表是必须的

如果多个应用程序同时读写一个加密文件,需要同步处理加解密
Brain
驱动牛犊
驱动牛犊
  • 注册日期2003-01-11
  • 最后登录2007-06-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-02-14 15:51
行,那饭给你留着,可别太长时间啊要不饭该馊了,呵呵.

还有个问题,问题是加密后的.exe(PE文件)在进行读取解密的时候一切正常,但是系统却出现非法操作的对话框,我清楚pe格式,读取的pe格式的数据我也看了没有什么错误,
Brain
驱动牛犊
驱动牛犊
  • 注册日期2003-01-11
  • 最后登录2007-06-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-02-14 15:52
行,那饭给你留着,可别太长时间啊要不饭该馊了,呵呵.

还有个问题,问题是加密后的.exe(PE文件)在进行读取解密的时候一切正常,但是系统却出现非法操作的对话框,我清楚pe格式,读取的pe格式的数据我也看了没有什么错误,谢谢了!
Brain
驱动牛犊
驱动牛犊
  • 注册日期2003-01-11
  • 最后登录2007-06-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-02-14 15:53
行,那饭给你留着,可别太长时间啊要不饭该馊了,呵呵.

还有个问题,问题是加密后的.exe(PE文件)在进行读取解密的时候一切正常,但是系统却出现非法操作的对话框,我清楚pe格式,读取的pe格式的数据我也看了没有什么错误,谢谢了!真是不做不知道,一做那么多问题还有\"解密最小数据块要求的倍数\"怎么得到?加密的时候的最小倍数一定能和解密的最小倍数一样吗/
Coolice
驱动小牛
驱动小牛
  • 注册日期2002-11-13
  • 最后登录2003-08-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-02-14 17:27
非法操作说明解密流程有问题,原因就比较广了

\"解密最小数据块要求的倍数\" 就是按照加密算法的数据块大小,对齐read/write的 ir_length ir_pos,使ir_length/ir_pos都是数据块大小的整数倍。如果我没记错,rc4的数据块大小应该是16bytes
Brain
驱动牛犊
驱动牛犊
  • 注册日期2003-01-11
  • 最后登录2007-06-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-02-19 10:58
不好意思,这段时间忙别的项目去了,现在我这项目暂时搁浅,还是先把分数给你,等以后在做这个项目时再说吧。再次感谢!
游客

返回顶部