Загрузка...

Инжектор на с++

Тема в разделе C/C++ создана пользователем corvex 26 май 2022. 331 просмотр

  1. corvex
    corvex Автор темы 26 май 2022 0 26 янв 2022
    Как пофиксить предупреждения?:interesting:
    [IMG] [IMG]
    C
    #include <iostream>
    #include <Windows.h>
    using namespace std;

    int InjectDLL(DWORD, char*);
    int getDLLpath(char*);
    int getPID(int*);
    int getProc(HANDLE*, DWORD);

    int getDLLpath(char* dll)
    {
    std::cout << "Please enter the path to your dll\n";
    cin >> dll;
    return 1;
    }

    int getPID(int* PID)
    {
    cout << "Please Enter the PID to your game process\n";
    cin >> *PID;
    return 1;
    }

    int getProc(HANDLE* handleToProc, DWORD pid)
    {
    *handleToProc = OpenProcess(PROCESS_ALL_ACCESS, false, pid);
    DWORD dwLastErrror = GetLastError();

    if (*handleToProc == NULL)
    {
    std::cout << "Unable to open game process. \n";
    return -1;
    }
    else
    {
    std::cout << "Game process opened.\n";
    return 1;
    }
    }

    int InjectDLL(DWORD PID, char* dll)
    {
    HANDLE handleToProc;
    LPVOID LoadLibAddr;
    LPVOID baseAddr;
    HANDLE remThread;

    // Получить длину dll
    int dllLength = strlen(dll) + 1;

    // Обработка процесса
    if (getProc(&handleToProc, PID) < 0)
    return -1;

    // Загрузить kernel 32 библиотеку
    LoadLibAddr = (LPVOID)GetProcAddress(GetModuleHandleA("kernel32.dll"), "LoadLibraryA");

    if (!LoadLibAddr)
    return -1;

    baseAddr = VirtualAllocEx(handleToProc, NULL, dllLength, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);

    if (!baseAddr)
    return -1;
    //Записываем путь к DLL
    if (!WriteProcessMemory(handleToProc, baseAddr, dll, dllLength, NULL))
    return -1;

    // Создаем удаленный поток
    remThread = CreateRemoteThread(handleToProc, NULL, NULL, (LPTHREAD_START_ROUTINE)LoadLibAddr, baseAddr, 0, NULL);

    if (!remThread)
    return -1;

    WaitForSingleObject(remThread, INFINITE);

    VirtualFreeEx(handleToProc, baseAddr, dllLength, MEM_RELEASE);

    //Закрываем Инжектор
    if (CloseHandle(remThread) == 0)
    {
    std::cout << "Injection Failed.\n";
    return -1;
    }

    if (CloseHandle(handleToProc) == 0)
    {
    std::cout << "Injection Failed.\n"
    ; return -1;
    }

    }

    int main()
    {
    SetConsoleTitle(L"corvex injector")

    ; int PID = -1;
    char* dll = new char(255);

    getDLLpath(dll);
    getPID(&PID);

    InjectDLL(PID, dll);
    system("pause");

    return 0;
    }
     
  2. unnamed001
    unnamed001 27 май 2022 5996 2 сен 2020
    писать safe код)
     
  3. Bunnyscript
    ?
    [IMG]
     
    27 май 2022 Изменено
Top
Загрузка...