Artigo Clube Delphi 68 - API Hooking

Neste artigo apresentarei uma das mais avançadas técnicas de programação para Windows: API Hooking.

Esse artigo faz parte da revista Clube Delphi Edição 68. Clique aqui para ler todos os artigos desta edição

Clique aqui para ler esse artigo em PDF.

API Hooking

Parte I - Dominando o sistema operacional

Programadores costumam se perguntar quais são os limites de suas ferramentas de desenvolvimento. Com nós, usuários do Delphi, não é diferente, mas com certeza nossas fronteiras são bem mais distantes do que a maioria das outras. Neste artigo mostrarei um bom exemplo disso, apresentando uma das mais avançadas técnicas de programação para Windows: API Hooking.

 

Conceitos iniciais

O Windows, como todo sistema operacional, possui um conjunto de funções que permite o desenvolvimento de aplicações para serem executadas sobre o SO. A cada uma dessas funções damos o nome de API (Application Programming Interface).

A API é uma camada entre o sistema operacional e uma aplicação, permitindo que programas se comuniquem com o SO e com seus serviços. Por exemplo, uma API torna possível um software criar janelas, exibir caixas de diálogo, desenhar na tela, apagar arquivos etc.

Quando colocamos um botão (TButton) em um formulário do Delphi, estamos chamando uma série de funções do sistema operacional, que cuidarão de desenhar corretamente o botão na tela, bem como responder às ações do usuário, como cliques do mouse e pressionamento de teclas. O mesmo vale para um aplicativo feito em VB, C++ etc.

Imagine agora o seguinte: você tem o código fonte do Windows e pode alterar as API’s do sistema operacional, adicionando uma chamada a alguma função criada por você, conhecida por callback, no início da declaração da função original.

Assim, sempre que tal API fosse executada, por quem quer que seja, o seu código seria chamado antes, e você poderia decidir o que fazer, repassando o processamento de volta para o SO ou realizando outra tarefa. Mas nós não temos o código-fonte do sistema da Microsoft para fazer isso. Isso seria então uma coisa impossível de se fazer? Definitivamente, não!

 

O que posso fazer com API Hooking?

A técnica de API Hooking permite, literalmente, reprogramar as funções do sistema operacional. Com o poder de interceptar tais comandos, é possível mudar seus parâmetros, alterando a ação que seria executada originalmente.

É possível, por exemplo, bloquear a exclusão de um determinado arquivo, impedir que um aplicativo seja executado, solicitar uma confirmação do usuário para gravar um documento no disco etc.

Sem sombra de dúvidas, a maior fatia de opções é na área de segurança, como antivírus e anti-spywares. Mas existem situações do nosso cotidiano de desenvolvedores onde a API Hooking, além de possivelmente ser a única saída, é uma “mão na roda”.

" [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados