Mhook

Mhook

Wenn Sie sich in diesem Bereich versuchen, wissen Sie bereits, dass Microsoft Researchs Detours den Maßstab für API-Hooks setzt.
Wenn Sie sich in diesem Bereich versuchen, wissen Sie bereits, dass Microsoft Researchs Detours den Maßstab für API-Hooks setzt.Warum schaffen wir dann nicht schnell einen Vergleich?Umwege vs.MHOOK Detours ist mit einer nichtkommerziellen Lizenz kostenlos erhältlich, unterstützt jedoch nur die x86-Plattform.Detours kann auch für die kommerzielle Nutzung lizenziert werden, wodurch Sie auch vollen x64-Support erhalten. Die Lizenzbedingungen erhalten Sie jedoch erst, nachdem Sie einen NDA unterzeichnet haben.Mhook wird unter einer MIT-Lizenz mit Unterstützung für x86 und x64 frei vertrieben.Detours scheut sich davor zurück, das Anbringen von Haken an einer laufenden Anwendung offiziell zu unterstützen.Natürlich können Sie es tun - aber wenn Sie hier oder da einen zufälligen Absturz verursachen, können Sie sich selbst die Schuld geben.Mhook sollte in der Lage sein, Hooks in laufenden Anwendungen zu setzen und zu entfernen - schließlich ist es das, wofür Sie es in der realen Welt brauchen.Es wird versucht, das Überschreiben von Code zu vermeiden, der möglicherweise von einem anderen Thread ausgeführt wird.Detours unterstützt das Ein- und Aushängen von Transaktionen.Das heißt, mit einem Alles-oder-Nichts-Ansatz werden mehrere Haken gleichzeitig gesetzt.Hooks werden nur gesetzt, wenn alle gesetzt werden können, andernfalls macht die Bibliothek alle vorgenommenen Änderungen rückgängig.Mhook macht das nicht.Schließlich ist Mhook ziemlich faul, wenn es darum geht, den Speicher für die verwendeten Trampoline zu verwalten.Detours weist nach Bedarf Speicherblöcke zu und verwendet den resultierenden Datenbereich, um so viele Trampoline zu speichern, wie passen.Mhook verwendet dagegen einen Aufruf von VirtualAlloc pro festgelegtem Hook.Jeder Hook benötigt weniger als 100 Byte Speicherplatz, was sehr verschwenderisch ist, da VirtualAlloc jedes Mal, wenn Mhook ihn aufruft, 64 KB aus dem virtuellen Adressraum des Prozesses entnimmt.(Der tatsächlich zugewiesene Speicher wird eine einzelne Seite sein, was ebenfalls sehr verschwenderisch ist.) Letztendlich spielt dies jedoch wahrscheinlich keine Rolle, es sei denn, Sie setzen eine sehr große Anzahl von Hooks in einer Anwendung.Auch dies ist sehr einfach zu beheben.
mhook

Kategorien

Alternativen zu Mhook für Mac mit kommerzieller Lizenz