Вопрос востребованности конкретного ПО и степени заинтересованности хакеров.
Мои интересы только в плоскости ПРК "Орион", причём сугубо реалов. Ради спора изучать другую платформу и среду отладки для неё не готов.
Запутывание кода сам практикую, но прекрасно понимаю, что все эти защиты - на тему разнообразия инструментария и порога терпения взломщика, ничего невозможного там нет в принципе.
Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел
Сравниться по производительности с видеокартами и процессорами PC на Спектруме невозможно. Следовательно нужен какой-то другой подход. Сбор каких-то характеристик реального железа и маловероятные события при его функционировании. Программа же должна вносить нечто, чтобы требуемое для регистрации новой монеты случалось все же с ненулевой вероятностью после N<100 часов работы "реального железа"(при этом если на компьютере не происходило нечто осмысленное и он был просто включен, время возрастало непропорционально) Центральный сервер же должен, проанализировав блок данных, присланных регистрирующим, выносить вердикт и подтверждать регистрацию.
Цели такой "валюты" не инвестиционные и не анонимайзерские, а иные:
1) усилить интерес к реальному железу на z80;
2) к работе на этом реальном железе( следовательно и в новом софте);
3) дать людям средство для расчетов в своей среде, минуя деньги( хотя, если сделать это товаром<-> обмен на обычные деньги или обычную крипту, то первые два пункта уже не работают в полной мере.
А алгоритм и подход должен быть всем понятен в общих чертах. Внешний чип, если и нужен, то только чтобы сильно не отвлекать все остальное от их функций. Симитировать столь полно реальное железо в эмуляторах должно быть весьма трудозатратно.
- - - Добавлено - - -
видимо и эмуляторы там пока не столь изощренные как на Спектрумах, но при замене проца на z80 появляются и точки соприкосновения. Правда не в курсе, есть ли такая замена на ПРК "Орион"
- - - Добавлено - - -
уже объяснился. Чтобы только не грузить основную систему не свойственными ей до этого задачами. Потом это по желанию владельца, как необязательная опция.
Последний раз редактировалось andrews; 12.01.2021 в 15:44.
На оригинальном спектруме с раздельными полями памяти можно легко затестить:
Ждем минуты три. Проверяем верхние 32 Кб памяти, например, графику UDG. Заряд из ячеек будет утекать и байты превращаться в $ff. Только первые несколько байтов для каждого блока в 256 байт остануться в нуле, потому, что рефреш для них выполнялся во время выполнения цикла. А нижние 16 Кб будут штатно зарефрешены ULA. Опыт не будет работать на эмуляторе.Код:ORG 32768 DI LD B,0 L1: XOR A LD R,A DEC HL LD A,H OR L JR NZ,L1 DJNZ L1 EI RET
Последний раз редактировалось SoftLight; 12.01.2021 в 16:34.
andrews(12.01.2021), Denn(12.01.2021), Evgeny Muchkin(12.01.2021)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Только на 48к, на 128х вся память рефрешится юлой.
Ну и нет проблем заэмулить это. Только временные и качественные параметры порчи содержимого ячеек снять нужно тестовой программой, чтобы точнее было. Эмуль ZEsarUX даже эмулит, опция такая есть, но, судя по моим тестам, вообще от фонаря. Портится одна ячейка в начале верхней памяти)
Вообще - нет проблем заэмулить любые такие фичи, главное знать о них, ну и тесты провести, чтобы эмулировать поточнее. Так что любая такая защита - до первого пытливого эмуляторщика.
Лет 20 назад тема определения эмуляторов была весьма популярна. Находили всё новые и новые особенности Z80, которые в мирной жизни были не нужны, а для отлова эмуляторов хорошо подходили. Проверки такого поведения некоторые программисты включали в свои игры и журналы, чтобы они могли запускаться только на реалах. Но со временем все эти штучки благополучно добавлялись в эмуляторы. Сейчас таких неописанных особенностей скорее всего и не осталось уже - всё давно копано-перекопано вдоль и поперёк. А даже если кто-то что-то подобное и найдёт, то, зная правильное поведение, добавить его в эмулятор большого труда не составит.
С уважением, Станислав.
Barmaley_m(31.01.2021)
внешняя схема может быть высокоточным таймером, где вывод прерывания zx заведен на старт или еще куда-то. Но просто четко выдерживать в секундах, минутах или еще чем-то наверное не совсем правильно(это надо моделировать). Пользователя можно попросить ввести датакод ряда его компонентов, обычно это номер недели в году и год.
На процессоре он точно стоит, на памяти вроде тоже. Для fpga наверное придется вводить ее датакод и еще у jtag микросхем вроде есть уникальный идентификатор чипа( но может я путаю, тогда придется просить их заводить регистр для идентификации изделия, чтобы быть участниками программы "zx012021-майнинга"). И идентификатор запрашивать у сервера регистрации.
Вероятность того, что на разных платах это совпадет довольно низкая. Эта инфа может быть передана программой в чип и на основе этой последовательности чип выберет свое локальное время. А редкое событие, которое будет равно 1 монете можно построить, пропуская n-ное кол-во прерываний, а далее зафиксировав время обработки очередного прерывания и соотнося его с текущим локальным временем этого чипа. Только формулу надо так построить, чтобы за 100 часов нажатия на клавиши клавиатуры, джойстика или кликанья мышью вероятность этого не была нулевой.
Этим мы зададим и масштаб валюты, поощряя реальную работу на реальном железе. Ну а курс с рублем может быть плавающим и отображаемым на этом же сервере( если все сделки этой крипты с рублем будут только на нем).
- - - Добавлено - - -
но тогда придется моделировать случайные процессы. Ведь не все в z80 регламентировано с точностью до микросекунды( единицы микросекунды). На совсем уж худой конец и при подозрении на мошенничество, придется запрашивать фото платы( вернее определенных чипов, вводить датакоды и проверять, правда пока неясно как, прогоняя на большой скорости). Правда это ПО придется держать в большом-большом секрете тому, кто возьмется заниматься сервером регистрации. Интересы эмуляторщиков этой технологией ущемлены не будут. Так как это не защита программ, а приятный бонус( если конечно 1 монета не станет когда-нибудь стоить 10 000 руб)
Последний раз редактировалось andrews; 12.01.2021 в 18:31.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)