Сабж.
В смысле, может ли программа определить исполняющий ее эмулятор благодаря некоторым его особенностям, отличающим эмулятор от оригинала?
Понятно, что таких монстров, как UnReal, отследить невозможно с шансами, думаю, %99. Но все-таки...
Сабж.
В смысле, может ли программа определить исполняющий ее эмулятор благодаря некоторым его особенностям, отличающим эмулятор от оригинала?
Понятно, что таких монстров, как 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[свернуть]
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
только сейчас это всё сложнее и сложнее, в связи с тем, что эмуляторы закрывают последние "дыры".
Например можно определить по скорости чтения с TR-DOS и с ленты - обычно там срабатывают "трапы", которые позволяют значительно ускорить ход загрузки. Т.е. если сектор 256 байт положено считывать около 30000 тактов, а фактически они - секторы - прилетают чуть не махом. Однако эмуляторы часто имеют возможность отключения "трапов" тырдоса. Аналогично с лентой. Уже указывалась не раз работа с регистром R - на реале им манипулируя можно вроде как "стереть" часть программы. Но сам я так не пробовал, видел такой метод в ZX-Ревю. Ещё возможно некоторые недокументированные (внутренние) регистры Z80, которые в эмуле не отловлены (далеко ходить не надо, заглянуть в программирование и регистр флагов), но которые как то можно прочитать на реальном железе. Но: это будет работать до тех пор, пока программу, которая отличает эмулятор от реала, не сломают и не вытащат её код.
Практически считаю подобные попытки (отличение одного от другого) ненужным делом. Если это связано с обработкой экрана и т.п., то лучше сделать в программе чтото вроде сетапа, где спрашивается что используется - эмуль или реал.
Старые можно было отследить, по таймингу/командам некоторые криво эмулились. Сейчас все эмуляторы фактически 100% эмулируют оригинал, отследить нельзя.
Вопрос - зачем это нужно????
ps - Грив опередил...
Свирепый агрессивно-депрессивный мордовец!
Не уверен - не напрягай!
Не сдавайся. Дыши?
Virtual TR-DOS
ускорение ленты в Unreal тайминг учитывает.
В принципе, не нужно издеваться над пользователями эмуляторов.
насколько я помню, с последними доработками boo_boo его либа эмулит z80 на 100%.
ВГ-шка тоже вроде как 100% в анриле эмулится.
я пробовал. работает.GriV, Уже указывалась не раз работа с регистром R - на реале им манипулируя можно вроде как "стереть" часть программы. Но сам я так не пробовал, видел такой метод в ZX-Ревю
но только двухполевиках и только на тех, где для регенерации верхней части ОЗУ используется стандартный механизм z80
но и это можно эмульнуть.
вопрос к автору темы - а это вообще зачем???
Была статья каком-то Deja Vu, то ли 0А, то ли ХХ. Там и про регистр R было.
Ответ всем отписавшим: спасибо, уяснил, хотя ответ был заподозрен с самого начала. Однако хотя бы некоторые все-таки можно отследить
А вообще -- низачем, любопытно. Однако интересно было бы пустить программу в эмуле, а она пишет:"А я знаю, у тя 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[свернуть]
И ещё версию эмулятора вывести. Это серьёзно, т.к. в старых версиях UnrealSpeccy было даже небольшое API для эмулируемых программ.
Можно было например узнать версию эмулятора или даже закрыть окно.
Про детект СТАРЫХ эмуляторов можно прочитать здесь: http://zxdn.narod.ru/coding/bd05emud.txt .
что точно не эмулится - при обработке команды сброса регистр дорожки на реале обнуляется не сразу, а по битикам (что, кстати, забавно).
Добавлено через 1 минуту
API, возможно, верну - например, можно использовать для открытия урлов из прессы или для ведения логов при отладке прог
Последний раз редактировалось alone; 20.06.2007 в 18:20. Причина: Добавлено сообщение
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)