使CD运行一次
我们正在做一种"惊人的比赛"活动,并且认为CD只能播放一次很酷……就像"此消息将在5秒钟内自动销毁……"
有关如何执行此操作的任何想法?我当时以为这可能是一个编译的HTML网站,它将编写一个cookie,并且只能播放一次。我不想写注册表(不想依赖Windows,不想安装任何东西,等等)。
我也不在乎它是否可入侵……这是一次有趣的事件,我真的不在乎人们是否可以删除Cookie或者其他东西。
还有其他想法吗?
解决方案
回答
如果内容是HTML并在正常的浏览器窗口中运行,则cookie可能有效,但有一些警告:
- 当IE是默认浏览器时,用户运行一次CD。当Firefox是默认浏览器时,用户会稍后运行,因此无法检查Cookie。
- 浏览器的安全设置可能被锁定以防止使用脚本,因此无法设置Cookie(更多是IE问题)。
一个替代方法可能是Flash等效于cookie,但是如果脚本被锁定,则Flash可能也是如此。
回答
并不是我们要找的东西,但是我们可以放入可重写媒体,并使可执行文件本身(或者部分内容)被覆盖。
我不知道CD-RW是否可以自动执行此操作,或者我们是否必须查看廉价的USB记忆棒。
回答
运行该计算机的计算机可以访问互联网吗?我们可以轻松地加载远程URL(从autorun.inf执行'start http://yoururl.com'),存储cookie并阻止cookie(如果存在cookie)。
回答
我要说的是,使用一个唯一的时间片对光盘的内容进行加密(一部分),这是我们从服务器请求的,该服务器直接进行读取,然后删除解密密钥。我们可以在每个磁盘上写一个标识符,以便可以使用多个磁盘,每个磁盘都有一个唯一的密钥。
这需要网络访问和一些加密工具,但是一个非常简单的实现方式可以实现我们希望的操作,是可行的,并且除非捕获并存储一个时间片,否则它是"牢不可破的"。
如果只是为了好玩,这应该足够安全。
回答
如果使用Flash创建内容,则可以使用包装程序(例如Zinc)来生成内容的跨平台可执行文件。
然后,Flash可以使用其Cookie(本地共享对象)的版本来确定何时显示内容,第一次写入LSO,然后再从中读取。
回答
如果允许其被黑客入侵,那么我将采用HTML + JavaScript的简单解决方案,要求输入(例如)GUID,并在代码中进行一些愚蠢的混淆以验证GUID。
我的意思是愚蠢的模糊验证,就像将大量ROT13的GUID放在一起,然后添加代码以仅接受`Math.floor(PI * E + 32 /(new DateTime())。getYear())数组中的第一个GUID,然后使用足够注释/不清楚的代码再次ROT13,然后根据结果检查用户输入。一站式完成所有操作,或者使用已知种子以某种伪随机方式生成GUID ...我们就知道了:)。
唯一的障碍可能是IE不允许本地JavaScript吗?嗯,看起来他们需要处理InfoBar的事情:(。
回答
我们也可以设置一个阻止播放的注册表项,尽管可以绕开它。
回答
我认为我们最好的选择是使用可重写媒体。我们可以轻松地创建应用程序(例如HTML网站或者类似的内容),并且在最后一个链接或者最后一页之后,但是我们决定执行此操作,可以使用一些命令行刻录机执行脚本,以擦除可擦写介质,甚至编写带有文本文件或者Flash的CD中保留的ISO,它说明CD永远丢失。
看一些命令行刻录机。 Linux有几个,在这里不值得一提,对于Windows,我们可以使用Cheetah CommandLine Burner等。
如果我们希望在不依赖于已安装操作系统的情况下制作CD,则应查看LIVE CD。 FreeDOS是" DOS兼容应用程序"的一种选择,或者我建议我们使用Linux live CD。
另外,对于小型HTTP服务器,例如lighthttpd甚至浏览器,我们将有多种选择,从文本界面到图形界面都有多种风格。
在比赛中祝你好运:D。顺便说一句好主意!
回答
制作一个Java Swing应用程序。不需要Internet,它可以在Mac,Windows和Linux上运行。我们可以写入文件系统以进行锁定。 System.getProperty(" user.home")为我们提供该平台的主目录。我们可能必须在CD中包含jre。
回答
我们可以创建一个易失的注册表项。它只有在重新启动计算机后才存在。该解决方案非常"容易破解",但它很简单,可能足以满足需求。
在这里看看REG_OPTION_VOLATILE。