首页
社区
课程
招聘
[求助]如何通过VC编程卸载其它进程的DLL模块?
发表于: 2007-6-1 11:01 10302

[求助]如何通过VC编程卸载其它进程的DLL模块?

2007-6-1 11:01
10302
如何通过VC编程卸载其它进程的DLL模块,有没有什么好的方法,请高手点拔...

谢谢...

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
NaX
2
如果你知道怎么远程注入 那么也可以用同样的方法进行远程卸载!
///////////////////////////////////////////////////////////
PTHREAD_START_ROUTINE pfnThreadRtn=(PTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle("kernel32"),"FreeLibrary");
hThread=CreateRemoteThread(hProcess,NULL,0,pfnThreadRtn,me.modBaseAddr,0,NULL);
//////////////////////////////////////////////////////////////////////////
除非你知道卸载那个DLL是安全的,否则很容易造成目标进程崩溃
2007-6-1 11:52
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
多谢指点,能否再说详细一点...

创建远程线程之后,是否还要进行其它操作...还是下面一句就将模块卸载了.
CreateRemoteThread(hProcess,NULL,0,pfnThreadRtn,me.modBaseAddr,0,NULL);
(VC中好像没有me关键字吧,modBaseAddr是否指的要卸载模块的加载基址?)
2007-6-1 14:05
0
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
NaX
4
MODULEENTRY32 me;
2007-6-1 14:12
0
雪    币: 375
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
5

先用系统快照把目标进程中模块的句柄弄出来。
然后创建远程线程,用FreeLibrary就可以了。
2007-6-2 10:53
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢指点

我试了一下,确实可以,但是好像不能强制卸载,从我调试程序的结果看来,如果目标进程已经加载了这个模块,但没有调用它,是可以卸载的。但是若目标进程正在调用这个模块,就无法卸载。

我想像IceSword那样,有强制卸载的功能,哪怕引起目标进程崩溃,也可以接受。

不知这种方法如何实现...?
2007-6-2 20:11
0
雪    币: 229
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
>我想像IceSword那样,有强制卸载的功能,哪怕引起目标进程崩溃,也可以接受。
不知这种方法如何实现...?

调用ntdll.dll 导出的 NtUnmapViewOfSection( HANDLE hProcess, PVOID Address)参数1句柄,参数2基地址
2007-8-27 16:34
0
游客
登录 | 注册 方可回帖
返回
//