Faultless #08
29 ноября 1997

Ресторня - основные моменты "ресторизации" взлома и адаптации программ.

<b>Ресторня</b> - основные моменты
 "Каждая  программа при восстановлении
тре-
   бует собственного подхода, применения
   фантазии..."
   STEELER
   "Рестор   иногда   не  удается  ввиду
отсутст-
   вия исходного материала..."
   SLIDER
   "Мужики, при желании можно заставить
   подходящего     человека     доделать
'исходный
   материал'  и  довести  дело до конца.
Но,
   повторяю, только при желании..."
   T.JIM
   Как  бы  ни  были  правы  STEELER  со
SLIDER'om,  но  можно  все же определить
основные моменты "ресторизации" программ
(только   в  нашей  стране,  в  ех-СССР,
появились   SPECTRUM'ы   512к,  "теневые
мониторы",      UFO-2     и     проблема
восстановления  программ,  пришедших  от
друзей из-за рубежа и не только).
   Во-первых,  желательно иметь на руках
саму  программу,  которую предполагается
восстановить   (ведь   можно   просто  и
помечтать   о  том,  какой  ты  классный
хакер-восстановитель).  Но  с  этим,  по
определению,   проблемы   возникнуть  не
должно.
   Итак,   вот   перед   нами  очередной
"шедевр".  Смотрим,  что же в нем не то.
Самое  первое,  что  бросается в глаза -
это  когда  программа  сбрасывается  при
попытке запустить ее в режиме 128к (я не
говорю  о  том, что при загрузке мы либо
вообще не видим картинки, либо созерцаем
нечто    неописуемое).    Возможны   две
причины:  либо нет дополнительных блоков
для  расширенной  памяти, либо требуется
ПЗУ   128к.  Если  верно  последнее,  то
включайте  ПЗУ 128 и радуйтесь,что прога
пошла.  Если же хотите заработать вечную
благодарность     пользователей    любых
компов,  то  попробуйте  переделать  код
так,  чтобы  новое  ПЗУ  не  требовалось
(кстати,  еще  больше  благодарностей вы
заработаете,  если не будете пихать 128к
only  интры в 48/128к игры. Помните, что
есть   еще  те,  кто  живут  своим  48-м
Speccy.).  А  в первом случае, опять же,
возможны   два   пути.  Первый:  смахнув
скупую    мужскую    слезу,    поставить
блокировку 128к и ждать, когда же в твои
руки  попадет нормальная версия (а можно
попытаться поискать в самой проге нужный
блок.  Например,  BATMAN 1 был "сброшен"
MAGIC'oм   в  режиме  48к,  хотя  внутри
программы  остался  блок  с  музыкой для
128к.   Чуток  поковырявшись  в  коде  я
получил  вполне  работоспособную 48/128к
игру).  Второй:  если  ты извращенец, то
можешь   попытаться  найти  еще  парочку
подобных   типов   -   вместе   вы  горы
свернете...  или  просто  напишете свою,
несомненно   крутую,  музыку,  нарисуете
новую     заставку     и...     получите
псевдо-востановленную  игру,  а точнее -
ремикс.   Можете   смело   ставить  свой
копилефт  рядом с авторским копирайтом и
начинать дистрибуцию своего труда.
   Короче,   с  дополнительными  блоками
картина  ясна:  либо их нет и вы делаете
определенные  выводы,  либо  они  где-то
есть  и  вы  их ищите, чтобы сделать еще
более определенные выводы.
   Первый рубеж пройден. Приходит время,
когда  вам  начинает  казаться  странным
адрес   запуска   программы  -  какие-то
POP'ы,  EI,  DI, RET. Знакомо, да? Берем
STS  (желательно  версию  5.хх и выше) и
начинаем   трассировку.   А  еще  лучше,
просто поискать наиболее вероятный адрес
запуска.   В   95%   всех   случаев   он
оказывается      вполне     годным     к
употреблению,   чем,   надеюсь,   вы  не
применете   воспользоваться.   Но  вдруг
программа  уже  испортила  какую-то свою
отработавшую   часть?   Это   уже   чуть
сложнее.   Конечно,  если  вы  обладаете
недюжинным  IQ (к сожалению, я к таковым
уникумам  не  отношусь),  то  сможете "с
нуля"     восстановить     уничтоженное.
Иначе...  Иначе,  вы  либо  смиряетесь с
неизбежным   и   лишь  чуть  облагородив
процедуру   запуска,   откладываете  это
исковерканное  чудо в "долгий ящик",т.к.
никто  не  поверит,  увидев MAGIC-старт,
что  игре  был  сделан  restor. Впрочем,
можно  попытаться все-таки подумать, что
же  делали  те  самые  CALL'ы, в которых
сейчас  ничего  нет. Иногда на вас может
снизойти  озарение  и вы гордо скажете :
"Я!   Понял!!!".   Или  просто  обойдете
глючные коллы.
   Насмотревшись       и,      возможно,
