移动存储安全

671阅读 1评论2008-07-28 copyking
分类:服务器与存储


当你的U盘,移动硬盘遗失了,被盗了,或者是遗忘在公共场所,里面的资料就会完全被别人窥探,如果涉及一些隐私,机密,那后果是很严重的。本课题就是在这样一个情况下产生的。这里剖析的只是一个最初的演示原型,详细设计,以及一些细节可以参考源代码。源代码在WinXP,VC6.0编译通过。  1、访问注册表读取计算机上的移动存储设备
  在注册表
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesDiskEnum   下面可以看到计算机当前的状态,这里可以看到所有的存储设备的情况,包括计算机的硬盘,通过情况下,名称为0的是计算机硬盘,所以在列出的选择设备时,会把名称为0的屏蔽,不然太危险,一旦造成系统的破坏,后果会很麻烦。对注册表的读写:
HKEY hkey;
char sz[256];
DWORD dwtype,sl = 256;
for(int i=1;i<8;i++)
{
  if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SYSTEM\CurrentControlSet\Services\Disk\Enum",
    NULL, KEY_ALL_ACCESS, &hkey)==ERROR_SUCCESS)
  {
    CString id;
    id.Format("%d",i);
    if(RegQueryValueEx(hkey,id,NULL,&dwtype,(LPBYTE)sz,&sl)==ERROR_SUCCESS)
    {
      CString str=(CString)sz;
      m_select.AddString(sz);
    }
  }
}
RegCloseKey(hkey);2、对磁盘的扇区的操作   Windows 操作系统在很大程度上采取了访问安全保护机制(例如,在Windows操作系统下不能直接访问物理内存、不能使用各种DOS、BIOS中断等等),其实Windows在采取“实保护”措施的同时也提供了另外的一种有别于在DOS下访问硬件设备的方法,即把所有的硬件设备全部看做“文件”,并允许按照对文件的读写方式来对其进行数据存取访问。对于磁盘扇区的读写,可以通过C++的CreateFile()函数来实现。由MSDN可查询到该函数原型:
上一篇:分层数据保护 不可不知的IT秘密
下一篇:你的数据真的安全吗?解读RAID技术故障

文章评论