要想实现U盘里自启动以及控制U盘的访问权 需要哪些方面的知识?
如题:要想实现U盘里自启动以及控制U盘的访问权需要哪些方面的知识?想让一个程序在插入U盘后即运行,不管是否自动播放,并且可以控制U盘是否被访问,以及格式化。如有大神,请不吝赐教。
♂我是上帝♂ 发表于 2014-6-20 10:47 static/image/common/back.gif
没有啦,我就想回复谢谢。结果出来这个,我就直接粘贴,凑字数
那选我为最佳答案呗。。亲。。。╭(╯3╰)╮ 可以通过量产解决访问权限的问题,例如禁止写入权限,跟光盘一样的只读权限。 小甲鱼 发表于 2014-6-19 17:36 static/image/common/back.gif
可以通过量产解决访问权限的问题,例如禁止写入权限,跟光盘一样的只读权限。
谢谢小甲鱼。不过这样会不会 U盘没法像正常U盘一样存储和读写文件。我只是想让U盘在验证密码前无法打开和格式化U盘。 ♂我是上帝♂ 发表于 2014-6-19 21:09 static/image/common/back.gif
谢谢小甲鱼。不过这样会不会 U盘没法像正常U盘一样存储和读写文件。我只是想让U盘在验证密码前无法打开和 ...
如果你希望写一个安全软件,将数据存放在U盘的安全软件中,需要验证才能对该安全软件内的东西进行操作,这是可以办到的。但无法阻止从我的电脑右键“格式化U盘”。 本帖最后由 ♂我是上帝♂ 于 2014-6-19 21:40 编辑
http://www.demohour.com/projects/320198如果在U盘量产时就把软件写入呢?我看到网上有一个软件安装后,即使重装系统也没用。,我是只菜鸟,上面的不知道说得对不对?只是想实现自己的想法.谢谢小甲鱼。 ring3下实现。。。。。检测U盘插入的函数
///// 检测U盘插入c#代码
///// </summary>
//public const int WM_DEVICECHANGE = 0x219;
//public const int DBT_DEVICEARRIVAL = 0x8000;
//public const int DBT_CONFIGCHANGECANCELED = 0x0019;
//public const int DBT_CONFIGCHANGED = 0x0018;
//public const int DBT_CUSTOMEVENT = 0x8006;
//public const int DBT_DEVICEQUERYREMOVE = 0x8001;
//public const int DBT_DEVICEQUERYREMOVEFAILED = 0x8002;
//public const int DBT_DEVICEREMOVECOMPLETE = 0x8004;
//public const int DBT_DEVICEREMOVEPENDING = 0x8003;
//public const int DBT_DEVICETYPESPECIFIC = 0x8005;
//public const int DBT_DEVNODES_CHANGED = 0x0007;
//public const int DBT_QUERYCHANGECONFIG = 0x0017;
//public const int DBT_USERDEFINED = 0xFFFF;
//protected override void WndProc(ref Message m)
//{
// try
// {
// if (m.Msg == WM_DEVICECHANGE)
// {
// switch (m.WParam.ToInt32())
// {
// case WM_DEVICECHANGE:
// break;
// case DBT_DEVICEARRIVAL://U盘插入
// DriveInfo[] s = DriveInfo.GetDrives();
// foreach (DriveInfo drive in s)
// {
// if (drive.DriveType == DriveType.Removable)
// {
// Upath = drive.Name.ToString();
// string folderpath = Upath + @"\taxbase";
// if (!Directory.Exists(folderpath))
// {
// Directory.CreateDirectory(folderpath);
// }
// string path = Upath + @"\taxbase\" + LoginUserInfo.LoginUser.Com_code + @".db";
// if (File.Exists(path))
// {
// MessageBox.Show("检测到U盘插入,可以更新数据!");
// }
// break;
// }
// }
// break;
// case DBT_CONFIGCHANGECANCELED:
// break;
// case DBT_CONFIGCHANGED:
// break;
// case DBT_CUSTOMEVENT:
// break;
// case DBT_DEVICEQUERYREMOVE:
// break;
// case DBT_DEVICEQUERYREMOVEFAILED:
// break;
// case DBT_DEVICEREMOVECOMPLETE: //U盘卸载
// break;
// case DBT_DEVICEREMOVEPENDING:
// break;
// case DBT_DEVICETYPESPECIFIC:
// break;
// case DBT_DEVNODES_CHANGED:
// break;
// case DBT_QUERYCHANGECONFIG:
// break;
// case DBT_USERDEFINED:
// break;
// default:
// break;
// }
// }
// }
// catch (Exception ex)
// {
// MessageBox.Show(ex.Message);
// }
// base.WndProc(ref m);
//}
至于访问控制,。。。。可以用HOOK API 实现。。。HOOK CreateFile试试。。 向往青莲 发表于 2014-6-20 09:21 static/image/common/back.gif
ring3下实现。。。。。检测U盘插入的函数
///// 检测U盘插入c#代码
谢谢(这年头,干啥都不容易。灌水也要专业点哈~ 论坛和谐学习环境,需要你我一起来维护^_^
) ♂我是上帝♂ 发表于 2014-6-20 09:36 static/image/common/back.gif
谢谢(这年头,干啥都不容易。灌水也要专业点哈~ 论坛和谐学习环境,需要你我一起来维护^_^
)
我。。。我这算灌水么?。。。
{:7_154:} 向往青莲 发表于 2014-6-20 09:37 static/image/common/back.gif
我。。。我这算灌水么?。。。
没有啦,我就想回复谢谢。结果出来这个,我就直接粘贴,凑字数 向往青莲 发表于 2014-6-20 12:02 static/image/common/back.gif
那选我为最佳答案呗。。亲。。。╭(╯3╰)╮
{:5_106:}青莲真厉害~ 小甲鱼 发表于 2014-6-20 16:05 static/image/common/back.gif
青莲真厉害~
这个是百度查到的。。。
像这种,最好的办法是写一个文件过滤驱动(minifilter应该就能实现, 当然HOOK也可以,不过就怕不稳定,minifilter很稳定)。。。。。强大有效方便。。。
我怕楼主不懂,就没敢说。。。。。。囧。。。反正感觉ring0实现比ring3实现强多了。。。
鱼哥。。。我计算机入门都是看的你的教程入门的呢。。。。。。。。。。
C语言,C++,汇编,OD,win32汇编。。。。。。。。
{:7_148:}
页:
[1]