• XSS.stack #1 – первый литературный журнал от юзеров форума

Нужна помощь по созданию чита

Onyx1050

(L3) cache
Пользователь
Регистрация
03.05.2024
Сообщения
175
Реакции
8
Здравствуйте не могу разобратся с одной проблемой
изучаю создания читов от этого человека https://xssforum7mmh3n56inuf2h73hvhnzobi7h2ytb3gvklrfqm7ut3xdnyd.onion/threads/104114/
в этой стать на даный момент мне не понятно

Далее начинается самое важное. Нам нужно получить дескриптор окна по его названию, чтобы далее получить идентификатор процесса, а уже с помощью идентификатора получить права доступа к процессу игры.

Давайте эти действия вынесем в отдельную функцию и назовем ее GetAccessProcess. Она будет принимать название окна процесса. P.S. Названия для переменных и функций давайте логичные, чтобы вам было понятно для чего они служит.

Хорошо, теперь при помощи функции из WinApi - FindWindowA найдем дескриптор окна по его названию и сохраним в нашу переменную targetWindow.
Документация по функции FindWindowA из MSDN.



C++:


targetWindow = FindWindowA(0, targetName);

Как правильно найти дескриптор окна. что это такое. и где и как его найти????? И что вписывать в код по пополочкам по строчке всего исходного кода можете пожалуйста мне разжевать что куда пишется и для чего пожалуйста
 
А по подробней можно что мне нужно подставить здесь?

targetWindow = FindWindowA(0, targetName);

и что мне нужно записать здесь и как правильно это записать что не было ошибок?

if (targetWindow == NULL)
{
cout << "Не удалось найти окно игры!" << endl;
}
 
1) Идешь в гугл и пишешь "FindWindowA msdn"
2) Открываешь доку
3) Читаешь описание и абзацы "Parameters", "Return value"
4) Профит

В чем трудность то?
Там же написано прям что это
Код:
[in, optional] lpWindowName

Type: LPCTSTR

The window name (the window's title). If this parameter is NULL, all window names match.
Или два предложения это уже непреодолимая трудность?

И тебе необязательно искать PID по окну, можешь процессы перебрать, но грузить не буду
 
1) Идешь в гугл и пишешь "FindWindowA msdn"
2) Открываешь доку
3) Читаешь описание и абзацы "Parameters", "Return value"
4) Профит

В чем трудность то?
Там же написано прям что это
Код:
[in, optional] lpWindowName

Type: LPCTSTR

The window name (the window's title). If this parameter is NULL, all window names match.
Или два предложения это уже непреодолимая трудность?

И тебе необязательно искать PID по окну, можешь процессы перебрать, но грузить не буду
Я не могу понять логики кода как что с чем взаимодействует по сути сейчас методом тыка разбираюсь что и куда.
 
я
1) Идешь в гугл и пишешь "FindWindowA msdn"
2) Открываешь доку
3) Читаешь описание и абзацы "Parameters", "Return value"
4) Профит

В чем трудность то?
Там же написано прям что это
Код:
[in, optional] lpWindowName

Type: LPCTSTR

The window name (the window's title). If this parameter is NULL, all window names match.
Или два предложения это уже непреодолимая трудность?

И тебе необязательно искать PID по окну, можешь процессы перебрать, но грузить не буду
Я уже заебался читать ее 150 раз и не могу понять логики как пользоватся этой функцией.
 
Я не могу понять логики кода как что с чем взаимодействует по сути сейчас методом тыка разбираюсь что и куда.
я

Я уже заебался читать ее 150 раз и не могу понять логики как пользоватся этой функцией.
Потому что ты взял задачу не по силам и взял какой-то сомнительный гайд, вместо того, чтобы изучить литературу от авторитетных источников (например рихтера).

Попробую объяснить на пальцах.
Есть процесс (в твоём случае это игра), у этого процесса есть окно. Чтобы создать окно, нужно вызвать CreateWindow*. Эта функция вернёт тебе HWND. HWND это дескриптор окна.
Со словом "дескриптор" ты уже должен быть знаком. Ты спросишь, а нахера нужен этот дескриптор окна? Он нужен, чтобы управлять окном. Окно принимает сообщения и обрабатывает их.
Чтобы отправить сообщения окну, нужно как-то идентифицировать окно. Это как-раз и делается через дескриптор. У тебя может быть несколько одинаковых окон, но у них будут разные дескрипторы. Как раз этот дескриптор ты и пытаешься получить через FindWindow.
Возвращаемся к нашим баранам, окно просто так не существует, оно привязано к процессу. Чтобы получить PID, к которому привязано окно нужно воспользоваться функцией GetWindowThreadProcessId (как ты видишь в гайде, который ты скинул, она используется). Получив PID, ты уже можешь попробовать открыть дескриптор к процессу (HANDLE) через OpenProcess с нужными тебе правами.
Конечная цель это получить хэндл к процессу, чтобы можно было читать/записывать виртуальную память. Ты можешь достичь этого множеством разных путей, вплоть до того, что ты можешь избегать вызова OpenProcess к конкретно этому процессу, но это уже частный случай скорее всего.

Ознакомься лучше с литературой по Winapi, с устройством памяти и думай чуть шире.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх