예외 처리기 해킹: DirectX, Flash, 그리고 코드 수정 이야기

2025-05-21

팀은 처리되지 않은 예외를 처리하기 위해 `SetUnhandledExceptionFilter`를 사용하는 중 좌절스러운 문제에 직면했습니다. Direct3D와 Flash가 자체 예외 필터를 설치하여 팀의 해결책이 효과를 잃었던 것입니다. 이를 해결하기 위해 대담한 전략을 채택했습니다. 코드 수정을 통해 `SetUnhandledExceptionFilter` 함수를 직접 비활성화하여 자체 예외 처리기가 우선하도록 한 것입니다. 이 글에서는 코드 수정 프로세스, 함수 주소 가져오기, 초기 명령어 검증, 그리고 코드 교체를 위한 `VirtualProtect` 및 `FlushInstructionCache` API 사용에 대해 자세히 설명합니다. 그들의 해결책으로 예외 보고 기능이 복구되었습니다.

개발