V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
luckrill
V2EX  ›  程序员

如何对开发的软件加密

  •  2
     
  •   luckrill · 2019-09-05 11:52:27 +08:00 · 5268 次点击
    这是一个创建于 1666 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如何对开发的软件加密

    收费后才能使用

    27 条回复    2019-09-06 13:43:37 +08:00
    rainex
        1
    rainex  
       2019-09-05 12:14:45 +08:00 via iPad
    看你是哪种形式提供的软件,以及能接受的性能下降幅度了。
    一般编译为中间代码的比如 java .net 的最常用方式是混淆,来给反编译后的阅读代码和再次编译带来麻烦,混淆简单说就是把产量名类名等改成 a1 b2 这种简短且可读性差的,甚至用语言保留字来命名,这种混淆一般还能提高运行性能。
    再就是可以利用调用语言运行库来执行语言代码,这样可以把代码加密,符合密钥之类条件才解密并运行,但这样的加密性能会下降的多些。
    再有就是本地目标代码的,把常用的措施用上,比如可以加反调试的判断,发现进程里有常用的反编译工具或调试工具,就停止运行,比如可以把注册码的密钥算法和判断逻辑,跟业务逻辑里部分共用,来迷惑和增加修改的难度,这部分措施太多了,你去一些破解论坛多看看,比如看雪之类的,单机破解说到底就是增加破解时间成本的事,想完全防止只能是靠把部分业务逻辑放到联网服务器上,就像单机游戏够好玩的话总能吸引人破解,但网游没法破解。
    ericgui
        2
    ericgui  
       2019-09-05 12:21:31 +08:00   ❤️ 3
    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
        3
    starsriver  
       2019-09-05 12:36:05 +08:00 via Android
    开源是最好的营销。你是愿意自己的软件被破解满天飞?
    murmur
        4
    murmur  
       2019-09-05 12:50:34 +08:00   ❤️ 2
    律师走起,只有没人用的软件才不被破解
    LxExExl
        5
    LxExExl  
       2019-09-05 12:56:02 +08:00
    人工授权 先给看呆莫 支付宝收款后发送可执行文件
    wr410
        6
    wr410  
       2019-09-05 12:59:18 +08:00
    脚本语言、中间语言 --> 只能混淆,不存在加密。

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

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

    网游也可以“破解”,即“私服”
    tankren
        13
    tankren  
       2019-09-05 15:54:59 +08:00   ❤️ 1
    电子狗
    stoneabc
        14
    stoneabc  
       2019-09-05 16:14:55 +08:00
    不联网登录账号不能使用,一些核心功能放服务端。
    v2hub
        15
    v2hub  
       2019-09-05 16:33:06 +08:00
    核心功能放到服务器端,不要买软件,而是卖服务。
    across
        16
    across  
       2019-09-05 16:35:49 +08:00
    国内无解。开源什么的都是屁话,除非是大公司有精力维权。要么别搞,搞就免费的挂广告,不走 c 端收费。本地应用破解一定挡不住 -- 除非这软件没人用。
    across
        17
    across  
       2019-09-05 16:48:23 +08:00
    如果只是小范围自己搞搞,挂一个验证服务器也没多少流量。自己生成一对非对称密钥,根据设备、用户资料生成唯一字符串,用密钥加密成密文,拿到服务器上用私钥验证下就授权。
    算是经典(过时)方案?
    smdbh
        18
    smdbh  
       2019-09-05 17:11:01 +08:00
    一个连微软都解决不了的问题!
    Serpai
        19
    Serpai  
       2019-09-05 17:42:34 +08:00
    加密?不存在,吧需要的服务放在后端,我前端开源都行,没有逆向不了的前端
    areless
        20
    areless  
       2019-09-05 21:05:51 +08:00
    你可以试着用独特算法的区块链去解决这个难题。前提是软件有这个价值去保护,因为成本……
    ninjachen
        21
    ninjachen  
       2019-09-05 21:21:33 +08:00 via Android
    收费使用那个叫登录吧,付钱了给个账号登录用
    shynome
        22
    shynome  
       2019-09-05 22:25:20 +08:00 via Android
    lulinux
        24
    lulinux  
       2019-09-06 08:17:12 +08:00 via Android
    知道 SaaS 软件为什么被斯托曼痛恨吗?因为软件在终端用户那里没有副本,破解难度非常高。
    murmur
        25
    murmur  
       2019-09-06 08:38:39 +08:00
    @tankren 以前专门有打狗棒是破解狗的,cubase 系列是一直这么玩,大概从 cubase7 以后,律师团和破解者达成了 py,elements 的加密万年不变每次都有破解,pro 版再无破解
    daijinming
        26
    daijinming  
       2019-09-06 10:27:26 +08:00
    https://github.com/lilunjia/simple-license 推荐一个客户端授权开源项目
    components
        27
    components  
       2019-09-06 13:43:37 +08:00
    SaaS,服务端放在你自己的“云”上。客户可以根据自己实际需求,通过互联网向厂商购买所需的应用软件服务,按购买的服务多少和时间长短向你支付费用,并通过互联网来获得你为客户提供的服务。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5433 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 08:33 · PVG 16:33 · LAX 01:33 · JFK 04:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.