阅读:1481回复:4
VXD ifshook中怎样修改ioreq的数据 35分
我需要做文件加密操作,在read 时解密,在write时加密,我使用了
filemon。 怎样操作读写缓冲区,可不可以自己申请一个缓冲区来替代原有的缓冲区 补充一下:我是这样做的 如果是read,并且是加密的文件 pData=pir->ir_data; len=pir->ir_length; nRetVal=(*PrevHookProc)(pfn,fn,Drive,ResType,CodePage,pir); if(nRetVal==ERROR_SUCCESS) { for(;len>0;len--) { *pData=*pData^0xff;//模拟加密 pData++; } } 如果是write,并且需要加密 pOldData=pData=pir->ir_data;//缓冲区的数据加密 length=len=pir->ir_length; for(;len>0;len--) { *pData=*pData^0xff;//模拟加密 pData++; } nRetVal=(*PrevHookProc)(pfn,fn,Drive,ResType,CodePage,pir); for(;length>0;length--)//缓冲区的数据还原 { *pOldData=*pOldData^0xff;//模拟加密 pOldData++; } 测试时出现如下错误: 用wordpad存储一个大文件时,存储完毕,当关闭和wordpad时出现蓝屏,其错误分为两类: 1,无效的操作码 2,缺页中断错误,错误码为0006, |
|
最新喜欢:![]() |
沙发#
发布于:2004-06-04 13:02
这种方式加密后可能用户还能在资源管理器中看到文件目录结构??(我只是猜想,没试),不过我想拦截IOR_READT和IOR_WRITE来实现加密解密可能要好一些。
|
|
|
板凳#
发布于:2004-06-07 17:12
谢谢,利用IOR_READ和IOR_WRITE是不是对磁盘进行加密,能对单个文件进行控制吗?
|
|
地板#
发布于:2004-06-08 19:21
有人做过吧?指点一下好吗
|
|
地下室#
发布于:2004-07-26 09:17
我做的时候都是拷贝一份IRP,用拷贝下来的操作,最后把结果付给原来的就可以了
|
|