首页
社区
课程
招聘
6
[旧帖] [原创]卸载其他进程的DLL 0.00雪花
发表于: 2012-5-27 15:56 2151

[旧帖] [原创]卸载其他进程的DLL 0.00雪花

2012-5-27 15:56
2151

菜鸟一枚,各位大牛勿喷。。。虽然之前有人在黑防上发表过类似的文章,但是木有给出具体代码。。。我也是近来写出来了,才发现黑防上早有人发表过类似的文章了,泪奔啊。。。
闲话少说,先简单介绍一下卸载其他进程DLL模块的思路,主要借助远程线程注入技术,在目标进程中创建一个线程,线程函数为FreeLibrary函数,参数为通过模块快照获取的指定DLL的模块句柄,这样就可以卸载掉啦。。。好吧。。。我表达能力不够好。。。直接上代码。。。支持共享

bool  FreeRemoteDLLs(DWORD dwProcessID,LPCTSTR lpModuleName = TEXT("WatchDog.dll"))
{
        MODULEENTRY32 stModuleEntry = {0};
        stModuleEntry.dwSize = sizeof(MODULEENTRY32);
        HANDLE hModule = NULL;
        HANDLE hModuleSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,dwProcessID);
        if(hModuleSnapShot == INVALID_HANDLE_VALUE)
        {
                return false;
        }
        if(Module32First(hModuleSnapShot,&stModuleEntry))
        {
                do{
                        if(lstrcmpi(stModuleEntry.szModule,lpModuleName) == 0)
                        {
                                hModule = stModuleEntry.hModule;
                                break;
                        }
                        continue;
                }while(Module32Next(hModuleSnapShot,&stModuleEntry));
                if(hModule == NULL)
                {
                        return false;
                }
                CloseHandle(hModuleSnapShot);
        }
        HANDLE hProcess = OpenProcess(PROCESS_CREATE_THREAD        | PROCESS_VM_OPERATION        | PROCESS_VM_WRITE,       
                                                        false,
                                                        dwProcessID);
        if(!hProcess)
        {
                return false;
        }
        LPTHREAD_START_ROUTINE lpFreeDLLs = (LPTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle(TEXT("Kernel32.dll")),"FreeLibrary");
        HANDLE hThread = CreateRemoteThread(hProcess,
                                                        NULL,
                                                        0,
                                                        lpFreeDLLs,
                                                        hModule,
                                                        0,
                                                        NULL);
        WaitForSingleObject(hThread,INFINITE);
        return true;
}


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

收藏
免费 6
支持
分享
赞赏记录
参与人
雪币
留言
时间
伟叔叔
为你点赞~
2024-5-31 04:54
心游尘世外
为你点赞~
2024-5-31 01:38
QinBeast
为你点赞~
2024-5-31 01:29
飘零丶
为你点赞~
2024-3-28 02:59
shinratensei
为你点赞~
2024-1-30 00:22
PLEBFE
为你点赞~
2023-3-7 00:43
最新回复 (0)
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册