Home | Artigos | Downloads | Fórum | Newsletter | GT-Plug Project | Entrar em contato

Projeto BMS - Artigos - O que é API Hooking?


 O que é API Hooking?
Autor: Bruno Martins Stuani
Data: 2005-08-03 15:40:35


API Hooking - A idéia

Dias atrás eu estava dentro do trem, indo trabalhar, dia chuvoso, todo mundo resolveu ir de trem, que por um acaso estava extremamente lotado. Quando coloquei a mão no bolso, percebí que meu celular já não estava mais lá. Entrei em desespero, afinal, faziam tres meses que eu não fazia backup da minha lista de contatos. Não faço idéia de quem o tinha pego, mas tenho certeza que alguém o surrupiou.

Suponhamos que havia um barbante interligando meu celular à minha perna, amarrado em ambos os lados. Quando o ladrão puxasse o aparelho do meu bolso, eu logo sentiria e poderia interceptar a ação malígna deste indivíduo, agindo da maneira que minha consciencia me mandasse.

Podemos entender API Hooking como sendo este barbante. Uma engenhoca que se instala nos outros processos (o celular), intercepta as funções que estes processos chamam (ato do celular ser puxado do meu bolso), ter acesso a todos os parâmetros passados para estas funções (poder ver os atributos de quem está tentando roubar o aparelho), poder alterar os parâmetros originais passados para as funções (no caso, quebrar um braço ou uma perna do ladrão) e alterar o resultado que as funções originais retornaram (permitir ou não que o ladrão leve meu celular com ele).


Onde esta técnica é aplicada, dentro da computação?

Imagine poder interligar uma ponta deste “barbante” na sua aplicação, e outra ponta em qualquer outra aplicação que esteja rodando no seu Sistema Operacional? Seria interessante, pois o barbante seria puxado toda vez que essa aplicação mexe um dedo.

Por exemplo, para cada arquivo que essa aplicação excluir, o barbante te notificará, e você saberá de qual arquivo se trata, permitindo que você possa permitir ou não a exclusão do mesmo. Essa mesma idéia se aplica para cada operação realizada pela aplicação como a cada arquivo que copia, a cada mensagem que mostra na tela, a cada programa que ele executa, enfim, qualquer ação que ela realiza.

Agora que você tem uma idéia do que é esta técnica, baixe alguns aplicativos de demonstração e a biblioteca BmsApiHook, que estão em Downloads -> BmsApiHook, e estude a forma com que eu aplico API Hooking. Bons estudos!



 ProjetoBMS - Todos os direitos reservados a Bruno Martins Stuani. Hospedagem profissional? www.elit.com.br