Mhook

Mhook

Jeśli zagłębisz się w tę dziedzinę, będziesz już wiedział, że Objazdy Microsoft Research praktycznie wyznaczają standardy, jeśli chodzi o przechwytywanie API.
Jeśli zagłębisz się w tę dziedzinę, będziesz już wiedział, że Objazdy Microsoft Research praktycznie wyznaczają standardy, jeśli chodzi o przechwytywanie API.Dlaczego więc nie uzyskamy szybkiego porównania?DETOURS VS.MHOOK Detours jest dostępny za darmo z licencją niekomercyjną, ale obsługuje tylko platformę x86.Objazdy mogą być również licencjonowane do użytku komercyjnego, co zapewnia również pełną obsługę x64, ale warunki licencyjne można zobaczyć tylko po podpisaniu umowy NDA.Mhook jest swobodnie rozpowszechniany na licencji MIT ze wsparciem dla x86 i x64.Objazdy unikają oficjalnego wspierania mocowania haków do działającej aplikacji.Oczywiście możesz to zrobić dowolnie - ale jeśli doprowadzisz do przypadkowej katastrofy tu i tam, możesz winić tylko siebie.Mhook miał być w stanie ustawiać i usuwać zaczepy w uruchomionych aplikacjach - w końcu to jest to, czego potrzebujesz w prawdziwym świecie.Stara się unikać nadpisywania kodu, który może być wykonywany przez inny wątek.Objazdy obsługują zaczepianie i odczepianie transakcyjne;to znaczy ustawiając jednocześnie kilka haczyków z podejściem „wszystko albo nic”.Haki zostaną ustawione tylko wtedy, gdy wszystkie będą mogły zostać ustawione, w przeciwnym razie biblioteka cofnie wszelkie dokonane zmiany.Mhook tego nie robi.Wreszcie, Mhook jest dość leniwy, jeśli chodzi o zarządzanie pamięcią dla używanych przez siebie trampolin.Objazdy przydziela bloki pamięci zgodnie z potrzebami i wykorzystuje wynikowy obszar danych do przechowywania tylu trampolin, ile będzie pasować.Z drugiej strony Mhook używa jednego wywołania VirtualAlloc na każdy ustawiony hak.Każdy haczyk potrzebuje mniej niż 100 bajtów pamięci, więc jest to bardzo marnotrawstwo, ponieważ VirtualAlloc kończy pobieranie 64 KB z wirtualnej przestrzeni adresowej procesu za każdym razem, gdy Mhook go wywołuje.(Rzeczywista przydzielona pamięć będzie pojedynczą stroną, co również jest dość marnotrawstwem.) Ostatecznie jednak to chyba nie ma znaczenia, chyba że ustawisz bardzo dużą liczbę haków w aplikacji.Jest to również bardzo łatwe do naprawienia.

Alternatywy dla Mhook dla Microsoft Visual Studio

CodeMaid

CodeMaid

CodeMaid to rozszerzenie Visual Studio o otwartym kodzie źródłowym do czyszczenia, kopania i upraszczania naszych C #, C ++, F #, VB, XAML, XML, ASP, HTML, CSS, LESS, SCSS, JavaScript i TypeScript ...