1
Mhook
Ако се заемете с това в тази област, вече ще знаете, че Detours на Microsoft Research почти определя критерия, когато става въпрос за свързване на API.
- Безплатно
- Windows
Ако се справите в тази област, тогава вече ще знаете, че Detours на Microsoft Research в голяма степен задава еталона, когато става въпрос за свързване на API.Защо тогава не получим бързо сравнение?ДЕТУРИ VS.MHOOK Detours се предлага безплатно с нетърговски лиценз, но поддържа само платформата x86.Обходът също може да бъде лицензиран за търговска употреба, което също ви предоставя пълна поддръжка x64, но можете да видите условията за лицензиране едва след подписване на NDA.Mhook се разпространява свободно под лиценз MIT с поддръжка за x86 и x64.Обходът се отклонява от официалната подкрепа на закрепването на куки към работещо приложение.Разбира се, вие сте свободни да го направите - но ако в крайна сметка причините случаен срив тук или там, можете да обвинявате само себе си.Mhook трябваше да може да задава и премахва куки в работещи приложения - в края на краищата това е нужно за реалния свят.Прави всичко възможно да избегне презаписването на кода, който може да се изпълнява от друга нишка.Обходът поддържа транзакционни закачания и откачване;това е, едновременно да се поставят куп куки с подход „всичко или нищо“.Куките ще бъдат зададени само ако всички те могат да бъдат зададени, в противен случай библиотеката ще върне всички промени, направени.Mhook не прави това.И накрая, Mhook е доста мързелив, когато става въпрос за управление на паметта за батутите, които използва.Detours разпределя блокове памет, ако е необходимо, и използва получената област от данни, за да съхранява колкото се може повече батути.Mhook, от друга страна, използва едно обаждане към зададения VirtualAlloc на кука.Всяка кука се нуждае от по-малко от 100 байта за съхранение, така че това е много разточително, тъй като VirtualAlloc завършва 64K от виртуалното адресно пространство на процеса всеки път, когато Mhook го извика.(Действително разпределената памет ще бъде една страница, която също е доста разточителна.) В крайна сметка това вероятно няма особено значение, освен ако не зададете много голям брой куки в приложение.Също така, това е много лесно да се поправи.