begin process at 2010 02 10 00:40:51
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Api Windows

 > ENVOIT MAIL MASM32

ENVOIT MAIL MASM32


 Information sur la source

Note :
Aucune note
Catégorie :Api Windows Niveau :Débutant Date de création :31/12/2002 Date de mise à jour :12/12/2004 17:17:46 Vu :6 688

Auteur : Supden2000

Ecrire un message privé
Commentaire sur cette source (19)
Ajouter un commentaire et/ou une note

 Description

Permet d'envoyer un mail grace a winsock

Source

  • ;MASM32
  • .486
  • .model flat,stdcall
  • option casemap:none
  • include \masm32\include\windows.inc
  • include \masm32\include\masm32.inc
  • include \masm32\include\wsock32.inc
  • include \masm32\include\user32.inc
  • include \masm32\include\kernel32.inc
  • includelib \masm32\lib\user32.lib
  • includelib \masm32\lib\kernel32.lib
  • includelib \masm32\lib\wsock32.lib
  • includelib \masm32\lib\masm32.lib
  • Mys PROTO :DWORD
  • .DATA
  • SMTP db "195.238.3.128",0 ;IP du srv smtp.infonie.be
  • HELO db "HELO smtp.infonie.be",13 ,10 ,0
  • MAIL_FROM db "MAIL FROM:dequi@cavien.fr",13 ,10 ,0
  • RCPT_TO db "RCPT TO:personne@quituvxenvoyer.com",13 ,10 ,0
  • DONNEES db "DATA",13 ,10 ,0
  • TEXTE db "Hello world !",13 ,10 ,13 ,10 ,0
  • FIN_DONNEES db ".",13 ,10 ,0
  • FERME db "QUIT",13 ,10 ,0 ;fini la connection
  • ;smtp
  • wsadata WSADATA <> ;pour la structure du socket
  • sin sockaddr_in <>
  • Port dd 25 ;port smtp
  • .DATA?
  • sock dd ? ;pour la structure du socket
  • buf db 255 dup (?) ;buffer pour le MessageBox
  • .CODE
  • start:
  • invoke WSAStartup,101h,addr wsadata ;initialise le socket
  • invoke socket,AF_INET,SOCK_STREAM,IPPROTO_IP
  • mov sock,eax
  • mov sin.sin_family,AF_INET ;famille de socket
  • invoke htons,Port ;port 25
  • mov sin.sin_port,ax
  • invoke inet_addr, addr SMTP ;ip du smtp
  • mov sin.sin_addr, eax
  • invoke connect, sock, addr sin ,sizeof sin ;on se connecte
  • invoke recv, sock, addr buf, sizeof buf, 0 ;et affiche la reponse
  • ; HELO SERVER
  • invoke Mys, addr HELO ;envoit HELO smtp.infonie.be
  • invoke recv, sock, addr buf, sizeof buf, 0
  • invoke MessageBox,0,addr buf, addr HELO, MB_OK
  • ; MAIL TO:
  • invoke Mys, addr MAIL_FROM ;envoit MAIL FROM:
  • invoke recv, sock, addr buf, sizeof buf, 0
  • invoke MessageBox,0,addr buf, addr MAIL_FROM, MB_OK
  • ; RCPT TO:
  • invoke Mys, addr RCPT_TO ;envoit RCPT TO:
  • invoke recv, sock, addr buf, sizeof buf, 0
  • invoke MessageBox,0,addr buf, addr RCPT_TO, MB_OK
  • ; DATA
  • invoke Mys, addr DONNEES ;envoit DATA
  • invoke recv, sock, addr buf, sizeof buf, 0
  • invoke MessageBox,0,addr buf, addr DONNEES, MB_OK
  • invoke Mys, addr TEXTE ;envoit le text
  • ; DATA
  • invoke Mys, addr FIN_DONNEES ;envoit .
  • invoke recv, sock, addr buf, sizeof buf, 0
  • invoke MessageBox,0,addr buf, addr FIN_DONNEES, MB_OK
  • ; DATA
  • invoke Mys, addr FERME ;envoit QUIT
  • invoke recv, sock, addr buf, sizeof buf, 0
  • invoke MessageBox,0,addr buf, addr FERME, MB_OK
  • invoke closesocket,sock ;ferme le socket et quit
  • invoke WSACleanup
  • invoke ExitProcess,eax
  • ;---------------------------------------
  • Mys proc SendStr : DWORD
  • push edi
  • mov edi, SendStr
  • .WHILE TRUE
  • .BREAK .IF (byte ptr [edi] == 0 )
  • invoke send, sock, edi, 1, 0
  • inc edi
  • .ENDW
  • pop edi
  • ret
  • Mys endp
  • END start
;MASM32

.486
.model flat,stdcall
option casemap:none


include \masm32\include\windows.inc
include \masm32\include\masm32.inc
include \masm32\include\wsock32.inc                                              
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\wsock32.lib
includelib \masm32\lib\masm32.lib 

Mys PROTO :DWORD

.DATA 

SMTP db "195.238.3.128",0               ;IP du srv smtp.infonie.be

HELO db "HELO smtp.infonie.be",13 ,10 ,0
MAIL_FROM db "MAIL FROM:dequi@cavien.fr",13 ,10 ,0  
RCPT_TO db "RCPT TO:personne@quituvxenvoyer.com",13 ,10 ,0  
DONNEES db "DATA",13 ,10 ,0                       
TEXTE db "Hello world !",13 ,10 ,13 ,10 ,0        
FIN_DONNEES db ".",13 ,10 ,0                      

FERME db "QUIT",13 ,10 ,0                 ;fini  la connection 
;smtp

wsadata WSADATA <>                        ;pour la structure du socket
sin sockaddr_in <>
Port dd 25                                        ;port smtp

.DATA?

sock dd ?                                         ;pour la structure du socket
buf db 255 dup (?)                            ;buffer pour le MessageBox



.CODE
start:    

invoke WSAStartup,101h,addr wsadata	          ;initialise le socket			
invoke socket,AF_INET,SOCK_STREAM,IPPROTO_IP                
mov sock,eax
mov sin.sin_family,AF_INET                   ;famille de socket
invoke htons,Port                                 ;port 25
mov sin.sin_port,ax        
invoke inet_addr, addr SMTP                 ;ip du smtp
mov sin.sin_addr, eax   

invoke connect, sock, addr sin ,sizeof sin        ;on se connecte
invoke recv, sock, addr buf, sizeof buf, 0        ;et affiche la reponse

;         HELO SERVER     
invoke Mys, addr HELO                             ;envoit HELO smtp.infonie.be
invoke recv, sock, addr buf, sizeof buf, 0
invoke MessageBox,0,addr buf, addr HELO, MB_OK

;         MAIL TO:
invoke Mys, addr MAIL_FROM                        ;envoit MAIL FROM: 
invoke recv, sock, addr buf, sizeof buf, 0
invoke MessageBox,0,addr buf, addr MAIL_FROM, MB_OK

;         RCPT TO:
invoke Mys, addr RCPT_TO                          ;envoit RCPT TO: 
invoke recv, sock, addr buf, sizeof buf, 0
invoke MessageBox,0,addr buf, addr RCPT_TO, MB_OK

;        DATA
invoke Mys, addr DONNEES                          ;envoit DATA 
invoke recv, sock, addr buf, sizeof buf, 0
invoke MessageBox,0,addr buf, addr DONNEES, MB_OK

invoke Mys, addr TEXTE                            ;envoit le text 

;        DATA
invoke Mys, addr FIN_DONNEES                      ;envoit  .
invoke recv, sock, addr buf, sizeof buf, 0
invoke MessageBox,0,addr buf, addr FIN_DONNEES, MB_OK


;        DATA
invoke Mys, addr FERME                            ;envoit QUIT 
invoke recv, sock, addr buf, sizeof buf, 0
invoke MessageBox,0,addr buf, addr FERME, MB_OK


invoke closesocket,sock                           ;ferme le socket et quit
invoke WSACleanup
invoke ExitProcess,eax

;---------------------------------------

Mys proc SendStr : DWORD                          

push edi
mov edi, SendStr
.WHILE TRUE
.BREAK .IF (byte ptr [edi] == 0 )
invoke send, sock, edi, 1, 0                     
inc edi                                                     
.ENDW  
pop edi
ret
Mys endp

END start  

 Conclusion

visite http://www.passionpc.net


 Historique

12 décembre 2004 17:17:46 :
ajout de WSACleanup WSACleanup permet à windows de "nettoyer" la RAM que l'on prenait avec winsock.

 Sources du même auteur

Source avec Zip AFFICHE LE CODE ASCII D'UNE TOUCHE

 Sources de la même categorie

Source avec Zip OBTENIR LA VERSION DU SYSTEME,SON ENVIRONNEMENT,LE SERVICE P... par ToutEnMasm
Source avec Zip TÉLÉCHARGER UN FICHIER DEPUIS UNE URL ET/OU ORGANISER DES CL... par ToutEnMasm
SCREENSHOT CAPTURE D'ECRAN par VBFRANCE
Source avec Zip Source avec une capture PROGRAMME DE VISUALISATION ET D'ANALYSE SPECTRALE DE FICHIER... par Nasman
Source avec Zip CRÉATION DE GRAPHIQUES AVEC LES API WINDOWS par Nasman

Commentaires et avis

Commentaire de Cendra le 31/12/2002 16:55:23

fort interresant , je vais tester de ce pas ;)

Commentaire de gblade le 31/12/2002 22:11:56

je crois que tu as oublié d'appeler WSACleanup() en fin d'utilisation des sockets

Commentaire de Stormy le 31/12/2002 23:30:06

Source disponible à cette adresse:
http://www.danil.dp.ua/troyan1.htm Néanmoins très intéressante pour un exemple simple de wsock32. Au mieux, tu nous débarrasse des pénibles commentaires en russe. Merci @+ N'oublie pas la clôture définitive du socket par WSACleanup

Commentaire de Stormy le 31/12/2002 23:32:51

par contre quelqu'un pourrait il me dire à quoi correspond le florilège de 13,10,0 après chaques allocations mémoires OFFSET. Merci

Commentaire de gblade le 01/01/2003 00:34:22

le 13,10,0 doit correspondre à "
" mais pour un message MessageBox c inutil (sauf le 0 terminal évidemment ;)

Commentaire de Cendra le 01/01/2003 04:07:59

13,10 sert a dire que c'est une ligne suivante
c'est un peu l'equivalent de la touche "entrée"
par contre si vous pensez envoyer des mails anonymes avec ca, c'est raté, le serveur SMTP ajoute votre addresse IP lors de l'envoie

Commentaire de gblade le 01/01/2003 08:03:51

cendra : si on a un forfait, ces mails sont bien anonymes car à chaque connection notre IP change donc...

Commentaire de Xavier092 le 01/01/2003 10:33:30

Désolé gblade, mais le provider garde en memoire, pour chacune de vos connection :  votre nom, l'heure de début et de fin de connection et l'adresse IP. Donc, on peut toujours savoir qui utilisait une adresse IP à l'heure de l'envoi du mail, donc il n'est plus anonyme !!!

Commentaire de gblade le 01/01/2003 12:01:01

je savais pas ^^
mais plus concrètement, comment fait-on pour savoir qui avait une telle IP à un moment précis ?

Commentaire de gblade le 01/01/2003 12:01:12

je savais pas ^^
mais plus concrètement, comment fait-on pour savoir qui avait une telle IP à un moment précis ?

Commentaire de gblade le 01/01/2003 12:01:25

je savais pas ^^
mais plus concrètement, comment fait-on pour savoir qui avait une telle IP à un moment précis ?

Commentaire de Stormy le 01/01/2003 21:59:42

c toute une procédure astreinte à une limite imposée par souci d'anonymat. En d'autres termes, ton provider ne donne pas à n'importe qui le log des connexions. Par contre, la Justice elle a le bras plus long. Tu capte? Merci por l'explication du 13,10,0 @+

Commentaire de gblade le 02/01/2003 17:32:18

lol qui t'a dit que j'essaierais de faire quoi que ce soit qui puisse m'être reproché par les autorités ? ;p c'était juste une question

Commentaire de Stormy le 02/01/2003 21:49:00

C'était juste une réponse ;p

Commentaire de Cendra le 04/01/2003 01:08:16

en plus moi j'ai une ip fixe , alors c'est du rapide :p

Commentaire de flagyg le 07/01/2003 22:23:33

Xavier092 : tient,je savais pas ça mais alors si maintenant tu veut retrouver mon ip comment tu fais? DEUXIEME QUESTION : si je me met derrière un proxy anonyme,on peut toujours la connaitre?
avec les adresses ip,g jamais rien compris....

Commentaire de EBArtSoft le 22/02/2003 23:52:29 administrateur CS

Pour faire un vrais mail anonyme c'est on ne peut plus simple et sans danger ... tu installe simplement un pipe sur un pc d'un pote ou sur un serveur proxy (le pipe sera un programme qui ecoute sur un port et renvoi les donnees sur un autre) tu te branche sur ce pipe tu lui demande une redirection sur l'hote et t'envoi les donnees et la t'es tranquille l'adresse ip sera soit le serveur proxy soit l'ip du provider du mec et toi personne ne pourra savoir que tu t'es connecté...

Et le top du top c'est de placer plusieurs pipe sur plusieurs machines et de les redirigé les une sur les autre de se connecter a l'hote !

De toute maniere il y autant de facon de tricher que de trouver un tricheur

Part contre je vous conseil pas de vous connecter a partir d'un dial up sur un serveur SMTP car votre IP irait directement s'enregistrer aupres de l'association Mail abuse et tout autre connexion echoura

Et n'oublier pas que votre IP c'est comme un n° de telepone le provider paye pour l'utilisation du n° et par consequant il garde une trace de qui la possede, quand et pendant combien de temps donc fixe ou temporaire garder la bien precieusement !

sue ce b@nne prog

Commentaire de ZitriX le 18/04/2004 16:46:41

hello all g besoin d'aide je suis un noob et g un chtit pb...
a chaque fois que j'essaie de compiler une source sa me met ca:

FATAL ERROR CVT 1101: cannot open rsrc.res for reading ...

et je sait pas se qu'il faut faire la , merci d'avance.

Commentaire de Supden2000 le 25/04/2004 12:30:08

beh
Je n'ai jamais eu cette erreure!
Je te conseil de retélécharger masm32  et de le réinstaler.
pour le télécharger http://www.movsd.com/masmdl.htm.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales