Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Программирование (http://zx-pk.ru/forumdisplay.php?f=14)
-   -   крипто-алгоритмы и стойкость (http://zx-pk.ru/showthread.php?t=8892)

White_Hunter 24th November 2008 17:19

крипто-алгоритмы и стойкость
 
Какие есть сабжи на zx-spectrum, в первую очередь интересны самые необычные :)
Кто с какими сталкивался или делал ?
Так же хочется услышать о самой стойкой - труднопроходимой защите.
Пишите.

Vladson 24th November 2008 18:46

Вот уж не встречал, хотя если чуть-чуть подпилить мою "заполнялку" экрана то в некотором роде будет шифрование (картинки)
Code:

        ORG        8000h
        LD        BC,055Ah
        LD        HL,_lp_1
        LD        DE,4000h
_lp_1:        LD        A,B
        ADD        C
        RLCA
        LD        B,C
        LD        C,A
        LD        A,(DE)
        XOR        C
        LD        (DE),A
        INC        DE
        LD        A,D
        CP        58h
        RET        Z
        JP        (HL)


Error404 24th November 2008 21:08

Quote:

Originally Posted by White_Hunter (Post 166216)
Какие есть сабжи на zx-spectrum, в первую очередь интересны самые необычные :)
Кто с какими сталкивался или делал ?
Так же хочется услышать о самой стойкой - труднопроходимой защите.
Пишите.

Я где-то на очередной CP/M-помойке видел RSA-шифрование для Z80. Ссылку не зафиксировал, но думаю прогуглится если очень надо.

Barmaley_m 25th November 2008 16:20

Шифрование и защита от взлома - это разные вещи, в общем-то. Подход разный и требования тоже.

Защита от взлома предназначена для затруднения просмотра программы при том, что для нормального запуска программы знание какого-либо пароля не требуется. То есть взломщику не нужно подбирать пароль, вместо этого ему нужно разбираться в запутанной программе. Запутывание программ (code obfuscation) - это очень интересное направление в науке информатике. Во времена эры Спектрума люди вручную, по большей части интуитивно, занимались этим. На сегодняшний день существуют научно обоснованные, автоматические запутыватели кода. И упаси Боже всех нас от необходимости разбирать результаты их работы. Труд адский, скажу я вам!

Шифрование имеет другие цели и методы. Считается, что взломщику известен алгоритм (метод) шифрования, но не известен ключ (пароль). И секретность ключа является главным бастионом шифровальной защиты.

Если кого-то интересует шифрование на ZX, то во-первых, старые программы использовать для этого категорически не рекомендуется. В былые времена не было той строгости в обращении с шифрами. Каждый мог придумать "сложный, невзламываемый" шифр на коленке и реализовать его в своей программе. А опытный современный взломщик шифров, соответственно - взломать такой шифр довольно быстро.

Чтобы надежно защищать данные шифром, нужно использовать научно обоснованный, общепринятый метод шифрования, для Спектрума лучше всего наверно DES подходит. Можно поискать реализации для Z80. В последнее время стало модным делать DES-bootloaders для микроконтроллеров и вообще реализовывать этот метод на микроконтроллерах, так что должно существовать много 8-битных реализаций.

Добавлено через 8 минут
Я лично в 96м году реализовал шифрование данных методом квадрата Виженера на ASC CP/M. Но, конечно, взлом квадрата Виженера - это задача для студентов, позже я в одной книжке по взлому шифров видел это в качестве упражнения в одном из первых разделов :)

Что касается защиты запутанным кодом, то рекомендую желающим взломать (то есть разобраться) в защите моей проги RRESTORE (http://www.geocities.com/barmaley_m/rrestore.zip). Интересно будет послушать мнения профессионалов :)

Добавлено через 14 минут
А еще, из защит запутанным кодом, мне очень интересной показалась защита Max Iwamoto. Фактически, там был реализован пи-код (псевдокод) путем вызова коротких подпрограмм, каждая типа:

LD A,R
RET

INC HL
RET

XOR (HL)
RET

POP HL
LD SP,HL
RET

и так далее. Последовательность, в которой эти подпрограммы вызывались, была сохранена на стеке, так что никакого цикла, выбирающего откуда-то адреса этих подпрограмм в нужной последовательности, не существовало. Вместо этого последовательность адресов была записана на стеке, SP устанавливался на начало этой последовательности, а потом выполнялась команда RET :) Подпрограммы, вроде последней, позволяли осуществлять "переходы" в этом пи-коде. Были также подпрограммы условного перехода, на основе которых делался цикл ксорки.

Выглядело это все страшно до тех пор, пока я не понял основную идею. После этого восстановить программу в пи-коде и разобраться в ней было легко. Сама она не была запутанной.

goodboy 29th November 2008 16:38

Quote:

Originally Posted by Barmaley_m (Post 166325)
Что касается защиты запутанным кодом, то рекомендую желающим взломать (то есть разобраться) в защите моей проги RRESTORE. Интересно будет послушать мнения профессионалов

ваше умение пользоваться `калькулятором`(пи-кодом) налицо !!!

Robus 2nd December 2008 18:15

Хакер-Крякер ...
 
1 Attachment(s)
Самый лучший способ это написать собственный компрессор и ненадо никаких криптований !!! Допустим, берём текст и пакуем его с помощью DSQ, и всё ... Никто не раскодирует ... Ну, понятно, что спектрумисты раскодируют, тут без вопросов ... =)

