- Status
- Offline
- Joined
- Mar 3, 2026
- Messages
- 247
- Reaction score
- 7
Anyone else banging their head against SteelSeries Sonar overlays lately? I am trying to force the sonar overlay to call my own present hook, but I am hitting a wall with the SteelSeriesGameOverlay.dll internals.
The issue is that I cannot reliably call my hook function or cache the swap chain to call it manually. I need to hook something directly within Sonar that forces its present cycle to trigger my logic every frame. I have been digging through IDA Pro, but the export calls are elusive and I am not seeing the specific trigger points when the notification hotkeys fire.
Tech breakdown of the struggle:
Has anyone actually mapped the call graph for the Sonar overlay notification triggers? I suspect I am looking at a virtual table or a callback registration that is dynamic, which is why static analysis in IDA isn't showing the clear entry point I need.
If anyone has experience with this specific overlay or has found a way to force the swap chain present without manually catching it from the main game loop, drop some breadcrumbs. I am trying to avoid a full detour if a cleaner hook exists in the overlay's export table.
Are you guys finding better luck with hooking the rendering backend directly, or is there a specific offset in the game overlay dll that handles the notification draw? Share your thoughts below if you have messed with this.
The issue is that I cannot reliably call my hook function or cache the swap chain to call it manually. I need to hook something directly within Sonar that forces its present cycle to trigger my logic every frame. I have been digging through IDA Pro, but the export calls are elusive and I am not seeing the specific trigger points when the notification hotkeys fire.
Tech breakdown of the struggle:
- The Hook: Hooking Present is standard, but Sonar is being stubborn about state persistence.
- The Target: SteelSeriesGameOverlay.dll is obfuscated enough that finding the specific export call flow is becoming a massive time sink.
- The Goal: Hijack the overlay render loop without crashing the host process or flagging the overlay integrity checks.
Has anyone actually mapped the call graph for the Sonar overlay notification triggers? I suspect I am looking at a virtual table or a callback registration that is dynamic, which is why static analysis in IDA isn't showing the clear entry point I need.
If anyone has experience with this specific overlay or has found a way to force the swap chain present without manually catching it from the main game loop, drop some breadcrumbs. I am trying to avoid a full detour if a cleaner hook exists in the overlay's export table.
Are you guys finding better luck with hooking the rendering backend directly, or is there a specific offset in the game overlay dll that handles the notification draw? Share your thoughts below if you have messed with this.