Hackeando o manipulador de exceções: Uma história de DirectX, Flash e modificação de código
Uma equipe encontrou um problema frustrante ao usar `SetUnhandledExceptionFilter` para lidar com exceções não tratadas: Direct3D e Flash estavam instalando seus próprios filtros de exceção, tornando a solução da equipe ineficaz. Para resolver isso, eles empregaram uma estratégia ousada: desabilitando diretamente a função `SetUnhandledExceptionFilter` por meio de modificação de código para garantir que seu manipulador de exceções tivesse precedência. O artigo detalha o processo de modificação de código, incluindo a obtenção do endereço da função, a verificação das instruções iniciais e o uso das APIs `VirtualProtect` e `FlushInstructionCache` para substituição de código. Sua solução restaurou a funcionalidade de relatório de exceções.