如何禁止别的程序读取我的文件

lght 2011-10-18 04:15:04
自己程序里的一些文件,不想别的程序读取,这个怎么做?

是不是要写驱动?

不用权限那种方式。
...全文
1807 40 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
dglife81 2011-10-22
  • 打赏
  • 举报
回复
关注关注。。。
54ItLan 2011-10-22
  • 打赏
  • 举报
回复
简单的就是文件加密。
山东蓝鸟贵薪 2011-10-22
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 lght 的回复:]
引用 22 楼 sgzhou12345 的回复:
呵呵,你真是太坏了呀
这个呀,我也做过的
给你一个思路:
你可以在DLL中设置两个参数
这两个参数,你可以选中其中一个参数作为“判断”,传递是“指定参数”,就继续引用DLL
否则就直接退出


不知道是我没懂你的意思还是你没懂我的意思。
[/Quote]
那你就“定义”个结构,就行呀,
比方说自定义一个“数据结构”生成一个小型数据库文件,
这样对方不知你的“数据结构”就无法读取其中数据了
dq2010 2011-10-22
  • 打赏
  • 举报
回复
我也想学习学习加密!
将来的将来 2011-10-21
  • 打赏
  • 举报
回复
文件加密享用独占方式
ghao0 2011-10-21
  • 打赏
  • 举报
回复
1.把数据放在别人读不到的地方,不过你也要读呀。
把数据放在分区之外,别人难读到,windows也读不到,你怎么读。
2.加密后再保存,使用时解密。
ntfs硬盘数据是可以加密的,windows帮你加解密。
软件狗,软件狗帮你加解密。
3.控制别人的读取。
你能吗?钩子。独占打开。

限制是相对的,个人认为加密后再保存,使用时解密简单可靠些。


sad 2011-10-20
  • 打赏
  • 举报
回复
这个..真很难.
在xp/2003/win7 32位的程序,即使以独占打开的程序,都可以通过CreateFile 传递FILE_READ_ATTRIBUTES打开,然后再DeviceIoControl,FSCTL_GET_RETRIEVAL_POINTERS查询所在扇区,直接读取磁盘对应的扇区把文件down出来.
在win7 64位下,独占的话如果在普通的用户进程,直接openprocess,duplicatehandle 把句柄dump到自己进程然后用,也可以.如果是系统进程,那就直接解析ntfs文件格式,依然可以dump文件.
这些还是不在内核里面做,如果上驱动,那更简单了,枚举句柄表,找目标句柄拿来直接用.
上面提到的hook api前提是你要hook所有进程里面的api,包括以后创建的进程的,如果别人把你钩子取了也就没用了.

so...lz还是从加密的角度来考虑吧,不要想着让别人没法读取文件.
当然上面提到的ntfs文件加密也应该是不错的.
liyuwenjing 2011-10-20
  • 打赏
  • 举报
回复
不懂楼主想要什么,可以再具体点,例如使用场景,你这样的需求所担心的问题是什么。

若是要挡住别的程序使用api来访问你的文件,是做不到的。 因为你的程序用API来访问,别的程序就可以用同样的API来访问,你自己的程序优先级并不比别人高。

若是你想保护你的文件中的内容不被别人看懂,则可以用对文件加密的方式来进行,或是使用hook API的方式来挡住别人的访问。 例如windows 加密过的rar压缩文件,它并不能阻挡别人对rar文件的访问,但是通过加密的方式,别人就看不到里面的内容了。 同样的可以保护文件。

kgzhw 2011-10-20
  • 打赏
  • 举报
回复
把写在文件中得内容加密,自己通过api读出来再解密。
Elvis_chen 2011-10-20
  • 打赏
  • 举报
回复
如果是你写的程序放到服务器上的,建议你在程序中加入看门狗。
lihh2008 2011-10-20
  • 打赏
  • 举报
回复
最好的办法就是用算法加密
ynquan 2011-10-20
  • 打赏
  • 举报
回复
加密吧
山东蓝鸟贵薪 2011-10-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 lght 的回复:]
自己程序里的一些文件,不想别的程序读取,这个怎么做?

是不是要写驱动?

不用权限那种方式。
[/Quote]
呵呵,你真是太坏了呀
这个呀,我也做过的
给你一个思路:
你可以在DLL中设置两个参数
这两个参数,你可以选中其中一个参数作为“判断”,传递是“指定参数”,就继续引用DLL
否则就直接退出
爱蹄子的羊头 2011-10-19
  • 打赏
  • 举报
回复
win7 倒是有个 bitlock 这个应该是跟操作系统有关吧
浩南_哥 2011-10-19
  • 打赏
  • 举报
回复
独占方式打开
这个方法应该可行
cczlp 2011-10-19
  • 打赏
  • 举报
回复
CreateFile以独占方式打开
funxu 2011-10-19
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 lght 的回复:]
引用 15 楼 funxu 的回复:
LZ用80分问了一个800分的问题,确实代价太大,除非你直接操作未分区硬盘来存储数据,我以前在delphibbs上看到有牛人做过,但是确实没看懂
另外替代解决方案倒是有几个,不过各有漏洞
1 使用文件加密
2 使用独占打开,也就是你的程序运行时即打开该文件
Of_Share_Deny_Read or
Of_Share_Deny_Wri……
[/Quote]
呵呵我只是比喻了一下你问题的困难程度,我没那么高杆

另外再推荐一种方法
微软2000以上版本 ntfs硬盘数据是可以加密的,也就是右键文件夹,选择属性,高级里有一个不起眼的加密选项
勾中后你不会感觉到区别,但是实际上,这个功能很英霸
1 他是使用用户的数字证书进行加密的,想要解密除非用管理员权限和你的数字证书,所以记得自己备份
2 如果使用其他用户登录你的电脑打开加密文件会发现打开失败,而且文件无法拷贝,即便拷贝出来也无法识别
3 如果你自己把文件从ntfs分区拷贝到fat32或者其他网络路径windows会帮你解密
4 格式化机器前记得取消那个加密选项,或者备份管理员数字证书和你的数字证书,否则后果自负
lght 2011-10-19
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 funxu 的回复:]

LZ用80分问了一个800分的问题,确实代价太大,除非你直接操作未分区硬盘来存储数据,我以前在delphibbs上看到有牛人做过,但是确实没看懂
另外替代解决方案倒是有几个,不过各有漏洞

1 使用文件加密

2 使用独占打开,也就是你的程序运行时即打开该文件
Of_Share_Deny_Read or
Of_Share_Deny_Write or
Of_Share_Excl……
[/Quote]

分不是问题,我还有800可用分,你要能解决,全都给你
iqyely 2011-10-19
  • 打赏
  • 举报
回复
来关注下
funxu 2011-10-19
  • 打赏
  • 举报
回复
LZ用80分问了一个800分的问题,确实代价太大,除非你直接操作未分区硬盘来存储数据,我以前在delphibbs上看到有牛人做过,但是确实没看懂
另外替代解决方案倒是有几个,不过各有漏洞

1 使用文件加密

2 使用独占打开,也就是你的程序运行时即打开该文件
Of_Share_Deny_Read or
Of_Share_Deny_Write or
Of_Share_Exclusive or

3 阿拉丁的加密锁提供这种功能,即对某一类文件加密,使加密锁才能打开该文件
加载更多回复(19)

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