Cowsheep
28-03-2010, 03:13
Offically not supported, i want to care about it.
The imports to the dx 10 dlls are taken via delayed imports.
At first, there is a VerifyVersionInfoA.
Xp fails, so eax is 0, Jnz after Test eax, eax is not taken -> Bad boy msg: Newer version of windows needed.
Ok, patched it.
Then, the error "Not enough storage is available to complete this operation" appears.
Why?
CocreateInstance (ole32.dll) fails with error_sxs_key_not_found, That leads directly to the error msg.
Inside that function (in ole32.dll) GetCurrentThread is called followed by OpenTreadToken.
It fails with ERROR_NO_TOKEN.
Till that point, loading a dx10 dll was not tried.
Can i break in Olly on a specific LastErr?
The imports to the dx 10 dlls are taken via delayed imports.
At first, there is a VerifyVersionInfoA.
Xp fails, so eax is 0, Jnz after Test eax, eax is not taken -> Bad boy msg: Newer version of windows needed.
Ok, patched it.
Then, the error "Not enough storage is available to complete this operation" appears.
Why?
CocreateInstance (ole32.dll) fails with error_sxs_key_not_found, That leads directly to the error msg.
Inside that function (in ole32.dll) GetCurrentThread is called followed by OpenTreadToken.
It fails with ERROR_NO_TOKEN.
Till that point, loading a dx10 dll was not tried.
Can i break in Olly on a specific LastErr?