Hacking des Ausnahmehandlers: Eine Geschichte von DirectX, Flash und Code-Modifikation

2025-05-21

Ein Team stieß auf ein frustrierendes Problem bei der Verwendung von `SetUnhandledExceptionFilter` zur Behandlung nicht behandelter Ausnahmen: Direct3D und Flash installierten ihre eigenen Ausnahmefilter, wodurch die Lösung des Teams unwirksam wurde. Um dies zu lösen, verwendeten sie eine mutige Strategie: die direkte Deaktivierung der Funktion `SetUnhandledExceptionFilter` durch Code-Modifikation, um sicherzustellen, dass ihr Ausnahmehandler Vorrang hat. Der Artikel beschreibt den Prozess der Code-Modifikation, einschließlich des Abrufens der Funktionsadresse, der Überprüfung der ersten Anweisungen und der Verwendung der APIs `VirtualProtect` und `FlushInstructionCache` zum Ersetzen des Codes. Ihre Lösung stellte die Funktionalität der Ausnahmeberichterstattung wieder her.

Entwicklung Code-Modifikation