How to unload a DLL using SoftICE



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.

Old KB# 11750
Comment List
Related Discussions