U盘病毒的原理主要是autorun.inf文件
autorun.inf是我们电脑使用中比较常见的文件之一 ,其作用是允许在双击磁盘时自动运行指定的某个文件。但是近几年出现了用autorun.inf文件传播木马或病毒,它通过使用者的误操作让目标程序执行,达到侵入电脑的目的,带来了很大的负面影响。
今天教大家用MFC做一个免疫器
界面:
有一个combo box控件,为它添加一个变量
CComboBox m_CbDrive;
两个变量
wchar_t *AUTORUN =L"antorun.inf";
wchar_t *IMMUNITY= L"\\Immunity...\\";
初始化combo box控件函数:
void CImmunityUDlg::InitComboDrive()
{
TCHAR szDriveStr[MAXBYTE] = {
0 };
TCHAR* pTmp = NULL;
SetDlgItemText(IDC_COMBO_DRIVE,L"请选择免疫的磁盘盘符");
GetLogicalDriveStrings(MAXBYTE,szDriveStr);
pTmp = szDriveStr;
while (*pTmp)
{
m_CbDrive.AddString(pTmp);
pTmp += 4;
}
}
在OnInitDialog()中调用.
免疫按钮的处理事件:
void CImmunityUDlg::OnBtnImmunity()
{
TCHAR szPath[MAX_PATH] = {
0 };
GetDlgItemText(IDC_COMBO_DRIVE, szPath,MAX_PATH);
wcscat(szPath, AUTORUN);
BOOL bRet = CreateDirectory(szPath, NULL);
if (!bRet)
{
AfxMessageBox(_T("无法免疫该盘符!可能已经免疫,或者该盘符为不可读写状态!"));
return;
}
wcscat(szPath, IMMUNITY);
bRet= CreateDirectory(szPath, NULL);
if (!bRet)
{
AfxMessageBox(_T("无法免疫该盘符!可能已经免疫,或者该盘符为不可读写状态!"));
}
}
取消免疫按钮的处理事件:
void CImmunityUDlg::OnBtnCancel()
{
TCHAR szPath[MAX_PATH] = {
0 };
GetDlgItemText(IDC_COMBO_DRIVE, szPath, MAX_PATH);
wcscat(szPath, AUTORUN);
wcscat(szPath, IMMUNITY);
RemoveDirectory(szPath);
ZeroMemory(szPath, MAX_PATH);
GetDlgItemText(IDC_COMBO_DRIVE, szPath, MAX_PATH);
wcscat(szPath, AUTORUN);
wcscat(szPath, IMMUNITY);
}
一切都弄好了,让程序run起来,把这个程序放在桌面上
点击免疫按钮:会在桌面上生成一个文件夹
点进去:
删除autorun.inf试试:
好了,这个项目就完成了