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

如何对开发的软件加密

  •  2
     
  •   luckrill · 68 天前 · 2847 次点击
    这是一个创建于 68 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如何对开发的软件加密

    收费后才能使用

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

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

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

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