1
Mhook
Om du dabbar inom det här området vet du redan att Microsoft Research's Omgångar ganska mycket sätter riktmärket när det gäller API-koppling.
- Gratis
- Windows
Om du dabbar inom det här området vet du redan att Microsoft Research's Omgångar ganska mycket sätter riktmärket när det gäller API-koppling.Varför får vi inte en jämförelse snabbt då?DETOURS VS.MHOOK Detours är gratis tillgängligt med en icke-kommersiell licens, men den stöder bara x86-plattformen.Omvägar kan också licensieras för kommersiellt bruk, vilket också ger dig full x64-support, men du får bara se licensvillkoren efter att du har undertecknat en NDA.Mhook distribueras fritt under en MIT-licens med stöd för x86 och x64.Omvägar skjuter bort från att officiellt stödja kopplingen av krokar till en löpande applikation.Naturligtvis är du fri att göra det - men om du hamnar en slumpmässig krasch här eller där kan du bara skylla på dig själv.Mhook var tänkt att kunna ställa in och ta bort krokar i applikationer som kör - det är ju vad du behöver för den i den verkliga världen.Det gör sitt bästa för att undvika att skriva över kod som kan köras av en annan tråd.Omvägar stöder transaktionshakning och avkoppling;det vill säga att sätta ett gäng krokar samtidigt med en allt-eller-ingenting-strategi.Krokar kommer bara att ställas in om alla kan ställas in, annars kommer biblioteket att återföra eventuella ändringar.Mhook gör inte detta.Slutligen är Mhook ganska lat när det gäller att hantera minne för de trampoliner som den använder.Omvägar tilldelar minnesblock efter behov och använder det resulterande dataområdet för att lagra så många trampoliner inom som det passar.Mhook använder å andra sidan ett samtal till VirtualAlloc per krok som ställs in.Varje krok behöver mindre än 100 byte lagringsutrymme så det är mycket slöseri eftersom VirtualAlloc hamnar i 64K från processens virtuella adressutrymme varje gång Mhook kallar det.(Det faktiska tilldelade minnet kommer att vara en enda sida som också är ganska slösaktig.) I slutändan spelar det förmodligen inte så mycket om du inte ställer in ett mycket stort antal krokar i en applikation.Detta är också mycket enkelt att fixa.
mhook