- Status
- Offline
- Joined
- Mar 3, 2026
- Messages
- 754
- Reaction score
- 457
Anyone else hitting a wall with VEH hooks on Plutonium's Black Ops 2 build?
Been digging into CL_WritePacket lately. Tried the standard approach — setting page protection via VirtualProtect to trigger a Vectored Exception Handler (VEH), but the stability is trash. It works for a short window, then the game's rendering thread seems to desync or just flat out break.
I managed to bypass the headache by hooking via a dvar within CL_WritePacket instead. I missed it on the first pass, but it's a much cleaner way to get execution without fighting the rendering thread or dealing with protection-based detection vectors.
Still, I'm curious if anyone has successfully stabilized a VEH hook on this specific client. Is Plutonium proactively monitoring page guards now, or is there a specific thread-safety issue I'm missing?
Anyone else digging into the engine internals for Plutonium lately?
Been digging into CL_WritePacket lately. Tried the standard approach — setting page protection via VirtualProtect to trigger a Vectored Exception Handler (VEH), but the stability is trash. It works for a short window, then the game's rendering thread seems to desync or just flat out break.
The logic follows the classic routine:
- Identify the CL_WritePacket address in the Plutonium module.
- Apply VirtualProtect to flip page bits and trigger the exception.
- Handle the exception in the VEH to redirect execution.
I managed to bypass the headache by hooking via a dvar within CL_WritePacket instead. I missed it on the first pass, but it's a much cleaner way to get execution without fighting the rendering thread or dealing with protection-based detection vectors.
Still, I'm curious if anyone has successfully stabilized a VEH hook on this specific client. Is Plutonium proactively monitoring page guards now, or is there a specific thread-safety issue I'm missing?
Anyone else digging into the engine internals for Plutonium lately?