When I do MOD in SoftICE, I see my DLL still loaded. How can I unload it?
At current moment, it is not possible to force a DLL to unload it from the memory using SoftICE.
If, for instance, you have a reference count to an ActiveX DLL server, then you must programatically release the reference. If you NEED to unload the dll, you can create a fake stub in that DLL that calls FreeLibrary on yourself, set a breakpoint at the ret instruction of the function. Then reset EIP and have it start into this mini-function. Of course, the chances of causing data corruption and a crash are fairly high. Further, since HMODULES are reference counted, the OS will only decrement the count, and you may need to call this function repeatedly.