Если вы споткнулись в этой области, то вы уже знаете, что Microsoft Research Detours в значительной степени устанавливает ориентир, когда дело доходит до подключения API. Почему бы нам не получить сравнение с дороги быстро? DETOURS VS. MHOOKDetours предоставляется бесплатно с некоммерческой лицензией, но поддерживает только платформу x86. Объемы также могут быть лицензированы для коммерческого использования, что также дает полную поддержку x64, но вы можете ознакомиться только с условиями лицензирования после подписания NDA. Mhook свободно распространяется под лицензией MIT с поддержкой x86 и x64. Обходные узлы уклоняются от официальной поддержки крепления крючков к работающему приложению. Конечно, вы можете это делать, но если вы в конечном итоге вызываете случайный сбой здесь или там, вы можете только винить себя. Mook был предназначен для установки и удаления крючков в запущенных приложениях. В конце концов, это то, что вы нужно это в реальном мире. Он делает все возможное, чтобы избежать перезаписи кода, который может выполняться другим потоком. Обход поддерживает транзакционное соединение и отцепление; т. е. одновременно установить кучу крючков с помощью подхода «все или ничего». Крюки будут установлены только в том случае, если все они могут быть установлены, иначе библиотека откатит все сделанные изменения. Mhook этого не делает. Наконец, Mhook довольно ленив, когда дело доходит до управления памятью для батутов, которые он использует. Detours выделяет блоки памяти по мере необходимости и использует полученную область данных для хранения как можно большего количества батутов. С другой стороны, Mhook использует один вызов VirtualAlloc за каждый установленный крючок. Каждый крючок занимает менее 100 байт памяти, поэтому это очень расточительно, так как VirtualAlloc в конечном итоге захватывает 64K из виртуального адресного пространства процесса каждый раз, когда Mhook называет его. (Фактическая выделенная память будет одной страницей, которая также довольно расточительна.) В конце концов, это, вероятно, не имеет особого значения, если вы не устанавливаете очень большое количество крючков в приложении. Кроме того, это очень легко исправить.
Разработчик
Márton Anka
Сайт приложения

Аналоги и альтернативы Mhook

Наиболее популярные альтернативы и аналоги Mhook для Windows.