阅读:2393回复:10
谁做过 vxd 的文件驱动? fsn_read中读.doc文件的问题(.xls;.ppt都通过)!我做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; } |
|
沙发#
发布于:2003-02-13 13:52
1. 文件名应该在open里判断
2. 解密前,nRetVal没有判断 |
|
板凳#
发布于:2003-02-13 14:15
如何在open里判断?判断完后怎么传给read 告之是否应该进行加/解密处理? nRetVal判断有什么用吗?我手里没有资料,不清楚。
还有一个最致命的问题,现在我没有使用任何加密算法,因为加密算法都是需要和长度有关系的,这样的话,加密的时候和解密的时候fsn_read里面的长度有不一样的情况,加密解密就出现问题。针对这个问题如何解决?谢谢了!coolice ,有空请你吃饭?你有空吗? 什么??没有??那我就不能请你了,呵呵呵呵! |
|
地板#
发布于:2003-02-13 16:01
open的时候获得文件名并判断,如果是加密文件,记录下ir_fh,在read里根据ir_fn判断
nRetVal 为0 表示读取成功,否则为错误代码 不请吃饭?那加密算法的长度嘛... |
|
地下室#
发布于:2003-02-14 11:22
Coolice 太谢谢了,请你吃饭,在北京吗?qq390503 联系
加密算法长度,当然还要请教你了,加密算法这个问题很关键,长度问题怎么解决?如果是按每512个字节加解密的话即使是用rc4算法速度也会很慢啊!还有,一个问题请教,按你说的我只对一个文件进行操作时,通过句柄就完全可以实现.doc的加解密,但是如果我要对指定的文件夹下的所有文件操作的话,那难道非要建立一个文件句柄链表?(open可以同时有多个文件打开,多个文件句柄如何处理?) |
|
5楼#
发布于:2003-02-14 12:35
我不在北京,饭先记下,以后请吧,呵
不用解密512字节,解密最小数据块要求的倍数 对,就算能在read中得到文件名,也会因为频繁的read,影响系统速度,所以链表是必须的 如果多个应用程序同时读写一个加密文件,需要同步处理加解密 |
|
6楼#
发布于:2003-02-14 15:51
行,那饭给你留着,可别太长时间啊要不饭该馊了,呵呵.
还有个问题,问题是加密后的.exe(PE文件)在进行读取解密的时候一切正常,但是系统却出现非法操作的对话框,我清楚pe格式,读取的pe格式的数据我也看了没有什么错误, |
|
7楼#
发布于:2003-02-14 15:52
行,那饭给你留着,可别太长时间啊要不饭该馊了,呵呵.
还有个问题,问题是加密后的.exe(PE文件)在进行读取解密的时候一切正常,但是系统却出现非法操作的对话框,我清楚pe格式,读取的pe格式的数据我也看了没有什么错误,谢谢了! |
|
8楼#
发布于:2003-02-14 15:53
行,那饭给你留着,可别太长时间啊要不饭该馊了,呵呵.
还有个问题,问题是加密后的.exe(PE文件)在进行读取解密的时候一切正常,但是系统却出现非法操作的对话框,我清楚pe格式,读取的pe格式的数据我也看了没有什么错误,谢谢了!真是不做不知道,一做那么多问题还有\"解密最小数据块要求的倍数\"怎么得到?加密的时候的最小倍数一定能和解密的最小倍数一样吗/ |
|
9楼#
发布于:2003-02-14 17:27
非法操作说明解密流程有问题,原因就比较广了
\"解密最小数据块要求的倍数\" 就是按照加密算法的数据块大小,对齐read/write的 ir_length ir_pos,使ir_length/ir_pos都是数据块大小的整数倍。如果我没记错,rc4的数据块大小应该是16bytes |
|
10楼#
发布于:2003-02-19 10:58
不好意思,这段时间忙别的项目去了,现在我这项目暂时搁浅,还是先把分数给你,等以后在做这个项目时再说吧。再次感谢!
|
|