If Windows 2003 SP1 would run the same way as Windows XP SP2, then SoftICE would run, since it runs well on WinXP SP2 for me.
I don't have Windows 2003 SP0, since the CD I copied was the official Windows 2003 CD with SP1 already integrated. (no homemade "all-in-one" crap from the internet)
I'm no MSDN subscriber, so I don't have access to the debug version of Windows 2003 SP1.
I checked at what place the code is crashing, but even if it's totally clear what the code does (no unknown variables), I don't understand why it works on Windows XP but not on Windows 2003.
Code:
xor eax,eax
add eax,[000130C7] ; hard coded value: 120h
add eax,[000130CB] ; hard coded value: 4h
mov eax,fs:[eax]
add eax,[000130CF] ; hard coded value: 34h
add eax,[000130D3] ; hard coded value: 10h
mov eax,[eax]
add eax,[000130D7] ; hard coded value: 18h
mov eax,[eax] ; <-- crash location
mov [edi][1C],eax
retn
So, in short one could write is as:
Code:
mov eax, fs:[124h]
mov eax, [eax+44h]
mov eax, [eax+18] ; <-- crash location
Even if I'm not aware what value "fs" has a this time, I don't expect it to be the reason for the crash.