Важная информация

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 16

Тема: Возможна ли детекция факта эмулирования из эмулянта?

  1. #1
    Veteran Аватар для TomCaT
    Регистрация
    25.06.2005
    Адрес
    Одесса
    Сообщений
    1,792
    Спасибо Благодарностей отдано 
    53
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    22 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Возможна ли детекция факта эмулирования из эмулянта?

    Сабж.

    В смысле, может ли программа определить исполняющий ее эмулятор благодаря некоторым его особенностям, отличающим эмулятор от оригинала?

    Понятно, что таких монстров, как UnReal, отследить невозможно с шансами, думаю, %99. Но все-таки...
    Помни. Только на компьютере можно семь раз Cut, а один - Format. В реале все иначе. (c)
    Власть людей сильнее, чем люди у власти.
    Чем меньше мы смотрим на мир, тем больше задумываемся о нем. (c)

    Скрытый текст

    Can you help Robin in his quest for the silver arrow? (c) Odin "Robin of the Wood"
    Мы все немного режем по дереву, а потом собираем корабли в бутылках.
    Is it the same old story you are going to tell me
    or is it the old story telling me and you we are the same?
    http://www.sky.od.ua/~ptsk
    [свернуть]


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

  3. #2
    Veteran Аватар для GriV
    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Теоретически возможно

    только сейчас это всё сложнее и сложнее, в связи с тем, что эмуляторы закрывают последние "дыры".
    Например можно определить по скорости чтения с TR-DOS и с ленты - обычно там срабатывают "трапы", которые позволяют значительно ускорить ход загрузки. Т.е. если сектор 256 байт положено считывать около 30000 тактов, а фактически они - секторы - прилетают чуть не махом. Однако эмуляторы часто имеют возможность отключения "трапов" тырдоса. Аналогично с лентой. Уже указывалась не раз работа с регистром R - на реале им манипулируя можно вроде как "стереть" часть программы. Но сам я так не пробовал, видел такой метод в ZX-Ревю. Ещё возможно некоторые недокументированные (внутренние) регистры Z80, которые в эмуле не отловлены (далеко ходить не надо, заглянуть в программирование и регистр флагов), но которые как то можно прочитать на реальном железе. Но: это будет работать до тех пор, пока программу, которая отличает эмулятор от реала, не сломают и не вытащат её код.
    Практически считаю подобные попытки (отличение одного от другого) ненужным делом. Если это связано с обработкой экрана и т.п., то лучше сделать в программе чтото вроде сетапа, где спрашивается что используется - эмуль или реал.
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  4. #3
    --- Аватар для Shadow Maker
    Регистрация
    01.03.2005
    Адрес
    Саранск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    235
    Поблагодарили
    100 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Старые можно было отследить, по таймингу/командам некоторые криво эмулились. Сейчас все эмуляторы фактически 100% эмулируют оригинал, отследить нельзя.

    Вопрос - зачем это нужно????

    ps - Грив опередил...
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

    Не сдавайся. Дыши?

    Virtual TR-DOS

  5. #4
    Guru
    Регистрация
    03.01.2006
    Адрес
    Рязань
    Сообщений
    2,935
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  6. #5
    Veteran Аватар для Sinus
    Регистрация
    29.01.2005
    Адрес
    Belarus, Grodno
    Сообщений
    1,279
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    насколько я помню, с последними доработками boo_boo его либа эмулит z80 на 100%.
    ВГ-шка тоже вроде как 100% в анриле эмулится.

    GriV, Уже указывалась не раз работа с регистром R - на реале им манипулируя можно вроде как "стереть" часть программы. Но сам я так не пробовал, видел такой метод в ZX-Ревю
    я пробовал. работает.
    но только двухполевиках и только на тех, где для регенерации верхней части ОЗУ используется стандартный механизм z80

    но и это можно эмульнуть.
    вопрос к автору темы - а это вообще зачем???
    [target] [zemu] [js8x] [pouet] KAY-1024, 5''FDD, 3''FDD, HDD

  7. #6
    Activist Аватар для Adramelek
    Регистрация
    17.02.2005
    Адрес
    USA
    Сообщений
    371
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Была статья каком-то Deja Vu, то ли 0А, то ли ХХ. Там и про регистр R было.

  8. #7
    Veteran Аватар для TomCaT
    Регистрация
    25.06.2005
    Адрес
    Одесса
    Сообщений
    1,792
    Спасибо Благодарностей отдано 
    53
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    22 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ответ всем отписавшим: спасибо, уяснил, хотя ответ был заподозрен с самого начала. Однако хотя бы некоторые все-таки можно отследить

    А вообще -- низачем, любопытно. Однако интересно было бы пустить программу в эмуле, а она пишет:"А я знаю, у тя UnReal.)" Даже если фактически она на это и не отреагирует.

    И ловушки у пользователей (не у мэйкеров) вкл. почти всегда -- по ним, наверное, лучше всего...

    И интересная вещь с этим регистром регенерации, его тему в "Как написать игру..." обошли, но из другой литературы понятно, что служит он для регенерации памяти. Видимо, задача защит в том, чтобы не давать ему переполняться в интервал необходимости обновления нужного куска памяти. Но это, конечно, не по теме...
    Помни. Только на компьютере можно семь раз Cut, а один - Format. В реале все иначе. (c)
    Власть людей сильнее, чем люди у власти.
    Чем меньше мы смотрим на мир, тем больше задумываемся о нем. (c)

    Скрытый текст

    Can you help Robin in his quest for the silver arrow? (c) Odin "Robin of the Wood"
    Мы все немного режем по дереву, а потом собираем корабли в бутылках.
    Is it the same old story you are going to tell me
    or is it the old story telling me and you we are the same?
    http://www.sky.od.ua/~ptsk
    [свернуть]


  9. #8
    Master
    Регистрация
    17.01.2005
    Адрес
    Старый Оскол
    Сообщений
    537
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    4 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от TomCaT Посмотреть сообщение
    Однако интересно было бы пустить программу в эмуле, а она пишет:"А я знаю, у тя UnReal.)"
    И ещё версию эмулятора вывести. Это серьёзно, т.к. в старых версиях UnrealSpeccy было даже небольшое API для эмулируемых программ.
    Можно было например узнать версию эмулятора или даже закрыть окно.
    Про детект СТАРЫХ эмуляторов можно прочитать здесь: http://zxdn.narod.ru/coding/bd05emud.txt .

  10. #9
    Banned
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sinus Посмотреть сообщение
    ВГ-шка тоже вроде как 100% в анриле эмулится.
    че-т я сомневаюсь

  11. #10
    Guru
    Регистрация
    03.01.2006
    Адрес
    Рязань
    Сообщений
    2,935
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Добавлено через 1 минуту
    API, возможно, верну - например, можно использовать для открытия урлов из прессы или для ведения логов при отладке прог
    Последний раз редактировалось alone; 20.06.2007 в 18:20. Причина: Добавлено сообщение

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Ваши права

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