Сделать CD за один раз

Мы проводим мероприятие "Удивительная гонка" и думаем, что было бы здорово иметь компакт-диски, которые могли бы играть только один раз... как "это сообщение саморазрушится за 5 секунд..."

Любые мысли о том, как это сделать? Я думал, что это может быть скомпилированный HTML-сайт, который будет писать cookie и играть только один раз. Я не хочу писать в реестр (не хочу зависеть от окон, не хочу ничего устанавливать и т.д.).

Мне также все равно, если он взломан... Это одноразовое забавное событие, и мне не очень-то нужно, чтобы люди могли удалить cookie или что-то в этом роде.

Любые другие идеи?

Ответ 1

Если содержимое HTML и выполняется внутри обычного окна браузера, cookie может работать, но есть оговорки:

  • Пользователь запускает компакт-диск один раз, когда IE является браузером по умолчанию. Пользователь запускается позднее, когда Firefox является браузером по умолчанию, поэтому cookie не может быть проверен.
  • Параметры безопасности браузера могут быть заблокированы, чтобы предотвратить использование script, поэтому cookie не может быть установлен (больше проблемы с IE).

Альтернативой может быть эквивалент Flash для файлов cookie, но если script был заблокирован, то это может быть верно для Flash.

Ответ 2

Если вы использовали Flash для создания контента, вы могли бы использовать программу-оболочку, такую ​​как Zinc для создания кросс-платформенных исполняемых файлов содержание.

Затем Flash может использовать свою версию файлов cookie (локальные общие объекты), чтобы определить, когда содержимое было отображено, - напишите на LSO в первый раз и после этого прочитайте его.

Ответ 3

Я бы сказал, зашифровать (часть) содержимое диска с помощью уникальной одноразовой прокладки, которую вы запрашиваете с сервера, который читает напрямую, за которым следует удаление ключа дешифрования. Вы можете написать идентификатор на каждом диске, чтобы вы могли использовать несколько дисков, каждый с уникальным ключом.

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

Если просто для удовольствия, это должно быть достаточно безопасным.

Ответ 4

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

Посмотрите на REG_OPTION_VOLATILE .

Ответ 5

Будут ли на компьютерах, на которых это выполняется, иметь доступ в Интернет? Вы можете легко загрузить удаленный url (выполнить 'start http://yoururl.com' из autorun.inf), сохранить файл cookie и предотвратить его загружается снова, если файл cookie существует.

Ответ 6

Если бы это разрешило быть взломанным, я бы просто пошел с простым решением HTML + JavaScript, требуя (скажем) GUID для ввода, с некоторой глупой запутанностью в коде для проверки GUID.

То, что я подразумеваю под глупой проверенной проверкой, - это что-то вроде объединения большого массива GUID ROT13'a, а затем добавления кода, чтобы принимать только Math.floor(PI * E + 32/(new DateTime()).getYear()) '-й GUID в массиве, а ROT13 - снова с использованием достаточно раскованного/нечеткого кода, затем проверьте ввод пользователя на результат. Делайте все это в одной строке для ударов или генерируйте GUID в некотором псевдослучайном порядке с использованием известного семени... вы получаете идею:).

Единственная ошибка может быть, если IE не разрешает локальный JavaScript? Хм, похоже, им нужно иметь дело с InfoBar: (.

Ответ 7

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

Ответ 8

Я думаю, что лучше всего использовать для этого перезаписываемые носители. Вы можете легко создать приложение, например, на веб-сайте HTML или что-то в этом роде, и после последней ссылки или последней страницы, однако вы решите сделать это, вы можете выполнить script с помощью какой-либо командной строки, которая удалит перезаписываемый носитель или даже напишите ISO, который вы храните на компакт-диске с текстовым файлом или вспышкой, которая объясняет, что компакт-диск потерян навсегда.

Посмотрите на некоторые горелки командной строки. У Linux есть несколько, что не стоит здесь упоминать, для Windows вы можете использовать Cheetah CommandLine Burner среди нескольких других.

Если вы хотите сделать компакт-диск, в зависимости от установленной ОС, вы должны посмотреть LIVE CD. FreeDOS - это выбор для "совместимых с DOS приложений", или я предлагаю вам использовать Linux live CD.

Также у вас будет несколько вариантов для небольших HTTP-серверов, таких как lighthttpd и даже браузеры в нескольких вариантах от текстовых интерфейсов до графических.

Удачи в гонке: D. Отличная идея BTW!

Ответ 9

Сделайте приложение Java Swing. Это не потребует Интернета и работает на Mac, Windows и Linux. Вы можете записать в файловую систему для блокировки. System.getProperty( "user.home" ) дает вам домашний эквивалент для платформы. Возможно, вам придется включить jre на свой компакт-диск.

Ответ 10

Не совсем то, что вы ищете, но вы можете использовать перезаписываемые носители и иметь исполняемый файл over-write (или его часть).

Я не знаю, мог ли CD-RW делать это автоматически, или если вам придется искать дешевые USB-накопители.