Изменить значение регистра во время выполнения программы?
Видел, как с помощью gdb, ставят брекпоинт, меняют значение регистра, продолжают выполнение, результат изменился. То есть так можно любую программу изменить? Какие есть хорошие дисассемблеры?
Ответы (1 шт):
После перезапуска программы все регистры теряются. Так что скорее всего программа сохранила свой результат где в файл/реестр, а потом прочитала.
Так работать можно практически с любой программой. Некоторые программы могут просто активно сопротивляться (например, так делал раньше скайп и делают многие игры).
gdb вполне хорошая штука, если научится пользоваться. Для начала прочитать что то вида статьи с хабра.
Из дизассемблеров можно отметить классику - IDA - сейчас есть бесплатные версии, OllyDbg - старая классика и под линукс есть radare2 - очень интересная разработка, хотя и требует (как и любой дизассемблер) много знаний.