разобравшись   с   запуском,  вам  стоит
подумать над тем, а действительно ли эта
программа  занимает  50кб  из  возможных
48-и?  На  практике оказывается, что это
не  соответствует истине. Хотя, конечно,
следует   быть  осторожным,  т.к.  можно
запросто  удалить кусок графики, а потом
в конце игры думать, почему же на экране
какой-то  мрак.  Хорошо, если программа,
при     обновленном    адресе    запуска
восстановит  нужные блоки, а если нет?..
Кстати,  не забудьте об указателе стека.
Подлая вещь.
  Ну,запустили. Вроде бы, предстартовая
подготовка  прошла  нормально.  Выбираем
управление, например, KEMPSTON-джойстик,
т.к.   переводить   испанско-итальянский
слэнг  вам  не  с  руки. Выбрали, нажали
SUGAR  и...  Ваш герой либо прыгает, как
заведенный,  либо его палец на спусковом
курке  свела судорога. Вам повезет, если
в  игре  окажется  клавиша  ABORTAR,  но
обычно  вы  не  можете  ее обнаружить. А
играть  на  кемпстоне  ой  как  охота...
Опять  берем STS и ищем нечто похожее на
IN  A,(#DF). Обычно, достаточно поменять
#DF   на  #1F  и  можно  смело  выбирать
кемпстон.  Редко приходится "мутить", но
приходится    (Например,   в   DIZZY-X,Y
кемпстон    был   предусмотрен,   однако
некорректно  было  выполнено определение
этого   устройства.  Или  возьмем  POWER
PLAY. Ребята из DIGITAL REALITY могли бы
проверить       процедуру      обработки
клавиатуры,   но  не  сделали  этого.  Я
понимаю, что, возможно, не было машины с
кемпстоном,   но  все  же...).  В  таких
случаях обычно достаточно подумать минут
5 - и все придумается.
   Восстановили    управление,    начали
играть,  но  вдруг  перед  вами возникли
какие-то  черточки  вместо  удобоваримой
картинки.    Придется   разбираться   со
структурой   данных.  Работа  достаточно
емкая  и в большинстве случаев необходим
индивидуальный подход.
   Частенько  случается,  что  программа
вроде  бы "disked by кто-то", но на деле
она  только  грузится  с  диска,  а  все
возможные                  промежуточные
подгрузки/отгрузки    производятся    на
кассету.   Вспоминайте  свои  навыки  по
дискофикации  программ  и вперед, Родина
вас не забудет. Только старайтесь, чтобы
после  доработки,  программа  не  только
работала  с  дисководами,  но  и  вообще
работала.
   Итак,   все   блоки   на   месте,   с
управлением  все в порядке, с периферией
программа в принципе работает, графика и
уровни  не  запороты, надписи все внутри
есть.  Наконец,  компрессируем  игру  (к
слову,  один из наиболее простых случаев
restor'а            это           именно
компрессия/перекомпрессия    кода.   Тут
главное   не  пойти  по  пути  отдельных
индивидуумов, для которых восстановление
программы   заключалось   в   том,   что
приписывалось интро, "компрессировалась"
ком  прессированная игра, не проверялась
корректная  идентификация  режима  128к,
всовывались    "левые"    надписи   типа
"Дупанов  в  Трансильвании"  и  все  это
распространялось.  Лучше  просто удалить
радостное    сообщение    "Imported   by
Rajsoft"  и..) И все? Нет, еще не все! А
так  же  CHEAT?  A  пароли  к уровням???
Помимо  того,  что  даже  самые  отпетые
CHEATо-ненавистники           ("Повбывав
бы!"Slider)   привыкли   к   завлекающим
надписям  "DO  YOU WANNA CHEAT-MODE???",
так  вам еще и самим надо проверить свою
"отресторенную"         версию        на
работоспособность.  Вот  уже  когда  все
проверено от и до, тогда пакуйте, пишите
интро  (соответствующее самой игре, т.е.
48/128 для 48/128 игры и 48/128-128к для
128к игры), в котором прославляйте себя,
приветствуйте  друзей  и т.д. Интро тоже
пакуйте,   проверяйте   на  правильность
распаковки   (игр   это  тоже  касается,
кстати).   Можете  даже  поставить  свою
"бэст  оф  зе  бэст"  защиту,  но только
имейте  в  виду, что ее сразу же снимут.
Помните  еще  об  одной  мелочи:  защита
должна  работать  на  всех машинах, а не
только  на  вашем  супермонстре,  иначе,
кому  ваша прога нужна будет? Да, а сама
она работает на любых Spectrum-клонах? А
дополнительные     страницы    нормально
переключаются, не через #FD?
   В  общем,  если  ответ на все вопросы
положителен,      смело      дописывайте
заагрузчик, объединяйте все блоки и...
   На этом позвольте закончить. Если кто
не знает, то с вами был

  TICKLISH JIM/BROKIMSOFT/AMAZING



Другие статьи номера:

Введение - пара слов о нашем харьковском радиорынке.

Папа Карло - Joker выдвинул идею встретиться и выпить шампанского с шоколадкой.

Дон-жуан - Из записок Дон-Жуана (и записок джентльмена).

Размышления - конкурс на лучшую графику, музыку и DEMO 1998 года. О наездах и сделанных программах за последнее время. Журналы сейчас размножаются,как китайцы.

Бугор - письмо из Литвы от FLP/World Eyes.

TR-DOS - Дисковой интерфейс.

Лобзикам - В сентябре 1997 года я заглянул в свой почтовый ящик и увидел письмо от Венгерских Спектрумистов!

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

Рассказы - трагическая повесть; Сросшиеся слова; Творчество старшего поколения; Словарь малоупотреБЛЯемых и выРАЖЕНИЙ слов.

Обзор - Ненаучный обзор Зокололитературного явления.

Art Studio - проект нового графического редактора от группы Avalon.

Смысл - веченые жизни и Pokes: SexMine Sweper, Marrow in the world of wisdom.

Реклама - Наш журнал может приобрести каждый всего за 12$!

Новости - в Челябинске будет издаваться новый журнал "Miracle", Новости from Excess/Kazan, группа из Полтавы разработала плеер MIDI для спектрума.

Гае.куда - о тех людях,которые и делали-то журнал!

King's Bounty 3 - новелла по игре.

Ассемблер - демо эффект "летание сетки"

Кемпстон - кемпстон джойстик и eго применение.

Терминатор - ...И машины восстали из пепла ядерной войны. Шла война на уничтожение человечества.

Ресторня - основные моменты "ресторизации" взлома и адаптации программ.

Amiga - "AMIGA 600" по своей архитектуре отличается от PC.

Перспективы ПО - новая игрушка Citadel и навороты журнала.

Armada - Compaq Computer пополнила свой традиционный комплект портативных ПК Contura и LTE Elite принципиально новой серией Armada 4100.

Portege - Toshiba обновляет дизайн субноитбуков Portege.

Apple - Apple выпустила Internet-инструментарий для PDA.

Merlin - Волшебная Melin против NT.

Netware - Разработчики получили бета-версию следующей NetWare.

Fractal - Fractal Expression объединяет векторную графику с растровой.

SMP-сервер - SMP-сервер от "МДМ-сервис".

DVD - Новости о DVD слишком хороши,чтобы быть правдой.

Дополнение - В журнале есть такая статья,как интервью,которая оформлена в виде отдельной оболочки.

Вычисления - организация математических вычислений.

Презентация - Содержание приложения журнала.

ZX-News 3 - разборки с критиками журнала Faultless.

Таблички - справочные сведения по микросхемам и кодам команд микропроцессора К580ИК80.

Обявления - Продается компьютер PENTAGON-512 + 3.5 FDD + 5.25 FDD + LPT-COVOX + B/W MONITOR + 100 DISKS + SINCLAIR JOYSTICK.

Квадро - квадросиситема для ZX Spectrum на основе AY3-8910.

Железо - схема 4 мб "SPECTRUM"!! Модернизация компьютера "РОБИК".

Неизсвестность - Как вы думаете, сколько человек делают следующие журналы? Небольшая статистика.

Благодарности - благодарность выражается...

Заключение - Ну вот и закончена работа над восьмым проектом журнала FAULTLESS.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Вступление - стихи и содержание номера.
Системные сведения - Справочник по TR-DOS`у.
Творчесво - эпопея: хронологический отчет о создании игры "Куpьеp - 2".

В этот день...   26 мая