Mhook

Mhook

Se você se interessa por essa área, já sabe que os desvios da Microsoft Research definem a referência quando se trata de enganchar API.
Se você se interessa por essa área, já sabe que os desvios da Microsoft Research definem a referência quando se trata de enganchar API.Por que não fazemos uma comparação rápida rapidamente?DETOURS VS.O MHOOK Detours está disponível gratuitamente com uma licença não comercial, mas suporta apenas a plataforma x86.Os desvios também podem ser licenciados para uso comercial, o que também oferece suporte completo a x64, mas você só vê as condições de licenciamento após assinar um NDA.O Mhook é distribuído gratuitamente sob uma licença MIT com suporte para x86 e x64.O desvio evita o suporte oficial da conexão de ganchos a um aplicativo em execução.Claro, você é livre para fazê-lo - mas se você acabar causando um acidente aleatório aqui ou ali, você pode se culpar.O Mhook foi criado para ser capaz de definir e remover ganchos em aplicativos em execução - afinal, é para isso que você precisa no mundo real.Faz o possível para evitar a substituição de código que pode estar em execução por outro encadeamento.Os desvios suportam o enganchar e o desengatar transacionais;isto é, definir vários ganchos ao mesmo tempo com uma abordagem de tudo ou nada.Ganchos serão definidos apenas se todos eles puderem ser definidos, caso contrário, a biblioteca reverterá quaisquer alterações feitas.Mhook não faz isso.Finalmente, Mhook é bastante preguiçoso quando se trata de gerenciar memória para os trampolins que usa.Os desvios alocam blocos de memória conforme necessário e usam a área de dados resultante para armazenar quantos trampolins forem necessários.Mhook, por outro lado, usa uma chamada para o VirtualAlloc por gancho que está sendo definido.Cada gancho precisa de menos de 100 bytes de armazenamento, o que é um grande desperdício, pois o VirtualAlloc acaba obtendo 64K do espaço de endereço virtual do processo toda vez que a Mhook o chama.(A memória alocada real será uma única página, o que também é bastante inútil.) No final, isso provavelmente não importa, a menos que você esteja configurando um número muito grande de ganchos em um aplicativo.Além disso, isso é muito fácil de corrigir.
mhook

Alternativas ao Mhook para Web com licença de código aberto