Скачать Косвенный Взлом Программ на примере игры Mario

11.08.2000
Скачать файл (2,48 Кб)

Косвенный залом программ.

Косвенный залом - довольно эффективный прием для изменения приз- нака легальности в прикладных программах, запрета изменения счетчика жизней в играх, и т.д.

Принцип косвенного залома состоит в периодическом изменении ячеек памяти, принадлежащих программе; чаще всего, это выполняет резидент по прерыванию таймера. Для выяснения адресов этих ячеек (адреса, естест- венно, не абсолютные, а от PSP) применяют специальные программы - дам- перы, которые скидывают на диск дампы памяти по нажатию какой-либо комбинации на клавиатуре. В дамп, чаще всего, записывается вся память- от PSP, включительно, до конца основной памяти. После получения нес- кольких дампов, их побайтно сравнивают для определения изменившихся ячеек и их смещений в файле. Программа сравнения выдает текстовый файл примерно следующего содержания:

  <сегмент1>:<смещение1> <байт из 1-го дампа> <байт из 2-го дампа> ...
  <сегмент2>:<смещение2> <байт из 1-го дампа> <байт из 2-го дампа> ...
  ...

После этого остается найти в этом файле строки, содержащие необ- ходимые данные, например счетчик жизней в игре:

     <сегмент>:<смещение> 04 03 02 01

(Подразумевается, что дампы записывались после каждого уменьшения числа жизней). Далее мы используем специальную резидентную утилиту, которой передаем полученные данные:

     <сегмент>:<смещение> 04

И во время работы программы она будет периодически заносить по указанному адресу число 4, таким образом, число жизней никогда не опустится ниже 4 (правда и не поднимется :-( ).

А теперь - то, ради чего заводился этот монолог: после получения интересующих нас адресов, гораздо удобнее будет написать собственную утилиту для залома. Для примера в файле MARIO!.PAS приводится такой кряк для замечательной игрушки Mario!. Этот кряк делает героя бесс- мертным, и дает ему возможность стрелять, не утруждая себя поисками цветка. Также эта программа может послужить прототипом для написания Ваших собственных ломалок.

Примечание: для получения и сравнения дампов был использован па- кет HTOOLS by Oleg N. Kolesnikov.