如何编写仅在插入USB驱动器时运行的程序?

6 投票
5 回答
5172 浏览
提问于 2025-04-16 11:42

让我来解释一下情况。
我想要一个安装在电脑上的程序,但你必须插入一个USB闪存驱动器才能运行它,因为程序的一部分存储在这个USB上。
所以关键是,如果没有电脑和USB驱动器,这个程序就没用。
因为我想让它在Windows系统上运行,除了.NET和C#之外,我应该用什么语言呢?

我能用Python吗?

5 个回答

4

如果你想要做这个是为了保护版权或管理许可证,有一些商业解决方案可以用,但这些方案很难被破解(虽然不是不可能)。自己开发一个可靠的系统,最终花的钱可能比从Pace、Aladdin或其他竞争对手那里购买解决方案还要多。

4

商业解决方案通常会有一些带有微芯片的(USB)设备,这些微芯片可以进行公钥加密。这就意味着,假冒这个设备几乎是不可能的。

举个例子:程序生成一个挑战码,然后用公钥加密这个挑战码。接着,设备用它的私钥(存储在微芯片里)解密这个挑战码,并把解密后的挑战码返回给程序进行验证。

攻击者只能攻击程序和设备之间的通信,或者直接攻击程序本身。这时候,就需要用到代码混淆、按需解密代码等技术。这些技术非常复杂,而且没有任何系统是百分之百安全的。

1

如果你可以接受在插入USB驱动器后再启动程序,那其实很简单。你可以把程序真正执行的代码放在一个单独的模块里,然后你电脑上运行的程序就可以导入这个模块(比如使用imp模块),然后再启动从USB驱动器导入的主要部分。

撰写回答