Em programação de computadores, o termo hooking (em português, "enganchar") cobre uma série de técnicas utilizadas para modificar ou melhorar o comportamento de um sistema operacional, aplicações ou outros componentes de software através da interceptação de chamadas de funções, mensagens ou eventos passados entre componentes de software.[1] O código que manipula tais chamadas de funções, mensagens ou eventos interceptados é chamado de "hook" (gancho).[2]

O hooking é utilizado para diversos propósitos, incluindo depuração e extensão de funcionalidade. Alguns exemplos podem ser a interceptação de mensagens de eventos de teclado ou mouse antes que eles cheguem às aplicações ou a interceptação de chamadas do sistema operacional com o objetivo de monitorar o comportamento ou modificar a função de uma aplicação de outro componente.

Também pode ser utilizado por código malicioso. Por exemplo, rootkits, pedaços de software que tentam tornar-se invisíveis fingindo a saída de chamadas de API que caso contrário revelariam sua existência, freqüentemente utilizando técnicas de hooking. Wallhack é outro exemplo de comportamento malicioso, que pode originar de técnicas de hooking. Ele é feito interceptando-se chamadas de funções de um jogo de computador e alterando o que é mostrado para o jogador, a fim de se obter uma vantagem injusta sobre outros jogadores.

Referências

  1. Jonathan Daniel (17 de novembro de 2013). «Hooking explained: detouring library calls and vtable patching in Windows/Linux/MAC-OSX». Consultado em 28 de junho de 2019 
  2. Binh Nguyen (16 de agosto de 2004). «Hacking-Lexicon / Linux Dictionary V 0.16». Consultado em 28 de junho de 2019. Hook 
  Este artigo sobre computação é um esboço. Você pode ajudar a Wikipédia expandindo-o.