首页
社区
课程
招聘
[求助]如何安全卸载进程中的非必要模块?
发表于: 2009-8-15 16:19 5552

[求助]如何安全卸载进程中的非必要模块?

2009-8-15 16:19
5552
一般卸载的时候,如果线程正在运行。就会挂掉。

觉得2点解决办法,
1。遍历线程,找出属于那个模块的线程,然后terminate掉,

2。给目标安装一全局SEH。

但是中间遇到些麻烦。

不知道有没朋友具体实现过,大家探讨下

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 254
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
哇靠。半夜来顶下。
2009-8-16 00:54
0
雪    币: 522
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
不知所云。。。
2009-8-16 04:51
0
雪    币: 254
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
。。。原来是我说的不清楚啊?

例如:我们的正在运行的一个进程,被注入了一个木马的dll.

这个dll会有一个或者几个线程在不停的监视着我们的系统,

如果这时候强行卸载这个dll.主进程也会挂掉。

所以我想出以上两个办法。。

不知道各位看官不否听明白了?
2009-8-16 12:06
0
雪    币: 393
活跃值: (100)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
5
找出属于那个模块的线程,然后terminate掉,


有线程在那运行 那哪能叫"非必要模块"?
2009-8-16 13:09
0
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
6
理解问题,不懂解决。坐等牛人来回答
2009-8-16 13:16
0
雪    币: 254
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
那个是木马dll的话,你说是必要的吗?

测试了上面说的两种办法,应该都是可行的

只是查找线程所属模块的时候估计就只有旧贴里面的一个什么zwquery函数 9号功能吧

另外,安装异常处理的时候,打算注入DLL安装,不过我现在又想把函数体直接写进去,还没这样做过,找找资料
2009-8-16 13:29
0
雪    币: 254
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
抄下人家代码,终止对应的线程算了。- -|+

MFC当个个小工具- -
上传的附件:
2009-8-16 15:49
0
雪    币: 251
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
用SuspendThread 暂停所有线程
读取Dll的所有内容
CreateRemoteThread(FreeLibrary,(LPVOID)ModuleHandle);//其他参数略
多试几次直到Dll卸载
在老地方VirtualAllocEx,然后复制回去
最后ResumeThread
存在的问题是可能其他线程正拿着 LoaderLock  就会死锁
这个思路怎么样?
2009-8-16 17:24
0
雪    币: 522
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
模块在卸载前会触发unload事件  
主进程挂掉 有可能是作者故意为之  结束它创建的线程是没用的  

直接阻止系统进线程创建 卸载后瞬间把他删掉  在次运行就不会加载了
2009-8-16 17:40
0
游客
登录 | 注册 方可回帖
返回
//