ça dépend si CVK passe par le mapper de Windows ou pas. si j'ai compris ce que j'ai lu sur les keylogger, ces programmes interceptent les sorties du gestionnaire de clavier de Windows qui est un programme à part entière, le pilote n'apportant que le mapping (qwerty, azerty, etc.).
Si je prends le cas des digital pen de Logitech IO et IO2 : le premier modèle était commandé par un logiciel qui passait par le gestionnaire de Windows pour dialoguer avec les applications (il était ainsi théoriquement compatible avec tous les logiciels de Windows, malheureusement, en théorie seulement). Avec un keylogger dans le pipeline, les saisies sont interceptées. Pour le nouveau modèle IO2, Logitech a fait développer un gestionnaire indépendant pour avoir de meilleures performances. Côté compatibilité, ils n'ont conservé que Word et Outlook mais les saisies ne passent plus par le gestionnaire de Windows. Avec un keylogger basic, c'est protégé.
Reste que la technologie des keylogger bougent aussi... j'ai trouvé un post pas rassurant sur le Net hier, le voici...
Many key loggers use a keyboard hook to capture keystrokes. One method of detecting them is to just look for any program that is hooking the keybaord. Simple enough.
About a year ago I stubled upon a WIN32 API call that makes this possible and wrote a keylogger using it. I won't bother to post the source for my program, instead I will give you the important bit.
The API call you need to use is:
//Attach
AttachThreadInput( MyThreadID, TargetThreadID, true);
//Detach
AttachThreadInput( MyThreadID, TargetThreadID, false);
With this you can attach to the input queue of another process.
All I do is set a timer that looks for the foreground window, get's its process ID and attach my process to it's input queue. Then I just poll for keystrokes using GetKeyboardState.
I don't understand why M$ creates API calls like these but I sure have fun with them.
Anyway, that should be enough to get you started.
-Pertinax
En fait, c'est la possibilité d'avoir un keylogger ciblant spécifiquement une application. Il devrait par conséquent passer au travers des détecteurs... Bon mais n'étant pas développeur, j'élucubre...
