История изменений
Исправление Xenius, (текущая версия) :
gdb подойдёт
ОК, как с помощью GDB делать поиск с отсеиванием? Скажем ты знаешь что у тебя в игре четыре жизни, ищешь все ячейки где есть int 4 (04 00 00 00), далее, тебя убивают, у тебя только три, из сформированного списка ячеек выбираешь те, где сейчас 03 00 00 00, потом ещё раз убивают — отсеиваешь те где стало int 2, а потом взял скажем жизнь, ищешь опять int 3. На каждом шаге количество возможностей уменьшается и в конце остаётся только несколько, а если повезёт одна. А там можно искусственно записать скажем 01 в первую, 02 во вторую и тд и смотришь сколько жизней стало в игре, соответственно, адрес запоминаешь/записываешь, а потом замораживаешь (то есть чтобы отладчик при каждом изменении записывал туда старое значение или просто ставил бряк на память и команды mov [lives],* просто пропускал) или ставишь на int 9001 и играешь дальше
Исправление Xenius, :
gdb подойдёт
ОК, как с помощью GDB делать поиск с отсеиванием? Скажем ты знаешь что у тебя в игре четыре жизни, ищешь все ячейки где есть int 4 (04 00 00 00), далее, тебя убивают, у тебя только три, из сформированного списка ячеек выбираешь те, где сейчас 03 00 00 00, потом ещё раз убивают — отсеиваешь те где стало int 2, а потом взял скажем жизнь, ищешь опять int 3. На каждом шаге количество возможностей уменьшается и в конце остаётся только несколько, а если повезёт одна. А там можно искусственно записать скажем 01 в первую, 02 во вторую и тд и смотришь сколько жизней стало в игре, соответственно, адрес запоминаешь/записываешь, а потом замораживаешь (то есть чтобы отладчик при каждом изменении записывал туда старое значение или просто ставил бряк на память и команды mov [lives],* просто пропускал) или ставишь на int 9001 и играешь дальше
Исходная версия Xenius, :
gdb подойдёт
ОК, как с помощью GDB делать поиск с отсеиванием? Скажем ты знаешь что у тебя в игре четыре жизни, ищешь все ячейки где есть int 4 (04 00 00 00), далее, тебя убивают, у тебя только три, из сформированного списка ячеек выбираешь те, где сейчас 03 00 00 00, потом ещё раз убивают — отсеиваешь те где стало int 2, а потом взял скажем жизнь, ищешь опять int 3. На каждом шаге количество возможностей уменьшается и в конце остаётся только несколько, а если повезёт одна. А там можно искусственно записать скажем 01 в первую, 02 во вторую и тд и смотришь сколько жизней стало в игре, соответственно, адрес запоминаешь/записываешь, а потом замораживаешь (то есть чтобы отладчик при каждом изменении записывал туда старое значение или просто ставил бряк на память и команды mov [lives],* просто пропускал) или ставишь на int 9001 и играешь дальше