Понемногу изучаю reverse engineering, написал программу которая при нажатии на клавишу добавляет какое то число к переменной и выводит результат в консоль и пытаюсь ее "взламывать". Суть проблемы: не могу понять как найти что то, что даст возможность работать с переменной извне не ища ее адрес вручную каждый перезапуск программы. Пробовал искать оффсеты и статические указатели, не получилось. Очень хотелось бы посмотреть на руководства для чайников где разбирают взлом таких простейших программ, если такие имеются.
Так подход видимо неверный.
Вы пытаетесь найти адрес и постоянно к нему обращаться. Но так не получится - для начала, это не каждому процессу разрешено, лазить в чужую память.
А если переменная появляется и пропадает внутри функции, у нее и не будет статического адреса.
В таких случаях можно внедряться при помощи того же dll injection, или просто заменив код функции на свой, другой.
Saboteur, еще через CE можно поймать функцию которая прибавляет число к переменной и заменить ее пустыми байтами что бы прекратить ее выполнение, как такое можно сделать через C++?
Такое делается через отладчик, а не С++
Не совсем понятно чем вы вообще занимаетесь, называя это реверс инженерингом.
С++ обратно декомпилировать проблематично. Значит нужно хотя бы дизассемблировать.
Можно найти функцию через вызов стандартных методов, например нажатие клавиши
StrangeDylan, А как ты будешь локальную переменную изменять если она только во время выполнения функции существует, и то слово существует спорное. Даже в стеке ее может комплятор не хранить а соптимизировать.
Для того кто умеет программировать реверс инженеринг без защиты элементарная задача и никаких вопросов не вызывает (c++ предполагает что ты знаешь ассемблер архитектур под которые пишешь). Так что нужно учить cpp и OS, а не цифры тыкать в CE.