Le DDetours est une bibliothèque vous permettant d'accrocher les fonctions Delphi et API Windows. Il fournit un moyen facile d'insérer et de retirer le crochet.
Quoi de neuf dans la version 2.2 ?
- Prise en charge de FPC et des anciennes versions de Delphi, notamment D7.
- Prise en charge de la section récursive.
- Prise en charge des paramètres/étiquettes personnalisés pour chaque fonction du trampoline.
- Voir CHANGELOG pour les modifications complètes.
Caractéristiques :
- Prend en charge les architectures x86 et x64 .
- Prend en charge plusieurs crochets pour une seule fonction.
- Prend en charge Delphi 7/2005-2010/XE-Rio (Delphi 10.3).
- Prend en charge Lazare/FPC.
- Prend en charge la fonction récursive à l’intérieur de la fonction hook.
- Prend en charge les méthodes d’interfaces d’accrochage par MethodName ou MethodIndex .
- Prend en charge les correctifs COM vtable .
- Prend en charge les méthodes d’objet d’accrochage.
- Permet d'appeler la fonction d'origine via la fonction Trampoline/NextHook .
- Prise en charge COM / Interfaces / win32api .
- Filetage sécurisé pour accrocher et décrocher.
- L'adresse 64 bits est prise en charge.
- La bibliothèque n'utilise aucune bibliothèque externe.
- La bibliothèque peut insérer et supprimer le hook à tout moment.
- La bibliothèque contient la bibliothèque InstDecode, qui vous permet de décoder les instructions CPU (x86/x64).
Ce projet contient deux sous-projets : la bibliothèque DDetours et InstDecode *.
La bibliothèque InstDecode est une bibliothèque capable de décoder les deux instructions (x86/x64). Vous pouvez le considérer comme une petite routine de désassemblage. Il peut décoder une instruction et obtenir des informations sur l'instruction (taille de l'instruction, déplacement, données immédiates, adresse de saut, ..) sans afficher de mnémoniques, ce qui le rend très rapide et de très petite taille.
Ces deux librairies ont été codées en langage Pascal pur avec Delphi XE7.
Consultez la page Wiki pour plus d'informations sur l'utilisation de la bibliothèque.
S'il vous plaît, si vous trouvez un bug, n'hésitez pas à le signaler.