Depurador de viagem no tempo da Microsoft: Um mergulho profundo no TTD

O Time Travel Debugging (TTD) da Microsoft é uma poderosa estrutura de gravação e reprodução no modo usuário que permite aos desenvolvedores depurar programas como se estivessem navegando em uma linha do tempo. Ele injeta um DLL para capturar todos os estados da execução de um processo, armazenando-os em um arquivo .trace. O núcleo é o mecanismo de runtime Nirvana, que emula instruções de CPU para controle de grão fino. Mesmo com desafios como operações de ponto flutuante, modelos de memória, emulação de periféricos e código automodificável, o Nirvana usa tradução binária dinâmica e técnicas de cache de código para eficiência e precisão. O artigo descreve um bug encontrado ao depurar um arquivo PE de 32 bits ofuscado usando o TTD, destacando a vantagem de usar o próprio arquivo de rastreamento do TTD para depuração.