Как стать автором
Обновить

Комментарии 64

С каждым годом человек отдаляется от железа ПК. Операционки, фреймверки… Раньше как то ближе был к ресурсам техники. Спаибо за интересную статью, мой первый ПК был как раз спектрум. Помню что меня тогда очень поразил графический редактор и какая то программа которая могла записывать с кассеты в память спектрума звук, небольшой длины, сильно хрепящий, и потом его воспроизводила, мной это воспринимаось как волшебство какое то. (зы прошу извенить что комментарий не совсем по теме статьи)
ArtStudio?
Ага, графический редактор именно так назывался.
А было у меня порядка 30 кассет, и я несколько месяцев изучал их содержимое, ибо многие были без подписей.
Помню его) А еще был Picasa, почти один в один как Paint в Windows 3.1
НЛО прилетело и опубликовало эту надпись здесь
Да, конечно, как я только умудрился написать «Picasa» =)
И монструозный The Artist… )
Ну на самом деле я считаю не все отдаляются, кому интересно тот интересуется и знает. Сейчас просто больше возможностей почувствовать себя программистом чем скажем 20 лет назад…
Вот только теперь программистом считается каждый, кто может накликать кнопки на форму…
Вы не можете считать себя «близким к технике» если вы ни разу вручную не выставляли значение сумматора с помощью пинцета.
НЛО прилетело и опубликовало эту надпись здесь
Сам помнится все эти методы изучал. Было же время все машинные коды знал, относительные переходы в уме расчитывал, потому что памяти мало, а загрузчик надо поломать ибо не загружается он из за криво написанной защиты.
p.s. И этта… cracked by bill gilbert Привет всем спектрумистам.
Сейчас эти знания тоже актуальны. Очень многие игры идут с экслибрисами — маленькими программками с текстом «Из коллекции такого-то такого-то» и загрузчиком самой игры. Так что поле для исследований и применения знаний — огромное.
Ностальгия… Вспомнил, как писал на асме вывод листинга бейсик-программы с демаскировкой этих трюков. Взлом бейсик-загрузчиков после этого превратился в конвеер.
Переименовать первую строку в нулевую и наоборот можно и одним POKE

Еще Бейсик-программы могли нашпиговываться POKE вешающими комп по BREAK («Королевство Эйфория»)
Переименовать первую строку в нулевую и наоборот можно и одним POKE

Да, вы правы. Строку с номером по 255й включительно можно переименовать и одним POKE.

А вот в «Королевство Эйфория» не играл и таких агрессивных защит не встречал.
Ну, как же. Даже сейчас помню: POKE 23659, 0. Системная переменная, задающая количество строк служебной области внизу. Прошивка захочет вывести туда L'Break into program и обломается: чёрный экран, спасает только reset.
Дааа, большинство игр, что были у меня, имели такую защиту. Спасал MERGE "".
Приёмов действительно куда больше было. Например, в строках можно задавать специальными образом цвет и прятать текст в белом на белом.
Еще в строки добавлялись какие-то символы, препятствующие перемещению курсора по ней
Помню, была прекрасная книга Н. Родионова «Адаптация программ к TR-DOS», примерно на две трети посвящённая защитам и их обходу. Где-то лежит. Вот, главу из неё нашёл.
Делать нечего, пойду поплачу.
У меня она до сих пор храниться.
Третья часть называлась насколько я помню «Опус о настоящих программистах» и описывала нынешних гиков.
Картинки там офигенные.
По-моему, она есть тут.
Ох ёлки, да там вообще кладезь!
НЛО прилетело и опубликовало эту надпись здесь
Да-да, я сейчас тоже вспомнил свои безуспешные попытки создать/изменить эту строку. Тоже считал это тайным кунфу :-)
Помню игру на скриншоте. Rebel Star называется — классная была стратегия пошаговая.
О да! Я даже ставил себе эмулятор на мак, чтобы в нее зашпилить!
отображаем ноль, а переход будет на 23875

Я не понял. Как отображаем ноль?
На экран попадает 0xf9 (RANDOMIZE) 0xc0 (USR) 0x30 (0), а для перехода используется значение, закодированное в пятибайтной форме.
Теперь дошло.
каких-то 15 лет прошло, а память полностью поддалась команде CLEAR. С таким трудом все эти закорючки сейчас воспринимаются.
Но все равно спасибо :)

p.s. юность прошла за диззиассемблированием дисковых версий игрушек и переписыванием загрузчиков под кассетные версии (новые игры приходили на дисках, а народ требовал кассет). Все это богатство продавалось на ЦКР Перми.
Напомнилось…

RANDOMIZE USR 15619: REM: RUN

Вы заставили меня плакать в ностальгическом приступе
А я иногда вбивал
Randomize usr 15616.
Может кто-нибудь объяснит что оно делало? (Меня учили так делать после того как комп зависнет =))
При подключенном TR-DOS эта команда передаёт управление TR-DOS, выводя её консоль.
Выкидывало вас в ДОС, откуда уже из-под консоли могли делать то, что нужно
при переходе по адресу 0x3D00-0x3DFF из адресов старше 0x4000, на адреса 0x0000-0x3FFF отображалась пзу TR-DOS, таким образом TR-DOS можно было вызвать именно с этих адресов. Еще была фишка, что с портом 0x1F, который использовался для получения информации от ВГ93, можно было только с адресов 0x0000-0x3FFF, только с пзу и когда писали свой код для работы с диском, приходилось использовать код в ПЗУ, который делал дофига лишнего.

Ну а данная команда подрубала пзу от TR-DOS и переходила на его 0 адрес, где был сброс, по адресу 15619 находился просто RET
15619 и 15616 — два числа которые со мной теперь на всю жизнь 8)
НЛО прилетело и опубликовало эту надпись здесь
Мой первый компьютер ZX Spectrum 128k. Мои первые мануалы, это Справочник по Spectrum Basic и инструкция по ZX Spectrum 128k. Жалею, что однажды по своей глупости я его выкинул.
Эх. Ностальгия. Как же раньше всё просто было. Любую программу можно было «взломать». Я даже как-то ломанул защиту от копирования Сергея Веремеенко. Сделал копировщик таких игр. Вот это было интересно копаться.
Против встроенного отладчика ZX Scorpion 256 это не помогало. Там были более хитрые приемы, связанные с переключением страниц памяти и служебной областью данных, подробности уже не помню.
А вы помните журнальчик ZX-Ревю?!
Вот оно, счастье-то!
trd.speccy.cz/book.htm
Внизу страницы — полная подборка!
А еще был замечательный электронный журнал Spectrofor вроде. Очень неплохо организован был.
Иногда с игрушками в комплекте ( о, Звёздное Наследие !) Впервые увидев его тут же понял — эпоха бумажных книг подходит к закату :)
Spectrofon, да. Его те же товарищи делали, которые Звёздное Наследие, как раз.
Ещё был питерский ZX-Format, местами с более навороченым дизайном, но менее плодовитый.
Дома до сих пор лежат!
Читая заголовок уже предвкушал статью об антиотладке с использованием как минимум прерываний :)
А я в заголовке честно предупредил, что речь пойдет о Sinclair Basic'е :)
НЛО прилетело и опубликовало эту надпись здесь
Тогда не стоит стесняться, нужно только найти время и написать статью о средствах защиты от копирования на ZX Spectrum и методах противостояния им. Думаю, многим будет интересно.

Вспомните молодость наиболее полезным для подрастающего поколения способом — через написание мемуаров ;)
НЛО прилетело и опубликовало эту надпись здесь
С одной стороны, вы правы. За последние 25 лет многое изменилось и в процессорах, и в операционных системах. Но принципы противостояния отладке остались прежними:
1. Противодействие активной отладке
2. Противодействие пассивной отладке (запутывание дизассемблирования)

