How Are Injectors Designed?

Helpful Instructions


How often do you use an injector to inject files? Every day? Did you know that the first DLL file injectors appeared in the public domain around 2010, more than 11 years ago. At that time, it was extremely difficult to download this program, since their development was just beginning, and they were created in small quantities, moreover, no one wanted to share the valuable script just like that. Nowadays, you can download Injectors completely free of charge and without any problems, today there are a huge number of them for different games and not only.

What is an injector?
First, let's remember what an Injector is? Injector is not a complicated program for injecting dynamic .dll files into a running application, adding your own or changing ready data from the RAM of the running process. Most often, this utility is used for online games, since it is easier to change the parameters for offline entertainment. Mostly with the help of injection, various cheats are introduced.

How does the injection take place?
  1. The application is launched, the settings of which will be changed by injecting the DLL file.
  2. The launched process, most often a game, is minimized and the injector is launched.
  3. In the script for embedding, the required file library with the .dll extension is selected, and the path to the folder with the .exe file of the game launch, into which the script is to be injected, is indicated.
  4. Press the "Inject" button, then you can expand the entertainment and see the changes.
How are injectors made?
To create a simple injection program, you need a Visual Studio component, in which the developer must write his code for the future script. Here's some sample code for the simplest injector:
#include <Windows.h>
#include <TlHelp32.h>
#include <iostream>
#include <io.h>

DWORD GetProcessByName(char * process_name)
{
    HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    PROCESSENTRY32 process;
    DWORD proc_id = 0;
    if (Process32First(snapshot, &process))
    {
        while (Process32Next(snapshot, &process))
        {
            if (_stricmp(process.szExeFile, process_name) == 0)
            {
                proc_id = process.th32ProcessID;
                break;
            }
        }
    }
    CloseHandle(snapshot);
    return proc_id;
}

bool FileExist(char* name)
{
    return _access(name, 0) != -1;
}

bool Inject(DWORD pID, char* path)
{
    HANDLE proc_handle;
    LPVOID RemoteString;
    LPVOID LoadLibAddy;
    if (pID == 0)
        return false;
    proc_handle = OpenProcess(PROCESS_ALL_ACCESS, false, pID);
    if (proc_handle == 0)
        return false;
    LoadLibAddy = (LPVOID)GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");
    RemoteString = VirtualAllocEx(proc_handle, NULL, strlen(path), MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
    WriteProcessMemory(proc_handle, RemoteString, path, strlen(path), NULL);
    CreateRemoteThread(proc_handle, NULL, NULL, (LPTHREAD_START_ROUTINE)LoadLibAddy, RemoteString, NULL, NULL);
    CloseHandle(proc_handle);
    return true;
}
When compiling this simple code, a multibyte encoding is specified in the settings, then the finished file is protected for less likelihood of detection by antiviruses. On this, our simple and working script has been successfully created, all that remains is to use it and try to inject any DLL into the running application.
Movie
No comments yet. Гость, would you like to leave the first comment?

Before publishing, I advise you to read the rules!

{login}
Your comment..