ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

卸载dll

2021-01-09 02:01:33  阅读:234  来源: 互联网

标签:hModule 句柄 dll FreeLibrary 卸载 NULL


卸载dll

在注入dll后,类似于火绒剑这种安全软件,肯定会查到注入,所以这里肯定要卸载dll来防止被发现

自加自卸载

对于自己的程序自己添加,自己卸载dll还是比较轻松,只需要一个FreeLibrary的API就好了下面直接上源代码

#include"vs_plugin_charu.h"
#include<Windows.h>
#include<stdio.h>

typedef void(*p)();
int main()
{
HMODULE hModule = LoadLibrary("vs_plugin_charu_dll");
if (hModule == NULL)
{
MessageBox(NULL, TEXT("加载dll出错"), TEXT("加载dll"), MB_OK);
return -1;
}
p msg = (p)GetProcAddress(hModule,"charu_dll_test");
msg();
FreeLibrary(hModule);
getchar();
return 0;

}

加载dll后用FreeLibrary直接卸载掉自己的dll

卸载任意的dll

这里的原理是利用到了远程注入dll和FreeLibrary函数来处理。

首先需要的是远程注入dll,然后再执行FreeliBrary函数,但是FreeLibrary函数需要的参数是句柄,所以这里采用CE来查找dll的地址来处理,这里其实是涉及到了多进程的处理,具体的可以查看下在visual下写多线程的教程

void UnInjectDLL(int pid)
{
//获取进程句柄,得到进程的所有权限,不用在进程中创建子进程来获取句柄所以第二个参数传NULL就好
//第三个表示进程的ID
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, NULL, pid);

//获取要卸载的函数句柄charu_dll_test



//获取LoadLibraryA的dll
HMODULE hModule = LoadLibrary(TEXT("Kernel32.dll"));
//将kernel32.dll中的LoadLibraryA函数的地址获取
//获取kernel32.dll中的FreeLibrary函数的I值
LPTHREAD_START_ROUTINE lpStartAddress = (LPTHREAD_START_ROUTINE)GetProcAddress(hModule, "FreeLibrary");
LPTHREAD_START_ROUTINE pReturnAddress = 0x00000;//这里写函数的地址
//申请一块虚拟内存的地址给传入的函数参数来处理,然后还需要给参数赋值
//相当于申明一个变量后还要给变量赋值才能使用
// LPVOID pReturnAddress = VirtualAllocEx(hProcess, NULL, strlen(path) + 1, MEM_COMMIT, PAGE_READWRITE);
// WriteProcessMemory(hProcess, pReturnAddress, path, strlen(path) + 1, NULL);

//创建远程线程
//第一个参数表示进程句柄,第二个第三个采用默认值处理
//第四个参数表示要调用的函数地址
//第五个参数表示第四个参数要调用的函数的参数
HANDLE hThread = CreateRemoteThread(hProcess, NULL, 0, lpStartAddress, pReturnAddress, 0, NULL);
}

卸载Foxit阅读器dll

首先查看Foxit有哪些dll

 

 

就选这个ntdll.dll好了,删掉后福瑞没了,说明这个还真不能卸载掉

标签:hModule,句柄,dll,FreeLibrary,卸载,NULL
来源: https://www.cnblogs.com/beautiful7/p/14253948.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有