天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 66|回复: 0

vc++实现U盘介质加密解密保障存储安全

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
#include "StdAfx.h"
#include "Function.h"

CString GetDiskNumber(CString name)
{
        HKEY hkey;
    char sz[256];
    DWORD dwtype,sl = 256;
        int number=0;
               
        // 确定选择的磁盘
        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;
                                if(str.Compare(name)==0)
                                {
                                        number=i;
                                        break;
                                }
                        }
                }
        }
        CString driver=".//PHYSICALDRIVE";
        CString num;
        num.Format("%d",number);
        driver+=num;
        return driver;
}

int ReadDisk(CString driver,unsigned char *Buf,long addr)
{
        HANDLE hDevice;
        BOOL bResult;
        DWORD bytesread;

        hDevice=CreateFile(driver,GENERIC_READ|GENERIC_WRITE,
                FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);

        if(hDevice==INVALID_HANDLE_VALUE)
        {   
                AfxMessageBox("Error!");
                return 0;
        }

        if(addr!=0)
        {
                SetFilePointer(hDevice,512*addr,NULL,NULL);
        }
       
        bResult=ReadFile(hDevice,Buf,512,&bytesread,NULL);

        if((bResult==FALSE)||(bytesread<512))   
        {   
                AfxMessageBox("Error!");
                return 0;
        }

        CloseHandle(hDevice);

        return 1;
}

int WriteDisk(CString driver,unsigned char *Buf,long addr)
{
        HANDLE hDevice;
        BOOL bResult;
        DWORD bytesread;

        hDevice=CreateFile(driver,GENERIC_READ|GENERIC_WRITE,
                FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);

        if(hDevice==INVALID_HANDLE_VALUE)
        {   
                AfxMessageBox("Error!");
                return 0;
        }

        if(addr!=0)
        {
                SetFilePointer(hDevice,512*addr,NULL,NULL);
        }
       
        bResult=WriteFile(hDevice,Buf,512,&bytesread,NULL);

        if((bResult==FALSE)||(bytesread<512))   
        {   
                AfxMessageBox("Error!");
                return 0;
        }

        CloseHandle(hDevice);

        return 1;
}

void PopupUSBDevice()
{
  char strSystemDirectory[256];
  GetSystemDirectory( strSystemDirectory, 256 );

  CString strTemp = strSystemDirectory;
  strTemp += "//rundll32.exe shell32.dll,Control_RunDLL hotplug.dll";

  WinExec( strTemp, SW_SHOW );
}

 

 

 

 

vc++实现U盘介质加密解密保障存储安全
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 12:25 , Processed in 0.171614 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表