C++ ReadProcessMemory ....

Начинающий
Статус
Оффлайн
Регистрация
23 Авг 2022
Сообщения
53
Реакции[?]
1
Поинты[?]
0
Всем привет! Нужна помошь!!!

Код:
ReadProcessMemory(hProcess, (LPVOID)addr, &value2, sizeof(value2), 0);
Этот код выводит значение рандомное например 12. Но после этого я применяю WriteProcessMemory и ставлю значение например 3.
Как мне после WriteProcessMemory записать снова значение 12(оно рандомное).

Знатоки плюсов откликнитесь :)
 
Начинающий
Статус
Оффлайн
Регистрация
22 Окт 2022
Сообщения
51
Реакции[?]
4
Поинты[?]
4K
Нихуя не понял, что ты имел ввиду?
 
Участник
Статус
Оффлайн
Регистрация
11 Апр 2019
Сообщения
1,118
Реакции[?]
307
Поинты[?]
3K
Всем привет! Нужна помошь!!!

Код:
ReadProcessMemory(hProcess, (LPVOID)addr, &value2, sizeof(value2), 0);
Этот код выводит значение рандомное например 12. Но после этого я применяю WriteProcessMemory и ставлю значение например 3.
Как мне после WriteProcessMemory записать снова значение 12(оно рандомное).

Знатоки плюсов откликнитесь :)
ну сначала в интовую переменную записываешь это значение, пишешь свое значение, потом пишешь из этой переменной
 
Начинающий
Статус
Оффлайн
Регистрация
23 Авг 2022
Сообщения
53
Реакции[?]
1
Поинты[?]
0
ну сначала в интовую переменную записываешь это значение, пишешь свое значение, потом пишешь из этой переменной
Смотри я поставил int value; а как получить то же значение которое читало с самого начала. Например с самого начала прочитало 8 , я изменил это значение на 4 , при повторном чтение будет 4 , а мне нужно что бы было самое первое 8.
ну сначала в интовую переменную записываешь это значение, пишешь свое значение, потом пишешь из этой переменной
Я нубик так что мне легче примером показать как это сделать лучше.
 
Участник
Статус
Оффлайн
Регистрация
11 Апр 2019
Сообщения
1,118
Реакции[?]
307
Поинты[?]
3K
Смотри я поставил int value; а как получить то же значение которое читало с самого начала. Например с самого начала прочитало 8 , я изменил это значение на 4 , при повторном чтение будет 4 , а мне нужно что бы было самое первое 8.

Я нубик так что мне легче примером показать как это сделать лучше.
я не писал ничего уже дохуя времени, но по идее это должно работать как-то так
C++:
int a = ReadProcessMemory(hProcess, (LPVOID)addr, &value2, sizeof(value2), 0);
WriteProcessMemory(hProcess, (PBYTE*)offset, &3, sizeof(int), 0);
*что-то*
WriteProcessMemory(hProcess, (PBYTE*)offset, &a, sizeof(int), 0);
 
iq abuser
Пользователь
Статус
Оффлайн
Регистрация
16 Апр 2021
Сообщения
631
Реакции[?]
136
Поинты[?]
4K
если значение и правда рандомное - реверси, ищи момент выбора этого числа и вызывай его
 
Забаненный
Статус
Оффлайн
Регистрация
26 Авг 2022
Сообщения
181
Реакции[?]
23
Поинты[?]
8K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
sigma:
int value = 12;

WriteProcessMemory(hProcess, (LPVOID)addr, &value, sizeof(value), 0);

value = 12;
WriteProcessMemory(hProcess, (LPVOID)addr, &value, sizeof(value), 0);
 
Пользователь
Статус
Оффлайн
Регистрация
8 Апр 2022
Сообщения
511
Реакции[?]
77
Поинты[?]
42K
Смотри я поставил int value; а как получить то же значение которое читало с самого начала. Например с самого начала прочитало 8 , я изменил это значение на 4 , при повторном чтение будет 4 , а мне нужно что бы было самое первое 8.
всмысле че за вопрос дэбильный? просто создать еще одну переменную
 
Начинающий
Статус
Оффлайн
Регистрация
23 Авг 2022
Сообщения
53
Реакции[?]
1
Поинты[?]
0
sigma:
int value = 12;

WriteProcessMemory(hProcess, (LPVOID)addr, &value, sizeof(value), 0);

value = 12;
WriteProcessMemory(hProcess, (LPVOID)addr, &value, sizeof(value), 0);
Смотри , каждый раз как я запускаю программу там в "value" ставится рандомное значение от 0-15 , Я читаю addr и мне выпадает начальное например "6" , я изменяю этот адрес с помошью WriteProcessMemory на "4" и читаемый адрес выдает уже "4" , но мне нужно что бы я мог вернутся к начальному значению тоесть "6" Хз как это делать т.к плюсы как хобби изучаю.
 
Участник
Статус
Оффлайн
Регистрация
11 Апр 2019
Сообщения
1,118
Реакции[?]
307
Поинты[?]
3K
Смотри , каждый раз как я запускаю программу там в "value" ставится рандомное значение от 0-15 , Я читаю addr и мне выпадает начальное например "6" , я изменяю этот адрес с помошью WriteProcessMemory на "4" и читаемый адрес выдает уже "4" , но мне нужно что бы я мог вернутся к начальному значению тоесть "6" Хз как это делать т.к плюсы как хобби изучаю.
скинь код скрином из иде, все должно работать
 
Легенда форума
Статус
Онлайн
Регистрация
10 Дек 2018
Сообщения
4,214
Реакции[?]
2,181
Поинты[?]
81K
Смотри , каждый раз как я запускаю программу там в "value" ставится рандомное значение от 0-15 , Я читаю addr и мне выпадает начальное например "6" , я изменяю этот адрес с помошью WriteProcessMemory на "4" и читаемый адрес выдает уже "4" , но мне нужно что бы я мог вернутся к начальному значению тоесть "6" Хз как это делать т.к плюсы как хобби изучаю.
Запиши начальное значение в переменную. Если это не решение твоей задачи, то опиши конкретнее, что тебе нужно.
 
Последнее редактирование:
ппоршень
Пользователь
Статус
Оффлайн
Регистрация
15 Фев 2020
Сообщения
207
Реакции[?]
30
Поинты[?]
18K
C++:
int main( ... )
{
    LPVOID address_to_value_you_need = reinterpret_cast< LPVOID >( 0xFACE ); // адрес
    HANDLE handle_to_process = nullptr; // хендл к процессу (вызов OpenProcess вместо nullptr должен быть)

    SIZE_T dummy = 0; // сколько байтов по итогу было прочитано (нужно для ассертов)

    int write_this = 6; // что записываешь
    int read_value = 0; // что хочешь прочитать

    // читаем, но конечно же не забываем проверять возвращаемое значение (желательно с помощью ассертов)
    ReadProcessMemory( handle_to_process, address_to_value_you_need, &read_value, sizeof( read_value ), &dummy );

    read_value; // теперь у нас тут 4

    // записываем, проверяем записалось ли с помощью ассертов
    WriteProcessMemory( handle_to_process, address_to_value_you_need, &write_this, sizeof( write_this ), &dummy );

    // теперь по адресу address_to_value_you_need у нас 6

    // записываем, проверяем ассертом, теперь у нас по адресу address_to_value_you_need значение 4
    WriteProcessMemory( handle_to_process, address_to_value_you_need, &read_value, sizeof( read_value ), &dummy );

    return 0;
}
 
Сверху Снизу