Monday, March 14, 2011

AmBX + Windows 7 x64 SP1, endless crashing applications

Here we go again with these atrocious AmbX drivers.

I just installed SP1 and was greeted by a ton of 'XXXX has stopped working' popups after finishing the update and rebooting. These crashes are reminiscent of issues I had before with AmbX, since the way that it works is hooking itself into DirectX system calls. Some of the popups for apps that had failed (crashed) after SP1 were:
Service Pack Review (spreview.exe)
Nvidia Control Panel (nvcplui.exe)
Catalyst Control Panel (MOM.exe) (yes I have both kinds of cards)
Windows Media Something (wmpnscfg.exe)

After closing all those boxes, I tried to run windows update to see if it completed, that crashed..
Windows Update (wuapp.exe)
And Performance Monitor to take a look at the running apps, that crashed..
Performance Monitor (perfmon.exe)
Also RunDLL32.exe crashed.

Anyways, to confirm my suspicions, I taskkilled the amBX Event Manager.exe and amBXFxGen.exe and everything works fine again. None of those apps will run while the ambx FX gen directX hook is running, they will all crash.

I went to the ambx forums and found some people with the same issue now: http://www.ambx.com/forum/viewtopic.php?f=9&t=4024

Here is an update: http://www.ambx.com/updates/amBX_GamingFXGen_Setup_3.6.4.exe

This is a guess, but when Microsoft releases updates for certain components of Windows, the C:\Program Files\amBX\Gaming FXGen\x64\LoadLibInterceptor.dll (which is bootstrapped into each app on launch) corrupts the memory of the application inadvertently, causing it to crash. It expects certain structures in memory to exist, so it can hook itself in to non-ambx enabled apps, but if the system has been updated the memory locations change and the hook ends up making everything go tits up. It's a common issue when dealing with memory hooking, the hook is targeted for a single version of the target binary. (say dx9_something.dll) Any updates to that binary cause the hook to fail.