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

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

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


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

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

Буду благодарен за подсказку.
 
  • Мне нравится
Реакции: mj12
а не проще просто создать функцию возвращающую поинтер на переменную? а если ты профан в c++, то ты точно бы знал что переменные не экспортируются
 
а не проще просто создать функцию возвращающую поинтер на переменную? а если ты профан в c++, то ты точно бы знал что переменные не экспортируются
1709145953703.png


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

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

1709146050974.png


Но как вызвать её пока она в другом процессе через мой exe? Возможно ли это вообще?
 
  • Мне нравится
Реакции: mj12
C++:
Expand Collapse Copy
extern "C" bool hooked;

hooked = true;

не забудь что для этого ты должен эту либу линкануть (иметь .lib файл).
 
C++:
Expand Collapse Copy
extern "C" bool hooked;

hooked = true;

не забудь что для этого ты должен эту либу линкануть (иметь .lib файл).
у него переменная заинжекчена в другой процесс, ему с другого .exe надо это дело делать, а не с другой дллки
найди базовый адресс модуля, пройдись по export директории, и врайтни значение
 
у него переменная заинжекчена в другой процесс
" После компиляции мне нужно найти эту переменную через exe, пока она заинжекчена в другой процесс, к примеру, назовём его "notepad.exe". "

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

да вроде нет, его либа, его и хосты
" После компиляции мне нужно найти эту переменную через exe, пока она заинжекчена в ДРУГОЙ процесс, к примеру, назовём его "notepad.exe". "
 
Привет. Есть библиотека hook.dll, в зависимости от bool переменных там вызываются методы.

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

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

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

Буду благодарен за подсказку.
Через Удаленный поток CreateRemoteThread. Для примера возьми обычный инжектор через LoadLibrary. А чтобы прочитать ретурн нужно получить из GetExitCodeThread
 
" После компиляции мне нужно найти эту переменную через exe, пока она заинжекчена в ДРУГОЙ процесс, к примеру, назовём его "notepad.exe". "
Сонный был, я сначала написал там длл, а потом изменил на переменную. Норм
 
Сонный был, я сначала написал там длл, а потом изменил на переменную. Норм
Посмотреть вложение 271606

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

Можешь так сделать. CreateRemoteThread на get_variables потом GetExitCodeThread он вернет адрес структуры в процессе. Ну и потом через ReadProcessMemory по этому адресу

Но перед GetExitCodeThread нужно подождать поток когда он закончит WaitForSingleObject(hThread, INFINITE);
 
Можешь так сделать. CreateRemoteThread на get_variables потом GetExitCodeThread он вернет адрес структуры в процессе. Ну и потом через ReadProcessMemory по этому адресу

Но перед GetExitCodeThread нужно подождать поток когда он закончит WaitForSingleObject(hThread, INFINITE);
GetExitCodeThread не возвращает значение из функции
 
Назад
Сверху Снизу