阅读:13924回复:34
在应用层用HOOK技术做文件透明加密的问题
在应用层用HOOK技术做文件透明加密,可以实现比较简单类型的文件加密解密,比如.txt文件,
.bmp文件,但是对于象Word,excel等文件加密后解密老是会报文件内容无法正确读取的错误。 有这方面的经验高人请出手。 |
|
沙发#
发布于:2007-07-17 09:07
你得搞明白它写文件的规律才行.
而且应用程序hook作加解密,有很多无法解决的问题 |
|
|
板凳#
发布于:2007-07-17 13:03
引用第1楼znsoft于2007-07-17 09:07发表的 : 比如说:内存映射 |
|
|
地板#
发布于:2007-07-18 10:07
引用第2楼devia于2007-07-17 13:03发表的 : 内存映射也可以hook吧! 虽然没有试验过!! |
|
|
地下室#
发布于:2007-07-18 10:23
引用第2楼devia于2007-07-17 13:03发表的 : HookApi根本不用管内存映射,而且程序的错误都能被系统捕获,所以不象驱动容易导致蓝苹之类的 只是控制粒度太粗,有些事情无法彻底解决 |
|
|
5楼#
发布于:2007-07-18 10:49
引用第4楼looksail于2007-07-18 10:23发表的 : 怎么不用管内村映射?? 直接map文件,然后访问内存区域你不hook 怎么过滤?? |
|
|
6楼#
发布于:2007-07-18 12:15
内村映射是可以禁用的,
不用hook也可以实现(与磁盘设备有关) |
|
|
7楼#
发布于:2007-07-18 16:38
应用层的还是比较稳定
并且不用考虑缓存的问题 这些我都实现了 但就是不能做到完全透明,就是要分析每类应用程序的特征才性 其他的方面比驱动要好 |
|
8楼#
发布于:2007-07-19 14:16
driver12345
hook粘贴有没有搞定? |
|
9楼#
发布于:2007-07-19 19:17
粘贴都没有问题
不管是缓冲区的还是文件的 |
|
10楼#
发布于:2007-07-20 11:00
没有HOOK的应用程序怎么办?
|
|
11楼#
发布于:2007-07-20 12:59
没有hook的是非法的应用程序
非法的不能解密文档 |
|
12楼#
发布于:2007-07-20 14:57
楼上做的HOOK不是全局的HOOK
|
|
13楼#
发布于:2007-07-20 16:53
引用第6楼xiabl于2007-07-18 12:15发表的 : 禁用内存映射? 不是吧!!! |
|
|
14楼#
发布于:2007-07-21 11:39
请教driver12345 :
我仅HOOK了以下几个函数:CreateFileA,CreateFileW,ReadFile,ReadFileEx,WriteFile,WriteFileEx,CloseHandle。在CreateFileW中判断文件是否需要加密,如果需要,就打开该文件,读入整个文件的长度,然后加密,最后写一个加密标识到硬盘的系统目录下。在ReadFile时如果发现这个文件已经存在加密标志,就对每一块读出的BUFFER解密。这种办法对于简单文件如.txt,.bmp文件可以正确加密和解密,但是对于offcie文档虽然也可以拦截其读写操作,但是每次用word打开一个加密后的文件,word就会报告文件格式已经损坏。但是在调试信息中我明明看到已经调用了我的解密函数,请问这中间存在什么漏洞呢。给个提示吧。多谢! |
|
15楼#
发布于:2007-07-23 08:41
有关偏移的函数没有处理。
|
|
16楼#
发布于:2007-07-23 21:57
应用层是无法直接处理CreateFileMapping的,所以要用另一种方法,你在浪费时间,多想想吧
我的应用层加密很稳定,如下图 图片:11111111111.JPG 但是对于大型的3d装配体效率不够高,曾有客户拿来加密12000多件的装配体,虽说客户总工自己说延迟几分钟无所谓,但吾等汗颜。文件过滤驱动才是王道,不过难度很大,所以市面上...... 我在文件过滤中测试加密测试200兆500件的装配体损耗是毫秒级,效率损耗基本为0 但是有一些问题摆在面前需要逐个解决,越发痛恨微软 |
|
|
17楼#
发布于:2007-07-24 09:10
我也确实见过APIHOOK实现文件透明加解密的,感觉还很不错。不过只能针对指定的几种类型的文件,这样也够了,只要能对常用的几个类型加解密就可以了,那些exe,dll,sys加解密没有意义。
|
|
|
18楼#
发布于:2007-07-24 11:11
不用处理CreateFileMapping 这
应用层的方法也很多,如果用驱动的方法来理解的话可能就不对了 可以支持的类型是很多的: office wps pdf cad photoshop 3dmax coredraw 常用的都可以支持 |
|
19楼#
发布于:2007-07-25 22:38
为何要处理"有关偏移的函数",没有想明白,我用的是简单的异或加密,不管从什么位置读,都可以啊.
如果要处理位置偏移的函数:SetFilePointerEx,又该做些什么操作呢? 另外,对于异步重叠I/O是否需要专门处理呢? |
|
上一页
下一页