有没有人需要一个快速给自己程序加锁的工具?

277 天前
 vagranth

就是给自己开发的程序,增加限制使用条件。 比如限制只能在 15 天内使用。

工具可以生成一个库,自己的程序可以快速集成进去。 然后也有 GUI 工具可以生成不可篡改的 License 文件,跟程序配套提供。

3817 次点击
所在节点    奇思妙想
39 条回复
vagranth
276 天前
@iX8NEGGn 开源的有哪些呢?
如果 license 文件让服务端生成,需要服务器所有者掌控你的私钥。换句话说,他可以不经你允许生成 license ,你不担心这一点吗?
iX8NEGGn
276 天前
最近我也刚好整理这方面的内容,开源的太多了,就不列举了,Github 搜一下 License 、Copyright protection 。

对于私钥问题,首先大公司或者说营收高的软件根本不会是潜在客户,那些低营收的客户可能不那么关注这个问题,信任问题只能靠运营时间和客户数量来体现。

还有如果不使用联网校验,我卖出去一个激活码,用户分享到网上了怎么办,我想知道是如何做到一个激活码只激活一台机器的。

其次,提供的 SDK 无论做到如何复杂,破解者其实并不需要破解 SDK 的逻辑,而是破解调用 SDK 判断是否验证通过的那段程序代码,所以 SDK 上做到很安全,对程序本身而言,安全性也没有提升,安全性要从程序整体入手。

总结就是应该没什么市场,所以没赚到钱之前,我打算跑一个服务在 CF Work 可能更划算。
vagranth
276 天前
@iX8NEGGn license 可以跟硬件 id 绑定,比如 cpu 或硬盘。
安全性问题你说的对,必须从程序整体考虑
iX8NEGGn
276 天前
你再仔细想想,不联网的话不行呀,绑不上硬件的。

发给用户的是激活码,而不是 License ,激活码和机器是没有关系的,可以用这个激活码来激活任何机器,激活后的 License 才和硬件绑定。

要么就是买激活码的时候先让用户运行一下软件,软件显示机器码,用户复制机器码到网站,然后生成和机器绑定的 License 让用户下载,但这其实就是“变相联网”。
my3157
276 天前
其实这个问题的本质是如何获取能代表硬件的唯一的标识符以及如何避免伪造, 反而加密/签名之类的在其次, 最简单的一个支持 seed 的 hash 算法就能搞定

联网的情况下这个问题变得比较简单, 是因为可以观察到时候有同一个 id 的 license 是否在同时使用, 比如软件周期性上报 license id, 然后根据时间判断

离线的情况下, 只能获取一些硬件信息, 比如一般将各种硬件如硬盘, 网卡, CPU 和内存等信息综合在一起作为标识符, 但是也很难避免比如 vm clone 之类的方法
IvanLi127
276 天前
不做成壳的一部分,那还得另外加壳,不然就是君子锁呐?
openmynet
276 天前
jwt
ChaosesIb
276 天前
可以看下 HAP 网络验证: https://16hex.cc/ ,支持函数混淆、虚拟化、授权锁、调试器和虚拟机检测,支持一键加固和 C/C++/Rust/易语言/驱动源码接入,售前群 976012709
weize888
276 天前
dearmymy
276 天前
这些功能 vmp 都有啊,我突然想起来我还买过正版 vmp 。。
你个人写这些东西基本都算玩具,破解分分钟的。
vmp 记得可以显示启动次数,机器数量,时间等,还能加壳,加密。
vagranth
276 天前
明白了,上面各位说的似乎都偏向于在线激活场景。大家说的都很有道理。
站在开发者的角度,各位考虑的,最终用户使用的应用,以联网应用为主,特别是 web 应用,所以才需要函数混淆,防静态分析等等这些特性。
我说的场景,适用于最终用户使用离线应用,看起来这个场景还是比较窄。
encro
276 天前
你自己都说了,所以我能想到的办法就是:

生成一个指定过期时间的 license ,应用程序启动时检查 license 。
ming159
276 天前
应用场景不窄! 如果你向客户推销软件,希望他们试用体验一段时间.后续再选择付费的话.这个功能就是必须的了. 现在离线软件比较多的我知道的应该是工业领域的软件了. 基本都是单机版
ming159
276 天前
另外还真有这种工具: Rockey4ND https://www.rockey.com.my/portfolio-items/rockey4nd/
dearmymy
276 天前
@vagranth 跟你说了 vmp 就有你想到所有功能。我估计各大商业加壳软件都有相关解决方案。
j4fun
276 天前
你这个难度可以参考 steam 游戏不被破解的难度。。。
lucybenz
275 天前
这玩意儿最不适合的就是通用方案,通用方案体量大了 破解的的动力就更强
vagranth
272 天前
我做了一个简单的 demo 。
https://github.com/CliffHan/LightWeightSoftLock/blob/main/README_zh.md

目前主要是验证这个需求是不是真的存在。如果确实能帮到别人的话,我会进一步完善。
belite
170 天前
@vagranth #38 已 start 我最近也想搞个这种 学习性质的,之前用 python 写了一套 现在在学习 rust 想用 rust 重构还在入门中.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1114520

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX