begin process at 2010 02 09 22:16:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Driver

 > 

Comment developper un keylogger en C?


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

Comment developper un keylogger en C?

dimanche 23 décembre 2007 à 22:42:56 | Comment developper un keylogger en C?

Aumenov

Salut,

Je souhaite développer un keylogger en C. J'ai trouvé sur ce site un code qui permet de le faire :
http://www.cppfrance.com/infomsg_COMPILATION-DRIVER-WINDOWS_918558.aspx

Mais je souhaite plutot, pour une initiation,  comprendre comment programmer un keylogger: quelles sont les différentes étapes en détails. Connaissez vous des sites qui en parlent?

Merci beaucoup

Bonnes fetes


dimanche 23 décembre 2007 à 23:21:51 | Re : Comment developper un keylogger en C?

vicenzo

Membre Club
des dizaines de sources de keylogger ont été soumis sur cppfrance. Il n'y a que l'embarras du choix !

Fais une recherche par mot clé 'keylogger'..


lundi 24 décembre 2007 à 00:52:35 | Re : Comment developper un keylogger en C?

Aumenov

J'ai commencé la programmation et je me trouve confronté à un problème lors de la compilation. Je vous mets ci-dessous le code de la fonction où se produit l'erreur.
KTIMER est défini dans la bibliothèque ntddk.h. Je fais l'inclusion de cette dernière mais j'ai le message d'erreur suivant:

c:\monkeylogger\keyslogger.c(21) : error C2275: 'KTIMER' : illegal use of this t
ype as an expression
c:\monkeylogger\keyslogger.c(21) : error C2146: syntax error : missing ';' befor
e identifier 'kTimer'
c:\monkeylogger\keyslogger.c(21) : error C2065: 'kTimer' : undeclared identifier

c:\monkeylogger\keyslogger.c(22) : error C2275: 'LARGE_INTEGER' : illegal use of
 this type as an expression
c:\monkeylogger\keyslogger.c(22) : error C2146: syntax error : missing ';' befor
e identifier 'timeout'
c:\monkeylogger\keyslogger.c(22) : error C2065: 'timeout' : undeclared identifie
r
c:\monkeylogger\keyslogger.c(23) : error C2224: left of '.QuadPart' must have st


#include <ntddk.h>
#include "keysLogger.h"



int numPendingIrps = 0;

//The Unload routine performs any operations that are necessary before the system unloads the driver
VOID Unload( IN PDRIVER_OBJECT pDriverObject){
    
    // Get the pointer to the device extension.
  PDEVICE_EXTENSION pKeyboardDeviceExtension = (PDEVICE_EXTENSION) pDriverObject->DeviceObject->DeviceExtension;
  DbgPrint("Driver Unload Called...\n");

    // Detach from the device underneath that we're hooked to.
      IoDetachDevice(pKeyboardDeviceExtension->pKeyboardDevice);
    DbgPrint("Keyboard hook detached from device...\n");

    // Create a timer.
  KTIMER  kTimer;
  LARGE_INTEGER timeout;
  timeout.QuadPart = 1000000;// .1 s
  KeInitializeTimer(&kTimer);
    
  while(numPendingIrps > 0){
   // Set the timer.
   //les deux fonctions qui suivent prennent en paramètre bel et bien un pointeur sur un KTIMER
   //donc je ne comprend pas pourquoi c'est marqué "illegal use of .... as an expression"!!!!!!!
   KeSetTimer(&kTimer,timeout,NULL);
   KeWaitForSingleObject(&kTimer,Executive,KernelMode,FALSE,NULL);
  }

    // Set our key logger worker thread to terminate.
  pKeyboardDeviceExtension->bThreadTerminate = 1;
    // Wake up the thread if its blocked & WaitForXXX after this call.
  KeReleaseSemaphore(&pKeyboardDeviceExtension->semQueue,0,1,TRUE);

    // Wait until the worker thread terminates.
  DbgPrint("Waiting for key logger thread to terminate...\n");
  KeWaitForSingleObject(pKeyboardDeviceExtension->pThreadObj,Executive,KernelMode,FALSE,NULL);
  DbgPrint("Key logger thread terminated\n");
    // Close the log file.
  ZwClose(pKeyboardDeviceExtension->hLogFile);

    // Delete the device.
  IoDeleteDevice(pDriverObject->DeviceObject);
  DbgPrint("Tagged IRPs dead...Terminating...\n");
  return;
}




Est ce que vous avez une idée  de comment ce problème peut être résolu?

Merci pour votre aide!
lundi 24 décembre 2007 à 01:02:34 | Re : Comment developper un keylogger en C?

SAKingdom

Membre Club
Si tu compiles en C, les variables doivent être déclarées en début de fonction.

C++ (@++)

lundi 24 décembre 2007 à 01:41:29 | Re : Comment developper un keylogger en C?

Aumenov

Effectivement, c'est ça le problème! Est ce que tu m'expliquer pourquoi? merci
lundi 24 décembre 2007 à 01:55:38 | Re : Comment developper un keylogger en C?

SAKingdom

Membre Club
Non je l'ignore.
En fait, ce n'est pas obligatoirement en début de fonction, ce peut être aussi au début d'un bloque de code:

if (x == 1) {
    int i = 5; // <- VALIDE (utilisable seulement dans ce if)
    printf("%d\n", i);
}

while (x == 1) {
    int i = 5; // <- VALIDE (utilisable seulement dans ce while)
    printf("%d\n", i);
}

etc. etc. etc.

Une fois le code compilé, ça reviendra au même que de l'avoir déclaré en début de fonction. Cependant, la porté de la variable sera limité à son bloque de code.

C++ (@++)

lundi 24 décembre 2007 à 07:33:18 | Re : Comment developper un keylogger en C?

vicenzo

Membre Club
Réponse acceptée !
En C90 -> déclaration obligatoire des variables en début de bloc
En C99 -> déclaration des variables n'importe ou dans les blocs pour augmenter la compatibilité avec le C++

Les compilateurs C de Microsoft (VC++, VS200X) sont quasiment les seuls à ne pas implémenter du tout le C99.

lundi 24 décembre 2007 à 10:14:22 | Re : Comment developper un keylogger en C?

BruNews

Administrateur CodeS-SourceS
Espérons que ça dure, ce C99 est une daube de nivellement par le bas.

ciao...
BruNews, MVP VC++
lundi 24 décembre 2007 à 11:54:00 | Re : Comment developper un keylogger en C?

vicenzo

Membre Club
Entièrement d'accord avec toi...

La révision 99 essaie juste de gommer les disparités en C et C++ et comme tu le précises nivelle vers le bas (tableaux dynamiques, ...)
La seule chose qui pourrait m'intéresser ce sont les macro à argument variables...

Noeux Joel !




lundi 24 décembre 2007 à 16:05:25 | Re : Comment developper un keylogger en C?

SAKingdom

Membre Club
vicenzo >> Oui c'est sûr mais...
Pourquoi avec un compilateur non C99, il faut obligatoirement déclarer ses variables en début de bloc ? C'est une raison esthétique, technique ?
Pour ma part c'est clair que déclarer une variable au début d'un bloc est bien plus lisible que de la déclarer au milieux de nul part mais y a t-il une autre raison ?

C++ (@++)


1 2

Cette discussion est classée dans : souhaite, keylogger, developper


Répondre à ce message

Sujets en rapport avec ce message

keylogger [ par error ] donc voila je voudrait savoir s'y il y a moyen de faire un keylloger/prog qui eregistre les tuche taper au clavier en c++merci ++ Integrer une DLL au projet [ par Mike ] Salut a tousJe souhaite integrer la DLL "iphlpapi.dll" (windows/system32) pour utiliser la fonction "GetIpAddrTable", je souhaite pour le moment simpl Port serie virtuel [ par irokoy ] Je souhaite réaliser un driver de port serie virtuel.J'ai une application qui envoie des donnees sur le port serie et je souhaite rediriger ces donnes Chemin d'un projet... [ par neub ] Salut tt le monde et bonnes fetes de fin d'anneeVoici ma question urgente (mon projet se termine en se moment):Je souhaite recuperer le chemin de mon allocation dynamique [ par hobbes ] Bonjour,Mon probleme est que je ne connais pas a l avance la taille du tableau que je souhaite cree. Je pensais alors :creer un tab de maniere dynamiq Keylogger [ par glipper ] Bonjour,J'aimerais juste faire un petit keylogger (rassurez vous ce n'est pas mechant, c'est juste pour moi), mais j'ai quelques problemes. Voici la p Keylogger, encore... [ par sebleboss2002 ] Bonjour à tous !J'ai vu que la question à déjà été soulevée sur le forum, mais je n'ai pas trouvé mon bonheur... Ma question est concrète : Je voudrai listbox et OnInitDialog [ par raspa ] Bien le bonjour, j'ai un programme en visual c++ 6 avec mfc. Via une fenetre, elle m'ouvre une autre fenetre et dans cette dernier se trove une listeb prob avec nom de fichier. [ par kach23 ] bonjour, je debute etje réalise une acquisition de mesure avec builder.je souhaite que le nom du fichier ouvert a chaque acquisition soit different.vo lecture du port USB [ par peb69 ] Bonjour, je souhaite lire les données sur un port USB. En faite j'ai crée une interface qui se branche sur le port USB, et je souhaite lire les inform


Nos sponsors


Sondage...

Comparez les prix

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

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