如何对开发的软件加密

2019-09-05 11:52:27 +08:00
 luckrill

如何对开发的软件加密

收费后才能使用

5492 次点击
所在节点    程序员
27 条回复
rainex
2019-09-05 12:14:45 +08:00
看你是哪种形式提供的软件,以及能接受的性能下降幅度了。
一般编译为中间代码的比如 java .net 的最常用方式是混淆,来给反编译后的阅读代码和再次编译带来麻烦,混淆简单说就是把产量名类名等改成 a1 b2 这种简短且可读性差的,甚至用语言保留字来命名,这种混淆一般还能提高运行性能。
再就是可以利用调用语言运行库来执行语言代码,这样可以把代码加密,符合密钥之类条件才解密并运行,但这样的加密性能会下降的多些。
再有就是本地目标代码的,把常用的措施用上,比如可以加反调试的判断,发现进程里有常用的反编译工具或调试工具,就停止运行,比如可以把注册码的密钥算法和判断逻辑,跟业务逻辑里部分共用,来迷惑和增加修改的难度,这部分措施太多了,你去一些破解论坛多看看,比如看雪之类的,单机破解说到底就是增加破解时间成本的事,想完全防止只能是靠把部分业务逻辑放到联网服务器上,就像单机游戏够好玩的话总能吸引人破解,但网游没法破解。
ericgui
2019-09-05 12:21:31 +08:00
Think of Word, Excel and powerpoint.

I am not sure whether it's a good idea to waste your time and energy on such a thing.
starsriver
2019-09-05 12:36:05 +08:00
开源是最好的营销。你是愿意自己的软件被破解满天飞?
murmur
2019-09-05 12:50:34 +08:00
律师走起,只有没人用的软件才不被破解
LxExExl
2019-09-05 12:56:02 +08:00
人工授权 先给看呆莫 支付宝收款后发送可执行文件
wr410
2019-09-05 12:59:18 +08:00
脚本语言、中间语言 --> 只能混淆,不存在加密。

编译系语言 --> 加壳、混淆。
xomix
2019-09-05 13:01:24 +08:00
最高级的加密硬件就是个集成化的运行环境,可以运行核心代码并且无法简单读取硬件内的内容,你可以把你的核心运算置入加密硬件,然后通过调用的方式执行程序,这样没有加密硬件的程序就是个空壳,而破解加密硬件的本事和你软件售价比较他也不想破解你的软件。
loginbygoogle
2019-09-05 13:01:34 +08:00
核心业务代码放在服务器端
xenme
2019-09-05 13:05:06 +08:00
简单的就是加壳
luckrill
2019-09-05 13:23:13 +08:00
人家复制、拷贝
怎么办
Sapp
2019-09-05 14:12:54 +08:00
其实软件加密这个东西已经很落伍了,你看最近几年的趋势就知道了,对于中小开发者要么是免费使用注册会员 pro 的方式,要么就是开源+定制,为什么呢 因为你不免费根本没人用,而且别人想破解照样能破解,微软 Adobe 的软件都能破解,你觉得你的软件能不被破解?而且一旦你校验做的太过分,其实也会导致部分用户放弃你的软件,这个的典型就是 surge,不止一个人表示厌恶 surge 几乎变态的正版校验,我至今都不用这个,不是我买不起,事实上我认为他虽然卖的贵,但是作为开发者工具倒是没几个钱,我不会考虑购买是我认为这种校验方式就是建立在不信任上的,我并不支持这种不信任感蔓延,我想像我一样的不止一个人。

另外一方面适当的免费白嫖用户是有利于你的传播的,比如个人一直用你的免费,后面觉得用的习惯推广给了公司,公司肯定要给你钱的吧? 还有个人之间的互相传播,surge 如果一上架就是 648 你觉得他能火的起来?火起来还不是靠着当初那批六块钱以及白嫖用户的宣传,不然现在有这么多只为了梯子的人吃饱撑的花 300 多买这玩意翻墙?
iwtbauh
2019-09-05 15:49:06 +08:00
@rainex #1

网游也可以“破解”,即“私服”
tankren
2019-09-05 15:54:59 +08:00
电子狗
stoneabc
2019-09-05 16:14:55 +08:00
不联网登录账号不能使用,一些核心功能放服务端。
v2hub
2019-09-05 16:33:06 +08:00
核心功能放到服务器端,不要买软件,而是卖服务。
across
2019-09-05 16:35:49 +08:00
国内无解。开源什么的都是屁话,除非是大公司有精力维权。要么别搞,搞就免费的挂广告,不走 c 端收费。本地应用破解一定挡不住 -- 除非这软件没人用。
across
2019-09-05 16:48:23 +08:00
如果只是小范围自己搞搞,挂一个验证服务器也没多少流量。自己生成一对非对称密钥,根据设备、用户资料生成唯一字符串,用密钥加密成密文,拿到服务器上用私钥验证下就授权。
算是经典(过时)方案?
smdbh
2019-09-05 17:11:01 +08:00
一个连微软都解决不了的问题!
Serpai
2019-09-05 17:42:34 +08:00
加密?不存在,吧需要的服务放在后端,我前端开源都行,没有逆向不了的前端
areless
2019-09-05 21:05:51 +08:00
你可以试着用独特算法的区块链去解决这个难题。前提是软件有这个价值去保护,因为成本……

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

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

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

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

© 2021 V2EX