bedrock
February 17th, 2004, 11:23
I read the other day that IceExt 0.57 (latest) is not working with DS 3.1 and I have not seen sign from Sten of update for quite some time, I dont know reasons, maybe he is busy with others, so i thought i would take a look...
Well i learnt a few things, and mostly now i learnt i am not skilled enough to solve this problem myself. But for starters i would like to say how far i have got to this point.
When you try and load IceExt on DS31, it fails trying to find softice Expression2Integer function pointer. Now looking at IceExt code shows there is a search function and some byte patterns it looks for, this function already has different byte patterns for DS < 3 and also for DS30 (you can see these in IceExt softice.h file), so i thought numega must of changed signature for this function again, so through comparing the ntice.sys files from DS30 and DS31 i found the Expression2Integer function and added the changes for new search pattern to IceExt code, but now it fails at next place which is looking for ActivateBPs function pointer, so i try and find this also, i add changed byte pattern and continue....
Well next IceExt is fails on ActivateHooks function pointer, but now i am stuck cause from comparing difference's and running old and new ntice.sys through IDA i can not locate this function in SI, i comment IceExt code out for now, not supprising it fails on DeactivateHooks also.
Well for now i have a butchered (M$ comment would say HACK
) version of IceExt which loads but is not very functional under DS31. Maybe some others can better dissasemble ntice.sys and figure out some of this stuff. I think together we should be able to fix up IceExt, or maybe even the great Sten will update this great tool for all to use with new driver studio.
--
bedrock
Well i learnt a few things, and mostly now i learnt i am not skilled enough to solve this problem myself. But for starters i would like to say how far i have got to this point.
When you try and load IceExt on DS31, it fails trying to find softice Expression2Integer function pointer. Now looking at IceExt code shows there is a search function and some byte patterns it looks for, this function already has different byte patterns for DS < 3 and also for DS30 (you can see these in IceExt softice.h file), so i thought numega must of changed signature for this function again, so through comparing the ntice.sys files from DS30 and DS31 i found the Expression2Integer function and added the changes for new search pattern to IceExt code, but now it fails at next place which is looking for ActivateBPs function pointer, so i try and find this also, i add changed byte pattern and continue....
Well next IceExt is fails on ActivateHooks function pointer, but now i am stuck cause from comparing difference's and running old and new ntice.sys through IDA i can not locate this function in SI, i comment IceExt code out for now, not supprising it fails on DeactivateHooks also.
Well for now i have a butchered (M$ comment would say HACK
) version of IceExt which loads but is not very functional under DS31. Maybe some others can better dissasemble ntice.sys and figure out some of this stuff. I think together we should be able to fix up IceExt, or maybe even the great Sten will update this great tool for all to use with new driver studio.--
bedrock

Has anyone tried to contact Sten about this, without getting any replies?
(ppl using ds 3.1 might also be able to review his code)
;
... i was thinking of actually print out a debug msg saying Softice detection by nmtrans.dll etc... so hopefully i wont be fooled if protector uses nmtrans.dll exported function... the thing is that even iceext debug print is also to sice command window, which is stored in sice log so if i cant access log file, i wont even see any of iceext debug msg...