Но вообще-то, увидив эту тему я вспомнил теплые времена прошлого, когда мы с друзьями садились на двух спеках и писали защиты, потом менялись местами и взламывали ... Таким образом родилась, когда-то, совершенно идиотски реализованая мною игра, PITON-3M. В нашей игре "хакер-крякер" мы остались вдвоём с моим другом Яцковским Славиком. Соперничество дошло до защит глобального уровня. Мы в программах писали всяческие ругательства друг на друга, ну и задача у противника была их убрать. Если убирал наглые фичи, продукт удалялся навсегда, по "джентельменскому" соглашению. Ну ... Вообщем, по-сей день так и не взломали ... Конечно всё это было детство, но защита родилась.

Итак ... В общей сложности сама игра, без застваки, занимает 19 килобайт. Из них 9 килов игра и 10 защита.

Условия были таковы:
1. Убрать номер телефона на который нужно позвонть и сказать ГАДОСТЬ.
2. Убрать фразу "Яцковский тормоз перестройки"
3. Убрать фразу "Яцковский CATTLE"
4. Убрать фразу "PROTECTION BY ROB F. 1993" (боже, как давно это было)

Shadow Maker 2nd December 2008 23:04

Знаешь, я вот посмотрел - не убрали не потому что сложно, а потому что нудно смотреть и проверять надо, чего у тебя получила очередная процедура из hl и куда упрыгала... Времени уйдет много, поэтому трогать даже не буду.

White_Hunter 3rd December 2008 12:00

Интересная защита встречалась в отечественной игре-демке колобок, как она там работала я так и не понял, какая-то путаница со страницами памяти.
Еще было интро от повер оф соунд, к игре болдердаш (в этом интро еще можно было активировать cpm экран), там защита на инт2 была вроде подвешена, стс-ом не проходима :)

psb 3rd December 2008 12:55

Quote:

Originally Posted by Robus (Post 167956)
Самый лучший способ это написать собственный компрессор и ненадо никаких криптований !!!

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

думаю, на спеке не было ни одной такой защиты/криптовалки.

что касается трудной защиты.. думаю, проблемно пройти любую защиту, которая завязана к времянкам железа (например, чтение подряд идущих секторов с одинаковыми номерами; да и это при умении обходится).
я уже писал, что многие защиты на спеке были дырявые, у них были уязвимости, сводящие на нет всю идею защит.

1. крутая ксорка, запутанный код, вся фигня.. но т.к. в итоге прога обратится к дисководу, ставим точку останова на #5CC2 и готово. все ксорки расксорились и смотри че хошь. просто когда разрабатывали защиту, не предусмотрели...

2. диск защищенный от копирования. сколько их видел таких защит, ВСЕ обезвреживались одинаково легко. просто никто не подумал о таком методе;)

Robus 3rd December 2008 16:28

Ключ это то же алгоритм !!! Для компрессированных данных нужен ключ - "декомпрессор". А вот то, что он записан рядом с данными это другой вопрос. Но если запаковать данные с одной стороны, а с другой стороны их распаковать, то выцепив их на стадии передачи, надеяться на декодин почти не реально.

За всю историю самые лучшие защиты, как я считаю, были написаны Bill Gilbert'ом. Да я их взламывал за 5 минут имея только чистую кассету. Но с точки зрения изврата и запутанности кода - они лучшие.

А насчёт защиты от копирования:
Quote:

Originally Posted by psb (Post 168143)
2. диск защищенный от копирования. сколько их видел таких защит, ВСЕ обезвреживались одинаково легко. просто никто не подумал о таком методе

Я делал защиту в Киеве от копирования. И никакими стандартными методами её не ломануть. Понятно, что можно найти в коде место проверки. Но это если явно дать понять, что тебя скопировали обманным путём. А если в игре поубирать какие-то предметы, допустим, и ты это поймёшь только после 1 часа и гры. То уверен, что хакер это делать не будет. Он ломанёт, увиди, что запустилась, и отдаст результат дальше.
Моя защита делалась на чистых ГМД дисках. Ниразу не форматированных. Правда было много дисков, которые поставлялись в форматированном виде. Но мы ходили на завод ЭлектронМаш и набирали нулёвых дисков. Далее форматируется весь диск, кроме 3 треков. После ... Читается руками отсутсвующий трек. Информация получается битая, и каждый раз читается разная. Но замечен был эффект, что читалось, допустим, в первый раз 111101111, а во второй раз 111111011. То есть нолики смещались, но это мсенщение не превышало 5-10 бит. Так, что тут железно. Никакой копир орегинал не скопирует. Если моя прога выкупала, что данные в этом треке читаются стабильно, - "пиши пропало", портим внутренности игры ... В данном случае это был UFO. Нашего продавца Руслана на радиорынке не утраивала защита в орегинале, поскольку прекрасно копировалась каким-то Speccy копиром, кажется Donald-бла-бла-бла, что-то такое в названии было. Вот не помню точно, но какой-то хороший копир.

Конечно вариант полного взлома не рассматривается. В таком случае любые криптованные данные читаются, имея ключ. Я сам ломал кучу подобных игр, как на Speccy, так и на PC.

А вообще защиты это ГАВНО !!! Это смерть искусству ... Любой софт не должен быть защищён. Максимум, что я признаю. это защищать данные в сети, которые ты хочешь передать только конкретному человеку и спрятать их от лишних глаз.

Добавлено через 22 минуты
Quote:

Originally Posted by Shadow Maker (Post 168047)
Знаешь, я вот посмотрел - не убрали не потому что сложно, а потому что нудно смотреть

Нет ... Тут ты не прав ... Не убрали именно потому что не смогли !!! Это было всё в ZX-Club'е ... И мы собирались на подобные мероприятия не однократно ...


All times are GMT +4. The time now is 13:39.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.