Поэтому знакомство с общими принципами отладки и противостояния ей на простых примерах (без ОС, 8-битный процессор, 48k оперативной памяти) может быть полезным.
А Billa Gilberta помните? Вот что меня тогда убило наповал — куча машинного кода, на первый взгляд не имеющего никакого смысла — просто мусор. А на до же, декодирует основной код загрузки программы :) Первый пример обфускации для меня был.
Не в тему бейсика конечно, но напомнили. Кучу времени тогда убил, пока въехал что к чему :)
www.dtf.ru/forum/msg.php?id=157812
speccy.info/Bill_Gilbert
zxpress.ru/article.php?id=1204&skip=1
Фото спионерено из статьи на ZX-Press:
███▒  ░                               ░█████████████████████████
████:░:                                ░████████████████████████
███░▒▓:                                 ▓███████████████████████
███::▒:     :░░░▒▓░░                     ░██████████████████████
███:     ▒▒███████▓▓▓░░░░:               :██████████████████████
██:    :▒███████████████▒░░:             :██████████████████████
██░   :█████████████████▒▒▒░             :▒█████████████████████
███: ░██████████████████░▒▒▒░░░:         :██████████████████████
███▒ ▒██████████████████▒▒▒:░▒▒:        █▓▒▓░  ░▓▓░  ░▓░░▓█▓░░▓█
████ ▒▒████▒▒▒███████▓: ░:     ░:       ███▓░ ▓ ░▓▓░░▓▓░░▓█▓░░▓█
█▒::  ▓███▒▒░  ▒███▓    ░:::    :       ███▓░  ░▓█▓░░▓▓░░▓█▓░░▓█
 :░░  ▓██: ▒   :███▓            ░       ███▓░ ▓ ░▓▓░░▓▓░░▓█▓░░▓█
    ░ ▓██▓▓█░░░▓██▓▒░           ▒      ░███▓░  ░▓▓░  ░▓░  ░▓░  ░
:  ░▒░██████████████░:: ░:░: ░:░:      █:▒▒█████████████████████
░:░█:█:█████████████▓░:▒░▒▒▒▒▒▒░:     :█ ░░█████████████████████
░█████░███████████▓░:: :░▒▒░░:       :▒▓░░▒█████████████████████
▓████████████████▓░    :▒▒▒▒:        ::  :▒█████████████████████
███████▒███████▒░::       ░:         ░░█░▒▒█████████████████████
███████▒ ████▓ ░           ░:        ▒▒  ▒▒█████████████████████
████████ :█████▓████▓                 ░    █████████████████████
███████▓   ███▒███▒▒ :                ▒ : :█████████████████████
████:::    ██▓██████░▒:               :░:░▒█████████████████████
████       █▒░:▓█▓▓▒░░:                   :█████████████████████
█████▒:     ▓█░:░:                       :▒█████████████████████
(извините за негатив, используйте выделение текста)

P.S. Мне кажется я где-то находил нормальное фото БГ, но сейчас уже не могу найти…
dirty.ru/comments/239521
Вот, нашел то фото, но я как-то не особо уверен в правдивости:
Можно было игру вообще записать с телика, по телевизору показывали обзор игры, его можно было писать на аудиомагнитофон, потом проигрывать и играть. Так классно :) Бэтмэн помню покорил меня своей графикой!
Вспомнил интересный метод автозапуска ассемблерного кода — load code затирал стек, меняя точку возврата из бейсика в саму программу.

Антиотладочный приём номер один: хранить критические для работы программы данные с нижней строчке экрана с ink0paper0 на соотв. полосу.
RANDOMIZE USR 0

Ради прикола перезагружались используя эту комманду. Ну и набор комманд по одной целиком через шорткаты клавиатуры — это да… Жалко, что было мало литературы, и дальше рисования кружков дело не пошло… :( До ассемблера на Синклере так и не добрался.
Эх, ностальгия… Прям взгрустнулось.
А еще, касательно пунктов 2 и 3. Можно было сделать несколько строк с одинаковым номером. Еще помнится, что курсор, попадая на такой номер строки, тоже «размножался».
аж прослезился… Вспомнил, как после прочтения статьи в ZX-ревю довелось ломать образчик Alcatraz'a.

а Codebusters'овские защиты игрушек — это же песня была…
Про последний прием не знал, randomize usr 0 всегда ставило меня в тупик.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории