Поиск неизвестного значения. На примере игры "Heroes Of Might And Magic 3".

Что делать, если в игре полоска без цифр? Как найти это значение? В этом случае вы должны использовать поиск "Неизвестное значение". Рекомендую выбрать конкретный тип, например, для жизни "целое 1 байт" или "целое 2 байта", так как весь процесс может занять продолжительное время. Итак, самый важный шаг - первое отсеивание, необходимо изменить жизнь, но так чтобы все остальное как можно меньше изменилось, в том числе изображение на экране.
Например, я взял игру HMM3 и нашел деньги методом поиска неизвестного значения ( результат смотрите в таблице ). Процессор - Pentium 233, память - 32Mb. Тип числа - целое 4 байта. Всего у меня на нахождение денег ушло 22 минуты, так как игра довольно большая ( размер данных процесса 27Mb ). Первое отсеивание было довольно удачное ( найдено всего 173 тысячи адресов ), а в случае если изображение на экране изменяется, то второе отсеивание увеличиваеться в два раза, и общее время практически до 35 минут. Самым продолжительный по времени всегда третий шаг - второе отсеивание. Уже на 16 шаге стало понятно, где деньги, однако лучше всего продолжать пока найденные адреса не перестают уменьшаться, а после этого находим деньги перебором, то есть просто заносим по адресу какое-нибудь число и смотрим, не изменились ли деньги в игре. Данный метод хорошо сочетается с поиском диапазона значений, особенно для полосок знергии. Для уменьшения общего времени взлома на 5-10 шаге отсейте заведомо ложные значения. Оставте, например, только от 0 до 200, правда это не всегда справедливо, посколько одно деление жизни может быть равно какому-то числу, например, для игры Half-Life одно деление жизни хранится как 171, то есть если у вас 100%, то в памяти оно хранится как 17100.
Шаг Деньги Изменение Время Найдено
адресов
1 24547 -:- 30 сек 27Mb
2 24597 увеличилось 2 мин 173451
3 847 уменьшилось 3,5 мин 88053
4 9847 увеличилось 2,2 мин 59142
5 9947 увеличилось 1 мин 19800
6 14447 увеличилось 20 сек 5500
7 0 уменьшилось 13 сек 3378
8 100 увеличилось 10 сек 1964
9 850 увеличилось 3 сек 720
10 0 уменьшилось 2 сек 535
11 8000 увеличилось 2 сек 329
12 9300 увеличилось 1 сек 122
13 0 уменьшилось 1 сек 91
14 1150 увеличилось 1 сек 59
15 9150 увеличилось 0,5 сек 21
16 9950 увеличилось 0,4 сек 9
17 6200 уменьшилось 0,3 сек 8
18 0 уменьшилось 0,2 сек 5
19 8050 увеличилось 0,1 сек 4
20 3790 уменьшилось 0,1 сек 4


Copyright (C) 1996-2002, ArtMoney Team.
Дата последнего обновления
14 декабря 2002 года