This technique also abuses internal Windows functionality. In this case the technique uses Window Subclassing. When an application creates a window on the system, some information about this specific window are stored. If the system needs to send a message to this window, it makes use of this specific information to correctly target the message. Subclassing allows the interception of this specific message in order to modify or monitor the behavior of the window.

When a window is subclassed, new properties are added (UxSubclassInfo, CC32SubclassInfo); internal structure will then use these properties. Basically, the technique will inject a buffer containing the shellcode into the target process, then modify the structure used by the specific properties to point to the payload. Finally, modify the property of the window. When a message is sent to the window the shellcode is executed.

Additional Resources

Subscribe to our Newsletter and don't miss important updates