EnDeRJaY
@EnDeRJaY
cout >> "Hello World!" >> endl;

Как создают сторонние приложения к играм/приложениям?

Здравствуйте, давно интересуюсь темой реверс-инжиниринга, появился такой вопрос. Как программисты создают сторонние программы для игр или приложений?Типо читов. Конкретно меня интересует следующее (всё по теме, модеры, не удаляйте вопрос):

1. Что используется для создания этих сторонних программ? Какой язык? Буду рад если добавите литературу к этому языку или этой теме, гуглить я не умею.
2. Как они работают? Я читал, что этим хацкерам надо найти переменную или ещё что-нибудь и поменять для своих нужд. Но как это работает? Я видел программы которые внедряют динамическую библиотеку в игру, некоторые этого не делали, я не понимаю как они(программы) "состыковываются" с программой и выуживают оттуда всё что надо.

Буду признателен вашим ответам
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Assembler
Седой и строгий
Что используется для создания этих сторонних программ? Какой язык?

Чаще всего C.

Как они работают?

Например так:

victim.c
#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;
}

memchange.c
#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;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@stratosmi
1. Что используется для создания этих сторонних программ? Какой язык? Буду рад если добавите литературу к этому языку или этой теме, гуглить я не умею.

Linux/Windows -если игра локально запускается, а не в браузере - любой язык программирования общего назначения. Исторически сложилось, что чаще С. Но это не обязательно.

В браузере игра если - специфические требования удобнее с JS
Про Android/iOS - не скажу

2. Как они работают? Я читал, что этим хацкерам надо найти переменную или ещё что-нибудь и поменять для своих нужд. Но как это работает? Я видел программы которые внедряют динамическую библиотеку в игру, некоторые этого не делали, я не понимаю как они(программы) "состыковываются" с программой и выуживают оттуда всё что надо.

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

Войдите, чтобы написать ответ

Похожие вопросы