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

Java 外包私活,项目代码都有啥加密或者类似技巧

  •  
  •   heyzayz · 2020-07-23 23:29:13 +08:00 · 5989 次点击
    这是一个创建于 1618 天前的主题,其中的信息可能已经有所发展或是发生改变。

    做 Java 外包私活怎么能让买家还让我们维护,或者拓展呢 有啥加密或者类似技巧。

    39 条回复    2020-07-24 17:55:39 +08:00
    GM
        1
    GM  
       2020-07-23 23:47:19 +08:00
    if(Instant.now() < "2020-12-30") {
    Thread.sleep(3000); // 等客户价钱优化速度
    }
    ericgui
        2
    ericgui  
       2020-07-23 23:59:11 +08:00   ❤️ 1
    你就正常发挥

    要么你写了 bug
    要么老板拍脑袋有新的 idea

    都需要你来的
    heyzayz
        3
    heyzayz  
    OP
       2020-07-24 02:16:46 +08:00 via iPhone
    @GM 哈哈你这个
    heyzayz
        4
    heyzayz  
    OP
       2020-07-24 02:17:10 +08:00 via iPhone
    @ericgui 不过确实需要这个,有啥好办法不
    jadec0der
        5
    jadec0der  
       2020-07-24 06:23:08 +08:00
    如果不是联系不上你,不会找别人做后续优化的。

    你想要是有个不知道什么人写的项目让你接着改,你愿意用比原作者还低的价格接下来吗?
    cedoo22
        6
    cedoo22  
       2020-07-24 08:36:27 +08:00 via iPhone
    我记得有个什么代码格式化工具,把类变量什么的全转换成下划线数字型名称,去掉注释,反编译就让他反编译吧,如果老板有能力找到能维护这样代码的人只能认了
    hand515
        7
    hand515  
       2020-07-24 08:58:37 +08:00
    核心代码 jni 编译,打包
    crclz
        8
    crclz  
       2020-07-24 09:05:03 +08:00
    关键词:混淆
    zzzmh
        9
    zzzmh  
       2020-07-24 09:07:47 +08:00
    @GM 3 秒整数一下就看出来了,建议用随机数,再加上时间维度。
    WispZhan
        10
    WispZhan  
       2020-07-24 09:53:13 +08:00
    简单,你用其他 JVM 语言写,连混淆都省了。
    没点水平,不爱折腾的一看就不想接。 有点水平,会折腾的,你混淆了也没用。
    cruii
        11
    cruii  
       2020-07-24 09:53:23 +08:00
    蹲一个大佬推荐好用的混淆工具
    gz911122
        12
    gz911122  
       2020-07-24 10:30:22 +08:00
    用其他 jvm 方言写点关键逻辑.
    什么 Scala,Clojure,甚至 Latte 这种个人开源的, 全给他整上.
    保证维护还找你.
    matrix67
        13
    matrix67  
       2020-07-24 10:36:02 +08:00
    程序不重要,数据重要,数据写 xlog 。

    不用谢,之前看到 v 站有个 realpg 发明的方法。 搜索 “防盗版软件黑科技又一案例”
    matrix67
        14
    matrix67  
       2020-07-24 10:38:11 +08:00
    lancelock
        15
    lancelock  
       2020-07-24 10:40:24 +08:00
    我在学 elixir,打算用这玩意写,应该没人会抢了吧
    weizhen199
        16
    weizhen199  
       2020-07-24 10:53:16 +08:00
    @matrix67 看玩我还是想说一句,现在又过了 4 年了,机构单位各种操作能力有增无减,建议注意自己安全
    jiaxin1121
        17
    jiaxin1121  
       2020-07-24 11:18:54 +08:00
    找个加壳的工具
    sonice
        18
    sonice  
       2020-07-24 11:23:07 +08:00
    proguard
    heyzayz
        19
    heyzayz  
    OP
       2020-07-24 11:35:49 +08:00 via iPhone
    @jadec0der 这个道理是明白的,
    heyzayz
        20
    heyzayz  
    OP
       2020-07-24 11:36:02 +08:00 via iPhone
    @cedoo22 混淆吗
    heyzayz
        21
    heyzayz  
    OP
       2020-07-24 11:36:33 +08:00 via iPhone
    @hand515 这个是怎么编法
    heyzayz
        22
    heyzayz  
    OP
       2020-07-24 11:39:23 +08:00 via iPhone
    @gz911122 多谢,我研究研究
    sudoy
        23
    sudoy  
       2020-07-24 11:51:11 +08:00
    我自己会 python,但我经常找人开发,大多要求对方用 python 技术栈,前端也是要要求对方用我熟悉的框架。那么我想从我的角度来回答这个问题。首先我请人开发,需求和价格肯定都谈好,双方都认可这个交易,如果你好好写,哪怕有 bug,我也理解,但如果你使坏,故意整一些像一楼写的那种(当然我相信一楼只是开玩笑),那么不好意思,我肯定会搞你,即便搞不了你,我也绝不会再跟你合作。所以,我找人开发都是用一些我看得懂的技术栈。对方故意使坏,绝对是一个糟糕的做法。
    skys215
        24
    skys215  
       2020-07-24 11:57:25 +08:00
    别人是花钱买你写的代码的,不是买你提供的服务,不是 SaaS 吧
    那别人给了前你就理应当把源代码都给甲方,如果你不想给源代码,那就改成 SaaS 给他们提供服务,让他们订阅你的服务
    heyzayz
        25
    heyzayz  
    OP
       2020-07-24 12:02:02 +08:00 via iPhone
    @skys215
    @skys215
    @sudoy 并不是使坏,是本身开发免费,想要后期合作
    GM
        26
    GM  
       2020-07-24 12:02:16 +08:00
    @matrix67 你是 matrix67 真身?
    heyzayz
        27
    heyzayz  
    OP
       2020-07-24 12:03:12 +08:00 via iPhone
    @GM 啥,
    chihiro2014
        28
    chihiro2014  
       2020-07-24 12:07:53 +08:00
    写别人看不懂的代码
    wmhx
        29
    wmhx  
       2020-07-24 12:21:43 +08:00
    混淆工具弄一下。其实就够了
    xuanbg
        30
    xuanbg  
       2020-07-24 12:47:46 +08:00
    没必要,你把活干好,下次还是会找你。站在甲方的立场,最需要的其实是一个靠谱的供应商。

    PS:做生意最重要的是诚信和成就客户,让客户赚到钱,你才能源源不断地从客户那里赚钱。
    tohuer00
        31
    tohuer00  
       2020-07-24 12:57:46 +08:00
    如果甲方一开始就有意要你的源码后续自己开发,他会在谈合同时就提的,没人愿意冒风险去反编译 class 。
    如果没要源码,那就是没打算换人接手,或者要换就一整套都换掉。
    YouKnowIt
        32
    YouKnowIt  
       2020-07-24 13:10:47 +08:00
    楼主如果觉得混淆强度不够的话,可以采用更强的 vm 的保护形式。别人用逆向工具也看不到代码的,联机连函数调用都看不到,可以私聊我 phone MTMxMzg2NjE5NDA=
    byzf
        33
    byzf  
       2020-07-24 14:05:30 +08:00
    直接展示成品, 付钱再给源码. 客户就是关心你做到啥程度了, 源码啥样其实无所谓.

    对方付完你还弄个混淆了的代码过去, 你让以后的人怎么维护.
    S9Yh4wIFsBG7jnE4
        34
    S9Yh4wIFsBG7jnE4  
       2020-07-24 14:27:39 +08:00
    代码混淆后性能不会降低吗?降低了怎么办
    BoarBoar
        35
    BoarBoar  
       2020-07-24 15:33:24 +08:00
    java 就这样,没啥办法
    代码混淆也就是个心理安慰,混淆能挡住的人不玩破解,玩破解的解混淆也就走个流程
    稍高端点的玩法是核心代码用 C/C++写动态库,java 只做个壳用 jni 去调库。
    然而别人完全可以同样做个壳去调你的库,能阻止泄漏核心代码,不能阻止抄袭
    neilq
        36
    neilq  
       2020-07-24 16:45:41 +08:00
    技巧是把服务做好,后续还会找你。做不好,下次肯定不找你。
    搞那些有的没的,直接走法务。
    heyzayz
        37
    heyzayz  
    OP
       2020-07-24 17:10:41 +08:00 via iPhone
    @neilq 有道理
    realpg
        38
    realpg  
       2020-07-24 17:52:14 +08:00
    @heyzayz #37
    既然选择了 JAVA 或者 C#这类语言,那就做好服务,简单混淆一下就发,没必要搞别的。
    pxlxh
        39
    pxlxh  
       2020-07-24 17:55:39 +08:00
    不要私活
    不要私活
    不要私活
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2827 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 07:53 · PVG 15:53 · LAX 23:53 · JFK 02:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.