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

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

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

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

Буду признателен вашим ответам
  • Вопрос задан
  • 152 просмотра
Решения вопроса 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).
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
29 мар. 2024, в 10:00
10000 руб./за проект
29 мар. 2024, в 09:59
750 руб./в час
29 мар. 2024, в 09:55
50000 руб./за проект