[HOOK CLAVIER] FICHIER TEXTE AVEC GESTION DES DEAD KEYS [DEV-C++ 4.9.8.10]

cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 - 31 juil. 2004 à 13:36
cs_bicoun Messages postés 2 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 30 juin 2017 - 30 juin 2017 à 18:25
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/25013-hook-clavier-fichier-texte-avec-gestion-des-dead-keys-dev-c-4-9-8-10

cs_bicoun Messages postés 2 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 30 juin 2017
30 juin 2017 à 18:25
Salut. Gros déterrage ;) mais le sujet m’intéresse et j'ai du mal à arriver à avoir une solution sur ce sujet qui fonctionne à 100%. J'ai passé une bonne grosse journée a consulter les exemples dans les forums, a essayer de comprendre sur msdn microsoft en vain.
Cet exemple est le meilleur que j'ai consulté et testé (et aussi le plus clair, bravo).
C'est un des rares qui distingue les majuscules des minuscules.
Il a un défaut tout de même, c'est quand on tape un chiffre sur le clavier principal (pas le pavé numérique), et bien on obtient les caractères &é"'( etc... meme si on appuie bien sur SHIFT ou si CAPS_ON .
Quelqu'un aurait il un avis voire une solution?
Utilisateur anonyme
7 sept. 2009 à 15:19
serieusement arretez de demander comment compiler un code source de virus sans savoir coder, deplus il est detecté par quasiment toutes les heuristiques, si vous voulez le rendre indetectable aucun programmeur ne va coder à votre place, mais vont seulement partager leur connaissances.
Le fait de ne pas vous dire comment compiler sans erreur ou même de faire des erreurs dans un code de virus est une sorte de protection anti kiddies !

Pour partager mes connaissances :
une bonne façon de rendre indetectable un virus est de cacher toutes ses fonctions de sa table d'importation en codant dynamiquement et non statiquement. Si vous declarez ou appelez directement MapVirtualKey par exemple, et bien elle sera visible par n'importe quel antivirus, or si vous employez la fonction GetProcAddress vous recuperez l'adresse de la fonction pendant l'execution ce qui rend le virus indetectable par les heuristiques statiques, néanmoins afin de cacher totalement le nom de la fonction vous pouvez procéder à des modifications de chaines. par exemple "MapVirtualKey" est pareil que char buffer[]="MapV"; strcat(buffer,"irtualKey");

utilisation de GetProcAddress : TYPE (TypeDAppel *NotreNomChoisiDeFonction) (TYPE , ...) = ( TYPE (TypeDAppel *) (TYPE , ...) ) GetProcAddress(GetModuleHandle("NomDeLaDLLDImportation"),BufferNomDeFonction);

voilà en espérant ne pas avoir fait d'erreurs.
shuty Messages postés 47 Date d'inscription jeudi 20 avril 2006 Statut Membre Dernière intervention 6 février 2015
6 sept. 2009 à 15:25
Salut, comment faites vous pour le compilé car moi quand je lance dev cpp des erreur apparaissent alors que je suis bien les instruction du index.html ! Help me !?
cs_CharlesMartel Messages postés 2 Date d'inscription mercredi 3 juin 2009 Statut Membre Dernière intervention 3 juin 2009
3 juin 2009 à 15:06
Pas mal cette source.

Par contre je sais si ça vient de moi ou pas mais quand on change le chemin du log par un chemin relatif, genre "log.txt" ou "./log.txt" ça ne marche plus, même en utilisant les fonctions fopen et fputs à la place de celles présentent dans l'api windows.
Utilisateur anonyme
26 févr. 2009 à 21:34
Et une bonne réponse ! même si je ne comprend toujours pas comment l'heuristique fonctionne ... :/ je change la fonction en ascii je modifi la structure etc ... rien y fait sauf si jaugmente la taille du fichier avec des bytes nuls il doit avoir une règle du style : If (Toascii & < 200 ko ) printf(" malware/gen ");
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 févr. 2009 à 20:09
Simple, vire tous ces "antivirus" qui ne servent à rien d'autre qu'à justifier leur existence par des messages à la con.
Quand on ne va pas faire des cochoncetés sur grossecoche.com, on n'a pas besoin d'antivirus et le système tournera nettemment mieux.
Utilisateur anonyme
26 févr. 2009 à 19:58
Avira en heuristique me l'analyse comme un malware generic; apperement ToAscii et MapVirtualKey en sont la cause ... une idée pour remedier au problème ?
mario2006 Messages postés 3 Date d'inscription dimanche 15 janvier 2006 Statut Membre Dernière intervention 19 février 2009
15 mars 2007 à 02:33
Ce qui m'inquiéte c'est cette fameuse librairie libhkb.a
D'ou vient elle et que contient-elle? Et je ne vois pas ce qu'elle apporte au code.
Sinon pour la reconnaisance de la dll en tant que virus (trojan d'ailleurs..) en commentant quelques une des lignes du code qui ne son pas indispensable (celles avec les VK_TRUC) c'est bon.
Leptis Messages postés 17 Date d'inscription mardi 27 septembre 2005 Statut Membre Dernière intervention 26 juillet 2007
28 févr. 2007 à 02:38
Quelqu'un pourait il me dire quelque est la fonction a appliquer pour faire passer les lettre contenus dans la vlariable texte dans un string, ou un tableau de char affichable par un printf()
Merci d'avance !!
Utilisateur anonyme
30 août 2006 à 14:50
LooO0O00L la vie est trés comique:
BeLZeL ton keylogger est détecté par les anti-virus^^ enfin le mien aussitot compilé la DLL AVG la supprime^^
BeLZeL Messages postés 110 Date d'inscription mardi 10 octobre 2000 Statut Membre Dernière intervention 20 décembre 2005
24 mai 2006 à 20:53
lol, je connaissais pas la combinaison altgr + é puis a pour former ã ;)
Effectivement, pour les deadkey, je crois que j'ai juste géré les '^'

Si vous faites des mises à jour de ce code, n'hésitez pas à indiquer l'url ici, si vous l'avez posté sur CPPFrance. Moi ca m'intéresse en tout ca.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 mai 2006 à 17:21
Mets un cast strlen((const char*) texte)
un pointeur peut toujours être casté vers un autre type car ce sont tous de simples adresses 32 bits, par contre à toi de savoir si c'est cohérent sinon fera badaboum à l'exécution.
johanb Messages postés 33 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 19 mai 2006
19 mai 2006 à 16:47
oops j'ai oublié de dire que la ligne concernée est:

WriteFile ( logfic, texte, strlen(texte), &taille, NULL );

dans la fonction myfprintf( LPCVOID texte )
johanb Messages postés 33 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 19 mai 2006
19 mai 2006 à 16:45
J'ai une léger probleme:
j'ai voulu faire un mix de ton code avec celui ne necessitant pas de dll (http://www.cppfrance.com/code.aspx?ID=27169)
Une seule ligne pose probleme: sous visual c++ j'ai l'erreur suivante à la compilation.

error C2664: 'strlen' : cannot convert parameter 1 from 'LPCVOID' to 'const char *'
Conversion from 'void*' to pointer to non-'void' requires an explicit cast


est-ce que quelqu'un pourrait me dire comment résoudre le problème svp?
HeavenForsaker Messages postés 223 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 8 août 2011
10 mai 2006 à 12:00
Ok ça marche, merci man.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 mai 2006 à 10:38
Fais la correspondance toi même dans ton code, sera plus rapide qu'un appel de fonction.
HeavenForsaker Messages postés 223 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 8 août 2011
10 mai 2006 à 10:26
Ok merci BruNews c'est noté,
sinon je voulais savoir est ce qu'il y a une fonction pour assembler les Dead-Keys, si j'ai dans un buffer 2 caractères '^' et 'e', comment faire pour obtenir 'ê' ?
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 mai 2006 à 00:50
int est 32 bits.
HeavenForsaker Messages postés 223 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 8 août 2011
10 mai 2006 à 00:16
Bonjour,

Corrigez moi si je me trompe, le type de variable unsigned int tiens sur 16bits, 0 à 65535 en decimal. Sous windows NT, le Et binaire entre une valeur 32bits(0x80000000) et une valeur 16bits(code) donnera toujours 0 non ?
De plus la fonction MapVirtualKey ne tiens pas compte des combinaisons de touche. Si je fais un AltGR + 'é' puis 'a' pour former 'ã', code renvoi 223(code de touche de la touche 'é').
En fait ça fonctionne que pour les Dead-Keys formées avec '^', mais pas pour les combinaisons AltGR + 'é' ou AltGR + 'è'.

Voila, merci de me corriger si je me suis planté. -:)
cs_floche Messages postés 16 Date d'inscription dimanche 10 octobre 2004 Statut Membre Dernière intervention 11 avril 2006
24 févr. 2006 à 11:59
désolé j avais pas vu...
cs_floche Messages postés 16 Date d'inscription dimanche 10 octobre 2004 Statut Membre Dernière intervention 11 avril 2006
23 févr. 2006 à 21:31
petite question tres bete : ou trouver la librairie libhkb.a ?
merci encore pour cette source trés compréhensible

+++
BeLZeL Messages postés 110 Date d'inscription mardi 10 octobre 2000 Statut Membre Dernière intervention 20 décembre 2005
8 oct. 2005 à 16:59
Il faut que tu fasses ton propre EXE, qui se lance en arrière plan.
Neomaster951 Messages postés 7 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 24 novembre 2007
8 oct. 2005 à 16:03
Je suis débutant et hmm, je sais pas comment le mettre en arrière plan... Le fichier .exe contien seulement sa:

int main ()
{
InitHook ( );
system("PAUSE");
EndHook ( );
return 0;
}

Qu'est-ce que je devrais changer pour qu'il puisse rouler en arrière plan? Merci!
brenntengel Messages postés 49 Date d'inscription jeudi 10 juin 2004 Statut Membre Dernière intervention 6 mai 2006
30 sept. 2005 à 21:08
salut et permet moi de te dire Chapeau pour ce code
exellemnt travaille j'ai compris le programme
mais le probelme j'ai pas comrpris comment
tu as appelé la DLL a partir de la fonction main.
il n'ya rien qui montre comment ta fais ca
si tu as un tutorial sur le dll(utlisant la dllexport et dllimort ca serait vraiment sympa )
Merci et encore chapeau
BeLZeL Messages postés 110 Date d'inscription mardi 10 octobre 2000 Statut Membre Dernière intervention 20 décembre 2005
2 août 2004 à 12:11
C'est le deuxième paragraphe d'intro :)
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
1 août 2004 à 12:11
code de touche qui devra etre combine avec un autre pour former un caractere fini.
Ex: touche accent ciconflexe ou trema.
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
31 juil. 2004 à 13:36
c'est quoi les dead keys?
Rejoignez-nous