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