L
L
Legebocker2018-12-02 17:39:55
reverse engineering
Legebocker, 2018-12-02 17:39:55

How are third-party applications for games / applications created?

Hello, I have been interested in the topic of reverse engineering for a long time, I have such a question. How do programmers create third-party programs for games or applications? Like cheats. Specifically, I'm interested in the following (everything on the topic, moderators, do not delete the question):
1. What is used to create these third-party programs? What language? I would be glad if you add literature to this language or this topic, I don’t know how to google.
2. How do they work? I read that these hackers need to find a variable or something and change it for their needs. But how does it work? I've seen programs that embed a dynamic library into the game, some didn't, I don't understand how they (programs) "docked" with the program and get everything they need from there.
I would appreciate your answers

Answer the question

In order to leave comments, you need to log in

3 answer(s)
S
Sergey Gornostaev, 2018-12-02
@EnDeRJaY

What is used to create these third party programs? What language?

Most often C.
Like this:
#include <stdio.h>
#include <windows.h>

int main() {
    char cmd[2048];
    int var = 5;

    printf("%p %d\n", &var, var);

    sprintf(cmd, "memchange.exe %lu %x", GetCurrentProcessId(), &var);
    system(cmd);

    printf("%p %d\n", &a, a);

    return 0;
}

#include <stdio.h>
#include <windows.h>

int main(int argc, char **argv) {
    DWORD pId;
    LPVOID pAddr;
    HANDLE pHandle;
    SIZE_T bytesWritten;
    int newValue = 42;

    sscanf(argv[1], "%lu", &pId);
    sscanf(argv[2], "%x", &pAddr);

    pHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pId);
    WriteProcessMemory(pHandle, pAddr, &newValue, sizeof(newValue), &bytesWritten);
    CloseHandle(pHandle);

    fprintf(stderr, "Written %u bytes to process %u.\n", bytesWritten, pId);

    return 0;
}

S
stratosmi, 2018-12-02
@stratosmi

1. Что используется для создания этих сторонних программ? Какой язык? Буду рад если добавите литературу к этому языку или этой теме, гуглить я не умею.
Linux/Windows -если игра локально запускается, а не в браузере - любой язык программирования общего назначения. Исторически сложилось, что чаще С. Но это не обязательно.
В браузере игра если - специфические требования удобнее с JS
Про Android/iOS - не скажу
Чаще патчат прямо в файле исполняемом.
Если хочешь наживую - изучай API для debug.

W
Warlodya, 2018-12-02
@Warlodya

https://www.unknowncheats.me/forum/index.php
Думаю этот ресурс больше подойдет. Там очень много руководств и примеров.
1. Cheat Engine, ollydbg, с/с++
2. Взаимодействуют с приложением либо внедряясь в его память (internal) либо работая отдельно от него через APi платформы (external).

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question