MFC中释放资源
作者:admin 发布于:2012-7-5 12:57 Thursday 分类:Windows
/*********修复MSCONFIG.EXE*********/ //Sleep(1500); StateLabelWnd->SetWindowText("正在修复Msconfig.exe..."); //获取System32所在路径 TCHAR szBuffer[MAX_PATH]; GetSystemDirectory(szBuffer,MAX_PATH); CString systemFolder; systemFolder.Format("%s",szBuffer); systemFolder += "\\dllcache\\msconfig.exe"; CFileFind finder; bool isFinded = finder.FindFile(systemFolder); CFile file; if(isFinded) { //删除被感染的MSCONFIG.EXE StateLabelWnd->SetWindowText("正在修复Msconfig.exe...正在删除被修改的Msconfig.exe..."); file.Remove(systemFolder); } //加载资源文件中正常的MSCONFIG.EXE HMODULE hModule=GetModuleHandle(NULL); HRSRC hRes = FindResource(hModule,MAKEINTRESOURCE(IDR_MSCONFIG),"EXE"); if(hRes == NULL) { FreeResource(hRes); } else { HGLOBAL hglobal = LoadResource(hModule,hRes); if(hglobal == NULL) { FreeResource(hglobal); } else { //释放MSCONFIG.EXE文件 StateLabelWnd->SetWindowText("正在修复Msconfig.exe...正在释放原始的Msconfig.exe..."); LPBYTE lpByte=(LPBYTE)LockResource(hglobal); DWORD dwRcSize=SizeofResource(hModule,hRes); file.Open(systemFolder,CFile::modeCreate | CFile::modeWrite); file.Write(lpByte,dwRcSize); file.Close(); } } /************结束修复MSCONFIG.EXE*************/