远程DLL注入工具 控制台无UI

功能介绍

这是一个DLL注入工具。代码的美感可能会影响到大家的心情,程序中使用了远程现成注入的方式,将动态链接库(DLL)注入到其他程序进程中,来完成一些操作。

程序功能:

  • 向目标进程注入DLL文件

使用方法

  • 打开程序 输入目标成的进程id (可在任务管理器中查看)
  • 将DLL文件所在路径填写进去 即可
    如出现错误,可根据错误码自行查错
    确保是否成功注入 可利用 火绒剑 工具 查看对应程序模块

代码部分

#include <Windows.h>
#include <iostream>
#include <cstring>
using namespace std;
string::size_type pos = 0;
string str_arr;
int pID;
void MenuTools();
void Inject(int pid,char * Path);
void UnInjectDLL(int Pid);
void InjectInfo();
void Info();
int main() {
    //设置控制台大小
    system("mode con cols=55 lines=10  ");
    //设置控制台字体颜色
    system("color a");  
    //设置控制台标题
    SetConsoleTitle("DLL注入器v1.0 XinuxQQ:913499532");   
    int enter;
    while (true)
    {
        system("cls");
        MenuTools();
        cin >> enter;
        switch (enter)
        {
        case 1:
            system("cls");
            InjectInfo();
            break;
        case 2:
            system("cls");
            {
                cout << "输入卸载进程的PID:";
                cin >> pID;
                UnInjectDLL(pID);
            }
            break;
        case 0:
            exit(-1);
            break;
        default:
            cout << "输入有误!重新输入!" << endl;
            break;
        }
        system("pause");
    }
}

//注入DLL
void Inject(int pID ,char * Path) {
    //获取进程句柄
    HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pID);
    //申请一块虚拟内存给DLL路径
    LPVOID pReturnAddres = VirtualAllocEx(hProcess, NULL, strlen(Path) + 1, MEM_COMMIT, PAGE_READWRITE);
    //把DLL所在位置 写到上边那块申请的虚拟内存中 
    WriteProcessMemory(hProcess, pReturnAddres, Path, strlen(Path) + 1, NULL);
    //获取LoadLibraryA函数的地址
    HMODULE hModule = LoadLibrary("Kernel32.dll");
    GetProcAddress(hModule,"LoadLibraryA");
    //创建远程线程
    HANDLE hThread = CreateRemoteThread(hProcess, NULL,0,(LPTHREAD_START_ROUTINE)GetProcAddress(hModule, "LoadLibraryA"), pReturnAddres, 0, NULL);
    if (hThread == NULL)
    {
        system("cls");
        cout << "--------------------www.xinux.vip---------------------" << endl;
        cout << "[-] 注入失败,错误信息:" << GetLastError() << endl;
        return;
    }

    //防止程序线程阻塞
    WaitForSingleObject(hThread, 2000);
    //防止内存泄漏
    CloseHandle(hThread);
    CloseHandle(hProcess);
    //FreeLibrary(,)
    cout << "[+] 注入成功!" << endl;
}
//Menu
void UnInjectDLL(int Pid) {
    cout << "--------------------www.xinux.vip---------------------" << endl;
    //获取进程句柄
    HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pID);
    //申请一块虚拟内存给DLL路径 这个卸载直接寻址KERNEL32.DLL基址
    LPVOID pReturnAddres = (LPVOID)0x7ae00000;   //VirtualAllocEx(hProcess, NULL, strlen(Path) + 1, MEM_COMMIT, PAGE_READWRITE);

    //获取LoadLibraryA函数的地址
    //HMODULE hModule = LoadLibrary("Kernel32.dll");//0x76370000
    //GetProcAddress(hModule, "LoadLibraryA");      //0x763889c0
    //创建远程线程
    HANDLE hThread = CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)0x763889c0, pReturnAddres, 0, NULL);
    if (hThread == NULL)
    {
        cout << "卸载失败,错误信息:" << GetLastError() << endl;
        return;
    }

    //防止程序线程阻塞
    WaitForSingleObject(hThread, 2000);
    //防止内存泄漏
    CloseHandle(hThread);
    CloseHandle(hProcess);
    //FreeLibrary(,)
    cout << "卸载DLL成功!" << endl;
}
void InjectInfo() {
    //Menu();
    cout << "--------------------www.xinux.vip---------------------" << endl;
    cout << "注入目标的进程Pid:";
    cin >> pID;
    cout << "注入DLL所在的路径:";
    cin >> str_arr;
    //cout << "原路径:" << str_arr << endl;
    while ((pos = str_arr.find("\\", pos)) != string::npos)
    {
        str_arr.insert(pos, "\\");
        pos = pos + 2;

    }
    //cout << "现路径:" << str_arr << endl;
    cout << "尝试向进程ID:" << pID << " 注入InjectDLL..." << endl;
    Inject(pID, (char*)str_arr.c_str());
}
void MenuTools() {
    cout << "--------------------www.xinux.vip---------------------" << endl;
    //cout << "Remote DLL Inject Tools" << endl;
    cout << "[1].远程注入DLL" << endl;
    cout << "[2].远程卸载DLL(目前存在Bug)" << endl;
    cout << "[0].退出" << endl;
    cout << "命令:" ;
}

下载:

不会编译的,可以直接下载成品,手搓代码不易,收个服务器维护费谢谢,付款即可下载DLL注入器:

价格: 4.88 元
VIP会员免费终身会员免费
温馨提示:登录付款后可永久阅读隐藏内容。 付费可读
版权属于:刘亦菲
本文链接:https://xinux.top/archives/DLLInject.html
本站未注明转载的文章均为原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!