V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
libasten
V2EX  ›  问与答

一个桌面软件的私活,交付前,怎么限制使用比较好?

  •  
  •   libasten · 2019-06-04 16:42:14 +08:00 · 3740 次点击
    这是一个创建于 1998 天前的主题,其中的信息可能已经有所发展或是发生改变。

    帮人家做一个桌面软件,在现在互联网码农看来比较土的种。 就是 win 平台的一个软件,C#.NET ,开发很快。 现在在甲方没有完全付款的情况下,你们有哪些方式限制试用版的使用呢? 完全离线的 exe,判断机器时间不科学,在本地加密记录使用次数?

    35 条回复    2019-06-15 13:02:56 +08:00
    66beta
        1
    66beta  
       2019-06-04 16:46:15 +08:00 via Android
    默认只能试用 5 天?给完钱再发个完整版
    libasten
        2
    libasten  
    OP
       2019-06-04 16:52:40 +08:00
    @66beta 代码里面怎么限制呢?写死一个日期?但是每次运行时候获取机器时间的话,人家改一下系统时间就破了。
    s4nd
        3
    s4nd  
       2019-06-04 16:54:04 +08:00
    bug
    sky2017
        4
    sky2017  
       2019-06-04 16:54:27 +08:00
    给个功能限制的试用版
    chenchangjv
        5
    chenchangjv  
       2019-06-04 16:56:52 +08:00 via iPhone
    试用可以加强制联网啊,互联网时间不就好了,不联网不能用
    bhy5899s
        6
    bhy5899s  
       2019-06-04 16:57:38 +08:00
    @libasten 限制打开次数呗,每次打开多长时间自动关闭。
    destiny1990
        7
    destiny1990  
       2019-06-04 16:58:55 +08:00
    加密狗?会不会成本有点高。。
    di1012
        8
    di1012  
       2019-06-04 17:00:14 +08:00
    单机版的?限制不了,除非只让使用一部分功能
    ThomasZ
        9
    ThomasZ  
       2019-06-04 17:01:33 +08:00 via Android
    取网络时间,如果 pc 无网络应用无法运行
    wafm
        10
    wafm  
       2019-06-04 17:02:58 +08:00
    放暗桩或者加网络验证
    whypool
        11
    whypool  
       2019-06-04 17:10:29 +08:00
    偷偷联网,获取服务器时间,试用 5 天过期

    给的版本出去,id 写死
    designer
        12
    designer  
       2019-06-04 17:12:02 +08:00
    比较土的方法 ,远程你的桌面让客户体验下。功能完善可以了的话再交接软件?
    xenme
        13
    xenme  
       2019-06-04 17:12:32 +08:00
    尝试联网,不能联网的话某些功能不能用,每隔几分钟弹窗提示联网或者购买注册。
    反正就是要干扰用户的正常使用体验
    Hellert
        14
    Hellert  
       2019-06-04 17:13:04 +08:00
    可以在数据量上做一些限制,比如限制录入 1000 条,类似这样。
    付款后再给发无限制的版本。
    laodao
        15
    laodao  
       2019-06-04 17:15:34 +08:00
    试用版必须联网使用,接受远程明亮。然后自带文件加密病毒,不给钱系统全盘文件加密。
    MaxTan
        16
    MaxTan  
       2019-06-04 17:24:03 +08:00
    阉割一部分内容或者硬编码限制,付费再重新 build 完整版
    libasten
        17
    libasten  
    OP
       2019-06-04 17:27:17 +08:00
    @chenchangjv
    @ThomasZ
    @whypool
    @laodao 很多朋友建议联网,可能这个路子不太能走得通,因为这是一个工厂车间里面的电脑用的,可能还有涉密问题,试用的时候要外接设备,基本上没有联网的可能性。
    @xenme 提供的弹窗大法倒是不错,我考虑一下。
    一并谢谢大家伙。
    Orciorc
        18
    Orciorc  
       2019-06-04 17:34:44 +08:00 via Android   ❤️ 1
    不要试图从技术上解决,应考虑从法律上解决。例如签订协议,提供试用版 /技术测试版 /验收版,一旦泄露乙方承担相关责任。具体请咨询律师并拟好合同。
    czkwg8
        19
    czkwg8  
       2019-06-04 18:01:00 +08:00
    safengine
    sbbeta
        20
    sbbeta  
       2019-06-04 18:12:41 +08:00 via Android
    记得以前一个人做的自来水软件,在里面加东西了。非法授权越用数据越不对。但是数据会备份起来。数据不对自然会来找你
    Jirajine
        21
    Jirajine  
       2019-06-04 18:25:50 +08:00 via Android
    你就告诉 /暗示他,试用版有 bug/后门 /收集信息 /随机崩溃等等问题,结全款给完整版+源码
    即使没有他也不会放心拿去用的。
    Ultraman
        22
    Ultraman  
       2019-06-04 18:26:39 +08:00
    一两年前有个老哥发帖说给朋友写了个软件用,后来被老板拿出去给其他人用在生产环境,后果就是一段时间后开始随机丢数据,最后厂家乖乖电话打过来了。
    herozhang
        23
    herozhang  
       2019-06-04 18:30:31 +08:00
    @vcinex 记得这个贴,貌似是做自来水的计费项目啥的
    herozhang
        24
    herozhang  
       2019-06-04 18:31:30 +08:00
    C#弄的,更有效的是加个加密 shell,否则太容易被逆向破解了。剩下的就是屏蔽关键功能,例如数据保存有限制(最多保存 1000 条数据啥的)。
    loading
        25
    loading  
       2019-06-04 18:39:15 +08:00 via Android
    把功能分开做到几个小 app 里面,而且这几个工具不能同时运行。
    loading
        26
    loading  
       2019-06-04 18:40:21 +08:00 via Android
    @herozhang 我记得有一个是电网的,到一定数量就开始出错,233。
    Symo
        27
    Symo  
       2019-06-04 18:49:05 +08:00
    用序列号吧, 没有号的时候限制部分功能, 通常客户没能力反编译你的程序.
    icekingcy
        28
    icekingcy  
       2019-06-04 18:49:46 +08:00 via iPhone
    软件运行时间写入一个 txt,具体时长内容加密(随便乱编一个加密、解密算法。或者用知名的加密算法,私钥强制写在程序里。私钥也可以通过自己编写个 for 循环啥的 加密下、解密就再跑下。增加别人直接二进制分析的难度),软件无法读取该文件内容 报错,该内容被篡改报错。到了固定时长(也写在该文件里)不付费就不能打开运行。给钱的话 发个 时长 99999999 …的给客户
    CEBBCAT
        29
    CEBBCAT  
       2019-06-04 20:55:44 +08:00
    我想需要一些文章向软件开发者普及防破解的知识。我印象里纯纯写作的作者好像就比较有自信面对破解

    我只是很浅地了解过破解,但楼上的方法似乎只要改一个内存的真假值就可以破掉了……
    ijse
        30
    ijse  
       2019-06-04 21:03:35 +08:00
    同时使用多种方式,不一定完全避免破解,但可以提升破解成本
    baojiweicn2
        31
    baojiweicn2  
       2019-06-04 21:20:19 +08:00 via Android
    随机崩溃?
    xuddk727
        32
    xuddk727  
       2019-06-05 13:08:55 +08:00
    我觉得很多人都想歪了,除非这个项目工程体量很大,不然有能够逆向你软件的人员在何必还要你去开发?
    工厂这种客户就最好打交道了,
    1.只打一次交道的:弄份 LICENSE 文件,软件内提供你的联系方式,尽管让他去试用,用上个三五个月,脱离不开你了,告诉人家这是商业软件,得交钱了。不交,法院见。
    2.长期客户,把算法拆成几部分,核心的公式 /常量 往注册表 /txt 文件里写好,验证到日期就删除掉该文件 /记录,并提示已到期,让客户联系你。

    至于搞随机崩溃什么的,这种哥们肯定自己没有商业经验,你要收费是天经地义的事,软件崩溃却会让人家觉得这东西不靠谱
    hotsun168
        33
    hotsun168  
       2019-06-05 19:14:49 +08:00 via iPhone
    我之前的经验是将核心运算逻辑放在服务器,客户端用 HTTP 调用的形式。
    xuanyi0926
        34
    xuanyi0926  
       2019-06-14 18:21:27 +08:00
    @laodao 哥们,想问下 asar 的算法你怎么搞的,开发 Electron 源码透明,想从 asar 这里入手
    邮箱: [email protected]
    laodao
        35
    laodao  
       2019-06-15 13:02:56 +08:00
    @xuanyi0926 asar 算法是 Electron 作者实现的一个包,有对应的 github 地址,你把里面压缩算法源代码看了,自己改下压缩算法就可以。这样原本的 asar 就没法解压你的包。但是这个需要替换的地方比较多。反正挺麻烦的,我都忘了怎么弄了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1242 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:55 · PVG 01:55 · LAX 09:55 · JFK 12:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.