Mhook

Mhook

Si incursiona en esta área, ya sabrá que los desvíos de Microsoft Research establecen el punto de referencia en lo que respecta al enganche de API.
Si incursiona en esta área, ya sabrá que los desvíos de Microsoft Research establecen el punto de referencia cuando se trata de enganchar API.¿Por qué entonces no obtenemos una comparación rápidamente?DESVÍOS VS.MHOOK Detours está disponible de forma gratuita con una licencia no comercial, pero solo es compatible con la plataforma x86.Los desvíos también se pueden licenciar para uso comercial, lo que también le brinda soporte completo x64, pero solo puede ver las condiciones de licencia después de firmar un NDA.Mhook se distribuye libremente bajo una licencia MIT con soporte para x86 y x64.Los desvíos evitan apoyar oficialmente la conexión de ganchos a una aplicación en ejecución.Por supuesto, eres libre de hacerlo, pero si terminas causando un accidente aleatorio aquí o allá, solo puedes culparte a ti mismo.Mhook estaba destinado a poder establecer y eliminar ganchos en aplicaciones en ejecución; después de todo, eso es lo que necesita en el mundo real.Hace todo lo posible para evitar sobrescribir el código que podría estar siendo ejecutado por otro hilo.Detours admite el enganche y desenganche transaccional;es decir, establecer un montón de ganchos al mismo tiempo con un enfoque de todo o nada.Los ganchos solo se establecerán si se pueden configurar todos, de lo contrario, la biblioteca revertirá los cambios realizados.Mhook no hace esto.Finalmente, Mhook es bastante vago cuando se trata de administrar la memoria para los trampolines que usa.Detours asigna bloques de memoria según sea necesario, y utiliza el área de datos resultante para almacenar tantos trampolines como quepan.Mhook, por otro lado, usa una llamada a VirtualAlloc por enlace que se establece.Cada enlace necesita menos de 100 bytes de almacenamiento, por lo que esto es un desperdicio, ya que VirtualAlloc termina tomando 64K del espacio de direcciones virtuales del proceso cada vez que Mhook lo llama.(La memoria asignada real será una sola página, lo que también es bastante derrochador). Sin embargo, al final, esto probablemente no importa realmente, a menos que esté configurando una gran cantidad de enlaces en una aplicación.Además, esto es muy fácil de arreglar.
mhook

Alternativas a Mhook para Microsoft Visual Studio con licencia de código abierto