⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 funcion.cpp

📁 U盘数据加密程序 用C语言编写的 非常经典的哟
💻 CPP
字号:
///////////////////////////////////////////////////////////////////
/*
 * 项目名称:移动存储安全(演示原型)
			 Mobile Storage Security
 *
 * 作    者:南京邮电大学计算机学院 吴登荣
 *
 * 摘    要:对U盘数据加密,保护信息隐蔽,防止隐私泄露。
 *
 * 版    本:Alpha
 *
 * 完成日期:2007年2月
 *
 * E - mail:Jeffrey.nupt@gmail.com
*/
///////////////////////////////////////////////////////////////////
#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 );
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -