Загрузка...

Default injector on pluses

Thread in Programming created by zxcFlezyi Jul 13, 2025. (bumped Jul 15, 2025) 89 views

  1. zxcFlezyi
    zxcFlezyi Topic starter Jul 13, 2025 64 Oct 26, 2024
    хз, сделал его для гмода чтоб было легко есличе проходить проверки.


    Code
    #include <windows.h>
    #include <tlhelp32.h>
    #include <string>

    DWORD getprocid(std::wstring name) {
    DWORD pid = 0;
    HANDLE snap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (snap != INVALID_HANDLE_VALUE) {
    PROCESSENTRY32W pe;
    pe.dwSize = sizeof(pe);
    if (Process32FirstW(snap, &pe)) {
    do {
    if (!name.compare(pe.szExeFile)) {
    pid = pe.th32ProcessID;
    break;
    }
    } while (Process32NextW(snap, &pe));
    }
    CloseHandle(snap);
    }
    return pid;
    }

    bool injectdll(DWORD pid, const std::string& dllpath) {
    HANDLE p = OpenProcess(PROCESS_ALL_ACCESS, false, pid);
    if (!p) return false;

    void* mem = VirtualAllocEx(p, 0, dllpath.size() + 1, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
    if (!mem) return false;

    WriteProcessMemory(p, mem, dllpath.c_str(), dllpath.size() + 1, 0);

    HMODULE k32 = GetModuleHandleA("kernel32");
    FARPROC ll = GetProcAddress(k32, "LoadLibraryA");

    HANDLE t = CreateRemoteThread(p, 0, 0, (LPTHREAD_START_ROUTINE)ll, mem, 0, 0);
    if (!t) return false;

    WaitForSingleObject(t, INFINITE);
    VirtualFreeEx(p, mem, 0, MEM_RELEASE);
    CloseHandle(t);
    CloseHandle(p);
    return true;
    }

    int main() {
    std::string dll = "C:\\Program Files (x86)\\Steam\\steamapps\\common\\GarrysMod\\garrysmod\\data\\skydd.dll";
    DWORD pid = getprocid(L"gmod.exe");
    if (pid == 0) return 1;
    injectdll(pid, dll);
    return 0;
    }
     
Loading...
Top