Информационный сервер для программистов: Исходники со всего света. Паскальные исходники со всего света
  Powered by Поисковый сервер Яndex: Найдется ВСЁ!
На Главную Pascal Форум Информер Страны мира
   Хакерские Штучки    >>    mario_cr
   
 
 Косвенный Взлом Программ на примере игры Mario   Eugene Zagidullin 11.08.2000

Рекомендации по косвенному залому программ с примером-исходником для игрушки Mario (included).



2k 
 

Косвенный залом программ. ------------------------- Косвенный залом - довольно эффективный прием для изменения приз- нака легальности в прикладных программах, запрета изменения счетчика жизней в играх, и т.д. Принцип косвенного залома состоит в периодическом изменении ячеек памяти, принадлежащих программе; чаще всего, это выполняет резидент по прерыванию таймера. Для выяснения адресов этих ячеек (адреса, естест- венно, не абсолютные, а от 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. PS: В недалеком будущем я планирую написать собственную удилиту дампирования/сравнения. С уважением, Евгений Загидуллин (WoZZa) wozza@yandex.ru