Сделать CD запустить один раз
Мы проводим мероприятие "Amazing Race" и думаем, что было бы здорово иметь диски, которые могли бы воспроизводиться только один раз... как "это сообщение будет самоуничтожено через 5 секунд..."
Есть мысли о том, как это сделать? Я думал, что это может быть скомпилированный HTML-сайт, который напишет cookie и будет играть только один раз. Я не хочу писать в реестр (не хочу зависеть от Windows, не хочу ничего устанавливать и т. Д.).
Мне также все равно, можно ли его взломать... Это разовое веселое событие, и мне не особо важно, могут ли люди удалить cookie или что-то еще.
Есть другие идеи?
10 ответов
Если вы использовали Flash для создания контента, вы можете использовать программу-оболочку, такую как Zinc, для создания кроссплатформенных исполняемых файлов контента.
Затем Flash может использовать свою версию файлов cookie ( локальные общие объекты), чтобы определить, когда контент был отображен - сначала записать в LSO, а затем прочитать из него.
Если содержимое является HTML и запускается в обычном окне браузера, тогда cookie может работать, но есть предостережения:
- Пользователь запускает CD один раз, когда IE является браузером по умолчанию. Пользователь запускается позже, когда Firefox является браузером по умолчанию, поэтому cookie не может быть проверен.
- Настройки безопасности браузера могут быть заблокированы, чтобы предотвратить использование скрипта, поэтому cookie не может быть установлен (это больше проблема IE).
Альтернативой может быть Flash-эквивалент файлов cookie, но если скрипт был заблокирован, то же самое может быть верно для Flash.
Вы можете создать изменчивую запись в реестре. Он будет существовать только до перезагрузки компьютера. Это решение очень "взломанное", но оно простое и может быть достаточно для того, что вы хотите сделать.
Посмотрите на REG_OPTION_VOLATILE здесь.
Я бы сказал зашифровать (частично) содержимое диска с помощью уникальной временной панели, которую вы запрашиваете с сервера, который выполняет чтение непосредственно, а затем удаляет ключ дешифрования. Вы можете написать идентификатор на каждом диске, чтобы вы могли использовать несколько дисков, каждый с уникальным ключом.
Для этого требуется доступ к сети и некоторые инструменты шифрования, но очень простая реализация будет делать то, что вы от нее хотите, выполнимо, и она будет "неразрушимой", если не будет захвачена и сохранена единая временная панель.
Если только для забавы, это должно быть достаточно безопасно.
Вы также можете установить раздел реестра, который будет препятствовать воспроизведению, хотя это можно обойти.
Создайте приложение Java Swing. Для этого не требуется Интернет, и он работает на Mac, Windows и Linux. Вы можете написать в файловую систему для блокировки. System.getProperty ("user.home") предоставляет домашний эквивалент для платформы. Возможно, вам придется включить JRE в свой компакт-диск.
Будут ли на компьютерах, на которых он запущен, доступ в интернет? Вы можете легко загрузить удаленный URL-адрес (выполнить "start http://yoururl.com/" из autorun.inf), сохранить файл cookie и предотвратить его повторную загрузку, если файл cookie существует.
Если это разрешено взламывать, то я бы просто пошел с простым решением HTML + JavaScript, требующим (скажем) ввода GUID, с некоторой глупой путаницей в коде для проверки GUID.
Под глупой запутанной проверкой я подразумеваю что-то вроде создания большого массива GUID с ROT13, а затем добавления кода, который принимает только Math.floor(PI * E + 32/(new DateTime()).getYear())
ой GUID в массиве, и ROT13 его снова с использованием достаточно незакомментированного / неясного кода, а затем проверьте введенный пользователем результат. Делайте все в одну строку для ударов, или генерируйте GUID каким-то псевдослучайным образом, используя известное начальное число... Вы понимаете:).
Единственное препятствие может быть, если IE не разрешает локальный JavaScript? Хм, похоже, им нужно разобраться с вещью InfoBar:(.
Я думаю, что вам лучше всего использовать перезаписываемые носители для этого. Вы можете легко создать свое приложение, например, HTML-сайт или что-то в этом роде, и после последней ссылки или последней страницы, однако вы решите сделать это, если вы захотите выполнить сценарий с каким-то средством записи в командной строке, который будет стирать перезаписываемый носитель или даже писать ISO, который вы храните на компакт-диске с текстовым файлом или флэш-памятью, которая объясняет, что компакт-диск потерян навсегда.
Посмотрите на некоторые горелки командной строки. В Linux есть несколько, которые не стоит здесь упоминать, для Windows вы можете использовать Cheetah CommandLine Burner среди нескольких других.
Если вы хотите записать компакт-диск независимо от установленной ОС, вам стоит посмотреть LIVE CD. FreeDOS - это выбор "Совместимых с DOS приложений" или мое предложение использовать Linux live CD.
Также у вас будет несколько опций для небольших HTTP-серверов, таких как lighthttpd и даже браузеры в нескольких вариантах от текстовых интерфейсов до графических.
Удачи на гонках:D. Отличная идея, кстати!
Не совсем то, что вы ищете, но вы можете поместить его на перезаписываемый носитель и получить сам перезаписываемый файл (или часть себя).
Я не знаю, может ли CD-RW сделать это автоматически, или вам придется смотреть на дешевые USB-накопители.