本帖最后由 ELOHIM 于 2017-5-30 23:11 编辑
病毒当然要清理掉。
就怕你的文件在系统盘或者到处乱放。
处理起来就费时间了。
系统还原,系统自带还原默认情况下不会还原用户文件。
只对系统文件和注册表开刀。
所以有人反应说系统还原不彻底,那么现在看来反而是好事了。
(括弧,划重点,也有删掉个人文件的情况!!)
自己的文件有固定的存放地方,做好防护就行了。
我现在想知道勒索软件里面大量使用的"DeleteFileW FindFirstFileW FindNextFileW "函数具体是怎么写的,然后对应来一个防护措施。
让他找不到就OK了。
如果知道,不妨告知一下。
————————————————————————————————
自己找了一下,但是看来实行不了了。
不知道怎么禁止这个函数,或者索引也就不能用了?
需要大量测试啊,MD!
[mw_shl_code=html,true]//遍历文件夹函数
void TraverseFolder(LPCTSTR lpPath)
{
TCHAR szFind[MAX_PATH] = {_T("\0")};
WIN32_FIND_DATA findFileData;
BOOL bRet;
_tcscpy_s(szFind, MAX_PATH, lpPath);
_tcscat_s(szFind, _T("\\*.*")); //这里一定要指明通配符,不然不会读取所有文件和目录
HANDLE hFind = ::FindFirstFile(szFind, &findFileData);
if (INVALID_HANDLE_VALUE == hFind)
{
return;
}
//遍历文件夹
while (TRUE)
{
if (findFileData.cFileName[0] != _T('.'))
{//不是当前路径或者父目录的快捷方式
_tprintf(_T("%s\\%s\n"), lpPath, findFileData.cFileName);
if (findFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{//这是一个普通目录
//设置下一个将要扫描的文件夹路径
_tcscpy_s(szFind, MAX_PATH, lpPath);
_tcscat_s(szFind, _T("\\"));
_tcscat_s(szFind, findFileData.cFileName);
///_tcscat_s(szNextDir, _T("\\*"));
//遍历该目录
TraverseFolder(szFind);
}
}
//如果是当前路径或者父目录的快捷方式,或者是普通目录,则寻找下一个目录或者文件
bRet = ::FindNextFile(hFind, &findFileData);
if (!bRet)
{//函数调用失败
//cout << "FindNextFile failed, error code: "
// << GetLastError() << endl;
break;
}
}
::FindClose(hFind);[/mw_shl_code]
微软:https://msdn.microsoft.com/en-us/library/windows/desktop/aa364418(v=vs.85).aspx
对了,创建那种畸形目录行不行?
文件夹名后面加上两个“."
去做测试了!
|