本文共 1082 字,大约阅读时间需要 3 分钟。
引言
最近遇到一道题, 需求: 根据策略配置, 防止向U盘中拷贝文件,要求在R3完成.
非常感谢wu对关键技术点的指点!
工程下载
感受
这2个星期都在做这个工程, 细节还是蛮多的, 一个一个的小问题,一个一个的搞定.
我想,5天要搞定这个组件. 如果不是从已经实现的Demo中,迁出相应的功能, 绝对做不完.
这篇文章在PEDIY上被加精, 开心~
防止向U盘拷贝的内容
文件
文件夹
文件夹中任意目录中存在的特定文件后缀的文件
测试
今天经过自己在实体机测试, 得到以下测试结论在Win7X64下达到了需求的要求.
在WinXpX86Sp3下达到了需求的要求.
Win7X86没有实体机, Vmware中的Windows不认识我的USB3.0U盘, 暂时中断该平台的测试.
用ApiMonitor可以看到, Win7X64和win7X86的文件操作,调用的COM API都是相同的.
软件实现思路
* WinXp下, Hook Win32API, 实现禁止通过资源管理器向U盘拷贝文件
* Win7(x86/x64)下, Hook COM API, 实现禁止通过资源管理器向U盘拷贝文件
软件组件构成
* CtrlProg.exe : 控制程序, 负责策略的定制, Hook DLL 的控制(安装, 卸载)
* LsApiHook.dll: Hook Win32API, 实现在WinXp下U盘 DLP
Hook函数列表: CopyFileExW
CreateFileW
* LsComHookProxy.dll, Hook COM API, 实现在Win7(x86/x64)下U盘DLP
Hook函数列表: CoCreateInstance,
IFileOperation::CopyItems IFileOperation::MoveItems IFileOperation::NewItem IFileOperation::RenameItem技术点
* COM接口方法地址的取得
* 在C++程序中调用C方式的COM接口方法
策略定制
* 禁止/允许向U盘中拷贝文件夹
* 禁止/允许向U盘中拷贝特定文件后缀的文件
在产品中,随着实际需求的细化, 细化策略,细化文件控制.
备注
* 在产品中用, 控制程序要由驱动保护, 防止被关掉.
* 策略的下达, 一般不是由控制程序下发.
* 产品中, 特定后缀类型的文件的判断,要由PE文件实际内容判定,而不是文件后缀名
软件截图
当不需要运行时,直接关掉控制程序 或 通过菜单禁止HOOK后,再退出程序.
转载地址:https://lostspeed.blog.csdn.net/article/details/12654449 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!