C++ Как менять значение extern переменных?

Начинающий
Статус
Оффлайн
Регистрация
29 Июл 2022
Сообщения
101
Реакции[?]
28
Поинты[?]
29K
Привет. Есть библиотека hook.dll, в зависимости от bool переменных там вызываются методы.

Есть булевая переменная hooked:
1709144223384.png

После компиляции мне нужно найти эту переменную через exe, пока она заинжекчена в другой процесс, к примеру, назовём его "notepad.exe".

Или как проще, покажите как найти эту переменную пока она залоадена в мой же процесс, моего exe. Так будет проще показать. Мне главное понять принцип работы нахождения. В C++ я профан

Буду благодарен за подсказку.
 
ппоршень
Пользователь
Статус
Оффлайн
Регистрация
15 Фев 2020
Сообщения
278
Реакции[?]
49
Поинты[?]
38K
а не проще просто создать функцию возвращающую поинтер на переменную? а если ты профан в c++, то ты точно бы знал что переменные не экспортируются
 
Начинающий
Статус
Оффлайн
Регистрация
29 Июл 2022
Сообщения
101
Реакции[?]
28
Поинты[?]
29K
а не проще просто создать функцию возвращающую поинтер на переменную? а если ты профан в c++, то ты точно бы знал что переменные не экспортируются
1709145953703.png

Но ведь они экспортировались у меня после компиляции. В ida без pdb видно было название переменной. Ладно, не суть.

Я написал (гпт написал) такую функцию, которая указатели возвращает в массиве.

1709146050974.png

Но как вызвать её пока она в другом процессе через мой exe? Возможно ли это вообще?
 
Эксперт
Статус
Оффлайн
Регистрация
29 Мар 2021
Сообщения
1,605
Реакции[?]
607
Поинты[?]
48K
C++:
extern "C" bool hooked;

hooked = true;
не забудь что для этого ты должен эту либу линкануть (иметь .lib файл).
 
Пользователь
Статус
Оффлайн
Регистрация
25 Окт 2023
Сообщения
76
Реакции[?]
28
Поинты[?]
25K
C++:
extern "C" bool hooked;

hooked = true;
не забудь что для этого ты должен эту либу линкануть (иметь .lib файл).
у него переменная заинжекчена в другой процесс, ему с другого .exe надо это дело делать, а не с другой дллки
найди базовый адресс модуля, пройдись по export директории, и врайтни значение
 
Эксперт
Статус
Оффлайн
Регистрация
29 Мар 2021
Сообщения
1,605
Реакции[?]
607
Поинты[?]
48K
у него переменная заинжекчена в другой процесс
" После компиляции мне нужно найти эту переменную через exe, пока она заинжекчена в другой процесс, к примеру, назовём его "notepad.exe". "

да вроде нет, его либа, его и хосты
 
Пользователь
Статус
Оффлайн
Регистрация
25 Окт 2023
Сообщения
76
Реакции[?]
28
Поинты[?]
25K
" После компиляции мне нужно найти эту переменную через exe, пока она заинжекчена в другой процесс, к примеру, назовём его "notepad.exe". "

да вроде нет, его либа, его и хосты
" После компиляции мне нужно найти эту переменную через exe, пока она заинжекчена в ДРУГОЙ процесс, к примеру, назовём его "notepad.exe". "
 
FanHack Team
Пользователь
Статус
Оффлайн
Регистрация
26 Сен 2017
Сообщения
72
Реакции[?]
51
Поинты[?]
0
Привет. Есть библиотека hook.dll, в зависимости от bool переменных там вызываются методы.

Есть булевая переменная hooked:
Посмотреть вложение 271603

После компиляции мне нужно найти эту переменную через exe, пока она заинжекчена в другой процесс, к примеру, назовём его "notepad.exe".

Или как проще, покажите как найти эту переменную пока она залоадена в мой же процесс, моего exe. Так будет проще показать. Мне главное понять принцип работы нахождения. В C++ я профан

Буду благодарен за подсказку.
Через Удаленный поток CreateRemoteThread. Для примера возьми обычный инжектор через LoadLibrary. А чтобы прочитать ретурн нужно получить из GetExitCodeThread
 
Начинающий
Статус
Оффлайн
Регистрация
29 Июл 2022
Сообщения
101
Реакции[?]
28
Поинты[?]
29K
" После компиляции мне нужно найти эту переменную через exe, пока она заинжекчена в ДРУГОЙ процесс, к примеру, назовём его "notepad.exe". "
Сонный был, я сначала написал там длл, а потом изменил на переменную. Норм
 
FanHack Team
Пользователь
Статус
Оффлайн
Регистрация
26 Сен 2017
Сообщения
72
Реакции[?]
51
Поинты[?]
0
Сонный был, я сначала написал там длл, а потом изменил на переменную. Норм
Посмотреть вложение 271606

Но как вызвать её пока она в другом процессе через мой exe? Возможно ли это вообще?
Можешь так сделать. CreateRemoteThread на get_variables потом GetExitCodeThread он вернет адрес структуры в процессе. Ну и потом через ReadProcessMemory по этому адресу

Но перед GetExitCodeThread нужно подождать поток когда он закончит WaitForSingleObject(hThread, INFINITE);
 
Пользователь
Статус
Оффлайн
Регистрация
25 Окт 2023
Сообщения
76
Реакции[?]
28
Поинты[?]
25K
Можешь так сделать. CreateRemoteThread на get_variables потом GetExitCodeThread он вернет адрес структуры в процессе. Ну и потом через ReadProcessMemory по этому адресу

Но перед GetExitCodeThread нужно подождать поток когда он закончит WaitForSingleObject(hThread, INFINITE);
GetExitCodeThread не возвращает значение из функции
 
FanHack Team
Пользователь
Статус
Оффлайн
Регистрация
26 Сен 2017
Сообщения
72
Реакции[?]
51
Поинты[?]
0
Сверху Снизу