Question

Je dois intercepter l'exécution en application très grande dans de nombreux endroits.

Quels sont les programmes que je peux utiliser pour ce faire? Quelles techniques existe pour ce problème?

l'ingénierie inverse manuellement et en ajoutant des crochets est peut-être pas la solution optimale pour ce problème, parce que l'application est très grande et une partie d'application peut être mis à jour depuis un certain temps, je pense que avec des outils ou des bonnes pratiques pour ce problème i peut le faire plus rapidement , quelqu'un sait comment faire?

Quelqu'un aide-moi?

Était-ce utile?

La solution

voir que la partie des outils a été couvert, voici quelque chose pour les techniques.

Selon ce que vous devez connecter et si oui ou non il existe une protection invloved, il existe quelques méthodes:

  1. Correctif appel relatif / jmp dans le binaire virtualisé: c'est le plus simple, mais aussi beaucoup de travail si vous ne pouvez pas trouver automatiquement toutes les références à une fonction, ne fonctionnera probablement pas dans cette cause en raison à vos critères.

  2. IAT / EAT accrochait: ceci est utilisé pour les importations (IAT) et les exportations (EAT), Si votre ciblage d'un ensemble connu importted / exporté des fonctions API. un bon exemple de ce qui peut être trouvé ou ici

  3. Hot-Patcher: Windows XP SP2 introduit quelque chose appelé "hot-patcher" (utilisé pour les mises à jour de la fonction système en temps réel), où toutes ses fonctions (le WinAPI) commencent par un 'mov edi, edi', ce qui permet une saut par rapport à patcher dans l'espace libre créé ci-dessus toutes les fonctions hot-patchable ( on peut le faire aussi ). ce qui est généralement utilisé pour les programmes de contrôle, il IAT ou avoir d'autres formes drôles de protection, plus d'informations peuvent être trouvées ici et ici

  4. code-Spéléologie: capture le flux d'exécution en plaçant dans l'espace Redirections code arbitraire. voir , ici ou ici

  5. VFT / COM Redirection: essentiellement des entrées dans un écrasement des objets table de fonction virtuelle, utile pour les applications POO / COM. voir cette

Il y a beaucoup de bibliothèques 3ème partie, le plus célèbre serait probablement MS Detours , on peut aussi regarder APIHijack ou un moteur mini-crochet .

rien Ofcourse peut se substituer à la première chose que vous aurez poking devez faire avec un débogueur comme ollydbg , mais connaître la méthode de votre utilisation va peut considérablement court les temps de quantité de temps passé farfouillé

Autres conseils

Quelques détails sur ce que vous devez faire exactement (par exemple, comment déterminez-vous où casser) serait bien. En fonction de votre situation, quelque chose comme Pin travail de puissance.

Je suggère d'utiliser Deviare API Hook. Il est la meilleure façon que vous pouvez faire ce que vous avez besoin. Il a certains objets COM que vous pouvez utiliser pour accrocher une application à partir d'un processus différent. Dans votre processus, vous obtenez des informations de paramètres plein et vous pouvez l'utiliser dans toutes les langues de programmation (j'utilise C # et il fonctionne comme un charme). Si vous avez besoin d'API de registre d'interception Je suggère d'utiliser Deviare pour déboguer ce que vous devez intercepter mais vous devrez faire vos propres crochets, sinon, vous trouverez des problèmes de performance.

Vous pouvez faire API Accrocher si vous êtes intéressé à intercepter les appels de méthode.

Ou utiliser certains désassembleur comme softice ou ollydbg ou win32dasm .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top