User Tag List

Страница 2 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 11 по 20 из 48

Тема: Есть ли способ программе определить на z80 она выполняется или на его эмуляторе?

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    как вариант - посмотреть как это делают для FUZIX:
    https://github.com/EtchedPixels/FUZI...util/cpuinfo.c
    если честно, разбираться самому - лень (ввиду сомнительной полезности данных знаний), но чототам следующее из LD A,R и подобного

    - - - Добавлено - - -

    Ахах, там по тексту "вот тут должны быть пустые строки и процедура строго раньше вызова because of bug in {лучшем компиляторе} SDCC" ))
    Последний раз редактировалось Error404; 12.01.2021 в 13:37.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Есть, и достаточно нехитрый способ. Причём тип процессора вообще не важен (речь про детект работы ПО под эмулятором, а не на реале). Но свою "находку" пока не могу рассказать В своём ПО активно использую, достоверность 146% !

    - - - Добавлено - - -

    Цитата Сообщение от andrews Посмотреть сообщение
    Есть идея майнить на спектрумах специальную криптовалюту, чтобы ее невозможно было майнить на эмулях. Иначе на мощных компах процесс пойдет в сотни раз быстрее и она обесценится.
    Найти и обезвредить причинный участок кода никакая не проблема.

    - - - Добавлено - - -

    Цитата Сообщение от andrews Посмотреть сообщение
    А если дополнительно установить на плату чип, который невозможно сэмулировать?
    Всё равно финал всех заморочек будет в виде: "if <чего-то там> then <туда-то> else <досвидос>"

    В отладчике эмулятора это ловится на раз-два, вместо "if" записывается "goto" и gotoво дело
    Последний раз редактировалось Denn; 12.01.2021 в 14:36.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  4. #3

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,287
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    202
    Спасибо Благодарностей получено 
    1,456
    Поблагодарили
    946 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    финал всех заморочек будет в виде: "if <чего-то там> then <туда-то> else <досвидос>"
    В отладчике эмулятора это ловится на раз-два, вместо "if" записывается "goto" и gotoво дело
    программно это можно запутать - компиляция/байткод - вычислить будет очень сложно.
    ..................
    Denn, вот простой пример - адвентюра для +3 http://www.tzxvault.org/Spectrum/Disks/Myth.zip
    попробуй обойти запрос на рег.данные
    Последний раз редактировалось goodboy; 12.01.2021 в 14:54.

  5. #4

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,373
    Спасибо Благодарностей отдано 
    1,695
    Спасибо Благодарностей получено 
    2,214
    Поблагодарили
    868 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    вычислить будет очень сложно.
    Сложно - не значит невозможно.
    То, что зашифровал один, потенциально может быть расшифровано другим)

  6. #5

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    вычислить будет очень сложно
    Вопрос востребованности конкретного ПО и степени заинтересованности хакеров.


    Цитата Сообщение от goodboy Посмотреть сообщение
    попробуй обойти запрос на рег.данные
    Мои интересы только в плоскости ПРК "Орион", причём сугубо реалов. Ради спора изучать другую платформу и среду отладки для неё не готов.
    Запутывание кода сам практикую, но прекрасно понимаю, что все эти защиты - на тему разнообразия инструментария и порога терпения взломщика, ничего невозможного там нет в принципе.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  7. #6

    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,870
    Спасибо Благодарностей отдано 
    521
    Спасибо Благодарностей получено 
    250
    Поблагодарили
    224 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сравниться по производительности с видеокартами и процессорами PC на Спектруме невозможно. Следовательно нужен какой-то другой подход. Сбор каких-то характеристик реального железа и маловероятные события при его функционировании. Программа же должна вносить нечто, чтобы требуемое для регистрации новой монеты случалось все же с ненулевой вероятностью после N<100 часов работы "реального железа"(при этом если на компьютере не происходило нечто осмысленное и он был просто включен, время возрастало непропорционально) Центральный сервер же должен, проанализировав блок данных, присланных регистрирующим, выносить вердикт и подтверждать регистрацию.

    Цели такой "валюты" не инвестиционные и не анонимайзерские, а иные:
    1) усилить интерес к реальному железу на z80;
    2) к работе на этом реальном железе( следовательно и в новом софте);
    3) дать людям средство для расчетов в своей среде, минуя деньги( хотя, если сделать это товаром<-> обмен на обычные деньги или обычную крипту, то первые два пункта уже не работают в полной мере.

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

    - - - Добавлено - - -

    Цитата Сообщение от Denn Посмотреть сообщение
    Мои интересы только в плоскости ПРК "Орион", причём сугубо реалов.
    видимо и эмуляторы там пока не столь изощренные как на Спектрумах, но при замене проца на z80 появляются и точки соприкосновения. Правда не в курсе, есть ли такая замена на ПРК "Орион"

    - - - Добавлено - - -

    Цитата Сообщение от Eltaron Посмотреть сообщение
    Вот прямо этим чипом и надо майнить, тогда сработает
    уже объяснился. Чтобы только не грузить основную систему не свойственными ей до этого задачами. Потом это по желанию владельца, как необязательная опция.
    Последний раз редактировалось andrews; 12.01.2021 в 15:44.

  8. #7

    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,870
    Спасибо Благодарностей отдано 
    521
    Спасибо Благодарностей получено 
    250
    Поблагодарили
    224 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andrews Посмотреть сообщение
    Сбор каких-то характеристик реального железа
    самое простое, что приходит в голову, это фиксировать время между запросом на прерывание и выходом из него

  9. #8

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andrews Посмотреть сообщение
    самое простое, что приходит в голову, это фиксировать время между запросом на прерывание и выходом из него
    А как фиксировать время? Нужна временнάя "точка опоры".
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  10. #9

    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,870
    Спасибо Благодарностей отдано 
    521
    Спасибо Благодарностей получено 
    250
    Поблагодарили
    224 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    А как фиксировать время? Нужна временнάя "точка опоры"
    внешняя схема может быть высокоточным таймером, где вывод прерывания zx заведен на старт или еще куда-то. Но просто четко выдерживать в секундах, минутах или еще чем-то наверное не совсем правильно(это надо моделировать). Пользователя можно попросить ввести датакод ряда его компонентов, обычно это номер недели в году и год.
    На процессоре он точно стоит, на памяти вроде тоже. Для fpga наверное придется вводить ее датакод и еще у jtag микросхем вроде есть уникальный идентификатор чипа( но может я путаю, тогда придется просить их заводить регистр для идентификации изделия, чтобы быть участниками программы "zx012021-майнинга"). И идентификатор запрашивать у сервера регистрации.

    Вероятность того, что на разных платах это совпадет довольно низкая. Эта инфа может быть передана программой в чип и на основе этой последовательности чип выберет свое локальное время. А редкое событие, которое будет равно 1 монете можно построить, пропуская n-ное кол-во прерываний, а далее зафиксировав время обработки очередного прерывания и соотнося его с текущим локальным временем этого чипа. Только формулу надо так построить, чтобы за 100 часов нажатия на клавиши клавиатуры, джойстика или кликанья мышью вероятность этого не была нулевой.
    Этим мы зададим и масштаб валюты, поощряя реальную работу на реальном железе. Ну а курс с рублем может быть плавающим и отображаемым на этом же сервере( если все сделки этой крипты с рублем будут только на нем).

    - - - Добавлено - - -

    Цитата Сообщение от CityAceE Посмотреть сообщение
    зная правильное поведение, добавить его в эмулятор большого труда не составит
    но тогда придется моделировать случайные процессы. Ведь не все в z80 регламентировано с точностью до микросекунды( единицы микросекунды). На совсем уж худой конец и при подозрении на мошенничество, придется запрашивать фото платы( вернее определенных чипов, вводить датакоды и проверять, правда пока неясно как, прогоняя на большой скорости). Правда это ПО придется держать в большом-большом секрете тому, кто возьмется заниматься сервером регистрации. Интересы эмуляторщиков этой технологией ущемлены не будут. Так как это не защита программ, а приятный бонус( если конечно 1 монета не станет когда-нибудь стоить 10 000 руб )
    Последний раз редактировалось andrews; 12.01.2021 в 18:31.

  11. #10

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,213
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,641
    Поблагодарили
    572 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Лет 20 назад тема определения эмуляторов была весьма популярна. Находили всё новые и новые особенности Z80, которые в мирной жизни были не нужны, а для отлова эмуляторов хорошо подходили. Проверки такого поведения некоторые программисты включали в свои игры и журналы, чтобы они могли запускаться только на реалах. Но со временем все эти штучки благополучно добавлялись в эмуляторы. Сейчас таких неописанных особенностей скорее всего и не осталось уже - всё давно копано-перекопано вдоль и поперёк. А даже если кто-то что-то подобное и найдёт, то, зная правильное поведение, добавить его в эмулятор большого труда не составит.
    С уважением, Станислав.

    Этот пользователь поблагодарил CityAceE за это полезное сообщение:

    Barmaley_m(31.01.2021)

Страница 2 из 5 ПерваяПервая 12345 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Мертвый Z80 как определить
    от NEO SPECTRUMAN в разделе Для начинающих
    Ответов: 73
    Последнее: 11.05.2019, 22:56
  2. Ответов: 8
    Последнее: 26.12.2014, 02:32
  3. Ответов: 27
    Последнее: 23.05.2013, 00:06
  4. Куплю Atari 2600 или его клон. Или поменяю на Синтез
    от Mifody в разделе Барахолка (архив)
    Ответов: 1
    Последнее: 20.08.2011, 11:59
  5. Купили бы вы Z80 20MHz , если будет куда его установить ?
    от fan в разделе Несортированное железо
    Ответов: 61
    Последнее: 06.12.2006, 15:06

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •