Os programas de computador são sequências de códigos feitas em uma determinada linguagem de programação, que dizem ao sistema operacional (Windows, Linux, MAC OS, etc) ou sistema básico (BIOS) o que ele deve fazer e como deve fazer, isso pode ser desde uma simples comunicação com um servidor para baixar um vídeo no Youtube, até um complexo cálculo de astrofísica.
Os exploits também são programas de computador, mas seu objetivo é explorar uma falha no sistema operacional, programa, firmware ou pagina da web, para isso o exploit usa uma entrada do programa que pode ser um argumento que o programa recebe via Shell, assim ele pode tentar fornecer dados ao programa de forma que ao armazenar esses dados na memória o programa acabe “transbordando” os dados para outras áreas da memória em que estão alocados outros dados que não deveriam ser acessados pelo usuário, essa exploração se chama buffer overflow.
Para que toda a sequencia de código da linguagem C seja interpretado pelo sistema como um programa, é preciso que você compile esse código, para isso você deve obviamente usar um compilador. O compilador irá interpretar cada linha de código e irá gerar um arquivo binário tratado para o sistema em questão com a extensão que esse sistema aceita, no caso do Windows é o .exe, durante a compilação o compilador ainda verifica possíveis erros de rotinas de código e sintaxe que poderia causar um crash (travamento) do sistema se fosse executado.
Para compilar programas e exploits em C/C++ existem vários compiladores como Microsoft Visual C++, Borland C++, GNU GCC, dentre outros. Nesse tutorial utilizaremos o GNU GCC, que é open source, multiplataforma, completo e esta atualmente ativo, ou seja, podemos contar com atualizações, aqui vou mostrar como utilizar o GCC no Linux Ubuntu e no Windows com MinGW, os comandos são exatamente os mesmos.
Compilando com o GCC no Linux:
1- Antes de tudo vá até a pasta em que esta a source do programa ou exploit, por exemplo exploit.c, para isso de o comando “cd caminho_do_programa“, como o meu esta na Área de Trabalho na pasta prog, o meu comando é cd “Área de Trabalho”/prog . Lembrando que quando o caminho do arquivo ou pasta tem espaços é necessário utilizar aspas dupla no começo e fim da “pasta”.
2- Agora que estamos dentro da pasta do programa, podemos dar o comando para compilar e gerar o arquivo executável: gcc -o exploit exploit.c
Esse comando diz ao GCC para compilar o arquivo “exploit.c” que foi escrito em linguagem C, a saída será “exploit“, no caso dos sistemas Linux, o executável não tem extensão.
Se não apareceu nenhuma mensagem de erro, significa que programa foi compilado com êxito, podemos então entrar na pasta do programa e verificar se o binário está lá.
Para verificar se o programa foi compilado corretamente, basta executá-lo com o comando ./programa no meu caso ./exploit
Compilando com o GCC no Windows:
1- Como no Linux você também deve ir para a pasta em que o programa esta, então utilize o comando cd, no meu caso cd Desktop/prog .
2- Agora basta compilar o programa com o comando gcc -o programa.exe programa.c no meu caso gcc -o exploit.exe exploit.c .
Se não apareceu nenhum erro, o programa foi compilado corretamente. Verifique se o programa executável esta dentro da pasta do seu arquivo C.
Para testar o programa, de o comando programa.exe no meu caso exploit.exe .
Eae gostou desse tutorial? Então deixe um comentário e compartilhe, ajude-nos a manter o site ;-)!
paulo bom dia, muito bacana as infas sobre linguagem de programação em C
e dependendo do tipo de programação o comportamento mudam completamente
suas variáveis dependendo que se aplica a linguagem em C.. gostei do esclarecimento bem detalhado,um Abraço!,,