首页新闻找找看学习计划

请问如何让程序只能在 U盘里面运行?

0
悬赏园豆:100 [已解决问题] 解决于 2013-08-02 19:10

市面上有很多使用 U盘分发的程序,U盘看起来就是很小的几个 G的,程序在 U盘里面点击就可以运行,拷贝出来就不能运行,U盘格式化了再把程序拷贝回去就不能运行了(作废了)。请问有哪位大侠有知道怎么样才能做到这样呢?U盘有什么要求吗?

U
Highflyer的主页 Highflyer | 初学一级 | 园豆:112
提问于:2013-07-18 19:02
< >
分享
最佳答案
1

程序启动-->获取启动路径-->通过启动路径获取盘符-->获取硬盘序列号-->检查硬盘序列号与内置序列号是否一致?-->正常启动(不一致退出)

U盘格式化后,序列号就变了,所以也不能启动。

收获园豆:60
上帝之城 | 老鸟四级 |园豆:2452 | 2013-07-19 10:16
其他回答(5)
0

感觉是运行初始化时,获取程序路径,检测下所在盘是否为移动硬盘。

收获园豆:10
迷路君的博客 | 园豆:212 (菜鸟二级) | 2013-07-18 21:21

U盘格式化了再把程序拷贝回去就不能运行了(作废),说明某些标志改变了。

比如原本盘里存在某个特定文件,格式化后检测不到了,说明你篡改了,程序就不运行。

支持(0) 反对(0) 迷路君的博客 | 园豆:212 (菜鸟二级) | 2013-07-18 21:33

如果固执到别的U盘也不能运行,所以只判断是否为移动硬盘是不行的。

支持(0) 反对(0) Highflyer | 园豆:112 (初学一级) | 2013-07-18 22:39
0

这个问题有意思,关注一下

@@@一统@@@ | 园豆:1551 (小虾三级) | 2013-07-18 21:27
0

用加密狗?

happydaily | 园豆:581 (小虾三级) | 2013-07-18 22:09
0

直接用加密狗不就行了, 或者你的程序认定那个U盘的硬件序号.  通过程序把U盘的序列ID读出来写到程序里面, 启动时检测

收获园豆:20
风浪 | 园豆:2754 (老鸟四级) | 2013-07-19 01:49
1

U盘肯定有个唯一的ID...

程序运行的时候,先找到U盘,然后读取一些指定的文件,跟程序匹配起来。

U盘只要能唯一ID就行。原理其实就是加密狗!

收获园豆:10
二十三号同学 | 园豆:941 (小虾三级) | 2013-07-19 08:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册