Le débogueur de voyage dans le temps de Microsoft : Plongez au cœur de TTD

Le Time Travel Debugging (TTD) de Microsoft est un puissant framework d'enregistrement et de relecture en mode utilisateur qui permet aux développeurs de déboguer des programmes comme s'ils naviguaient sur une ligne temporelle. Il injecte une DLL pour capturer tous les états de l'exécution d'un processus, les stockant dans un fichier .trace. Le cœur du système est le moteur d'exécution Nirvana, qui émule les instructions CPU pour un contrôle granulaire. Même avec des défis tels que les opérations à virgule flottante, les modèles de mémoire, l'émulation des périphériques et le code auto-modifiable, Nirvana utilise la traduction binaire dynamique et les techniques de mise en cache du code pour l'efficacité et la précision. L'article décrit un bogue rencontré lors du débogage d'un fichier PE 32 bits obfusqué à l'aide de TTD, soulignant l'avantage d'utiliser le propre fichier de trace de TTD pour le débogage.