novicePriarie 发表于 2021-8-2 16:42

远程卸载动态库,线程无法退出

写了一个动态库,daemon.dll, 这个动态库的功能是开启一个线程,然后线程一直循环进行工作,直到接收到event事件通知线程才退出
把这个daemon.dll用 createremotethread 注入到其他线程, daemon.dll的dllmain中在DLL_PROCESS_ATTACH事件中,创建线程,开始工作,

然后再一次调用createremotethread 利用freelibrary远程卸载daemon.dll, daemon.dll的dllmain中在DLL_PROCESS_DETACH事件中,setevent , 并且waitforsingleobject等待线程退出,
目前遇到的问题是,daemon.dll中的线程无法结束了,感觉像是死锁了,不知道什么原因,请高人指点

武荣网络 发表于 2021-8-2 17:27

重启试了吗{:17_1087:}

novicePriarie 发表于 2021-8-2 21:34

武荣网络 发表于 2021-8-2 17:27
重启试了吗

重启我得卸载进程吗?还是?
目前我用的是快照那个方式,找到目标进程加载的我的dll, 然后创建远程线程freelibrary释放掉dll, 但是dll里边的线程死活无法退出,尝试过tetminatethread方法,但是线程可以被杀死,dll却永远也是放不掉了,很高奇怪
页: [1]
查看完整版本: 远程卸载动态库,线程无法退出