• 卸载dll


    卸载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好了,删掉后福瑞没了,说明这个还真不能卸载掉

  • 相关阅读:
    速耀达数据库安装(速达二次开发)
    WCF错误:由于目标计算机积极拒绝,无法连接;127.0.0.1:3456
    HTTP 错误 403.14
    速耀达企业ERP试用说明流程
    速耀达ERP手机App开始内测,完全兼容速达5000以上的任何版本
    新版速云达App即将发布内测
    如何解决速达软件出现主键、单号、编码相同的报错
    NTP服务器搭建
    linux操作系统不重启添加raid0步骤
    反向代理负载均衡调度:nginx
  • 原文地址:https://www.cnblogs.com/beautiful7/p/14253948.html
Copyright © 2020-2023  润新知