duleax
驱动牛犊
驱动牛犊
  • 注册日期2007-06-02
  • 最后登录2009-07-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望13点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
阅读:13187回复:34

在应用层用HOOK技术做文件透明加密的问题

楼主#
更多 发布于:2007-07-16 23:09
在应用层用HOOK技术做文件透明加密,可以实现比较简单类型的文件加密解密,比如.txt文件,
.bmp文件,但是对于象Word,excel等文件加密后解密老是会报文件内容无法正确读取的错误。
有这方面的经验高人请出手。
duleax
驱动牛犊
驱动牛犊
  • 注册日期2007-06-02
  • 最后登录2009-07-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望13点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-07-21 11:39
请教driver12345 :
我仅HOOK了以下几个函数:CreateFileA,CreateFileW,ReadFile,ReadFileEx,WriteFile,WriteFileEx,CloseHandle。在CreateFileW中判断文件是否需要加密,如果需要,就打开该文件,读入整个文件的长度,然后加密,最后写一个加密标识到硬盘的系统目录下。在ReadFile时如果发现这个文件已经存在加密标志,就对每一块读出的BUFFER解密。这种办法对于简单文件如.txt,.bmp文件可以正确加密和解密,但是对于offcie文档虽然也可以拦截其读写操作,但是每次用word打开一个加密后的文件,word就会报告文件格式已经损坏。但是在调试信息中我明明看到已经调用了我的解密函数,请问这中间存在什么漏洞呢。给个提示吧。多谢!
duleax
驱动牛犊
驱动牛犊
  • 注册日期2007-06-02
  • 最后登录2009-07-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望13点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-07-25 22:38
为何要处理"有关偏移的函数",没有想明白,我用的是简单的异或加密,不管从什么位置读,都可以啊.
如果要处理位置偏移的函数:SetFilePointerEx,又该做些什么操作呢?
另外,对于异步重叠I/O是否需要专门处理呢?
duleax
驱动牛犊
驱动牛犊
  • 注册日期2007-06-02
  • 最后登录2009-07-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望13点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-07-25 22:42
这是一个技术交流的平台,但林子大了,什么人都有,很多真正的大侠用他们无私的精神,高超的技艺让人叹服.
游客

返回顶部