V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
sunboy911
V2EX  ›  Java

大家发布到现场的 Java 代码有加密吗?都是咋实现的,可否分享下?

  •  
  •   sunboy911 · Nov 2, 2017 · 9536 views
    This topic created in 3099 days ago, the information mentioned may be changed or developed.

    老板要求部署到现场 tomcat 的代码全部加密,防止客户反编译!!

    31 replies    2020-07-09 16:19:32 +08:00
    micean
        1
    micean  
       Nov 2, 2017
    应该是命名混淆吧
    zorui
        2
    zorui  
       Nov 2, 2017
    java 代码加密的好像没有吧。。 只有混淆。。 反编译后看不懂。
    liuminghao233
        3
    liuminghao233  
       Nov 2, 2017 via iPhone
    改 jvm 可行

    其他的都是一般的混淆
    AlphaIce
        4
    AlphaIce  
       Nov 2, 2017
    没有加密 直接发布的
    sagaxu
        5
    sagaxu  
       Nov 2, 2017 via Android
    不加密,有时连代码都一起给他们
    sonyxperia
        6
    sonyxperia  
       Nov 2, 2017
    客户要求提供源码
    weics
        7
    weics  
       Nov 2, 2017
    proguard
    loshine1992
        8
    loshine1992  
       Nov 2, 2017   ❤️ 12


    +1s
    LukeChien
        9
    LukeChien  
       Nov 2, 2017 via Android
    得用 jni
    zouqiang
        10
    zouqiang  
       Nov 2, 2017 via iPhone
    license4j
    sunboy911
        11
    sunboy911  
    OP
       Nov 2, 2017
    @micean 对的差不多一个意思
    sunboy911
        12
    sunboy911  
    OP
       Nov 2, 2017
    @zorui 是的
    sunboy911
        13
    sunboy911  
    OP
       Nov 2, 2017
    @liuminghao233 你们咋混淆的呢
    sunboy911
        14
    sunboy911  
    OP
       Nov 2, 2017
    @loshine1992 大神你们是 咋混淆的呢,用的啥
    sunboy911
        15
    sunboy911  
    OP
       Nov 2, 2017
    @LukeChien 搜搜看
    sunboy911
        16
    sunboy911  
    OP
       Nov 2, 2017
    @LukeChien 感谢
    sunboy911
        17
    sunboy911  
    OP
       Nov 2, 2017
    @zouqiang 感谢
    chocotan
        18
    chocotan  
       Nov 2, 2017
    写个脚本在编译之后把 class 文件加密
    然后改 classloader,tomcat 和 spring 的都要改
    notreami
        19
    notreami  
       Nov 2, 2017
    混淆就够了。
    bk201
        20
    bk201  
       Nov 2, 2017
    我觉得与 tomcat 一起打包编译成 exe 可行。
    wdlth
        21
    wdlth  
       Nov 2, 2017 via Android
    混淆、改 class loader,再把 JVM 改了……
    kidult
        22
    kidult  
       Nov 2, 2017
    多招两个实习生写写不就完了
    loshine1992
        23
    loshine1992  
       Nov 2, 2017
    @sunboy911 proguard
    paragon
        24
    paragon  
       Nov 2, 2017
    原则上只能混淆~
    xiaoyu03
        25
    xiaoyu03  
       Nov 2, 2017   ❤️ 1
    看到这个帖子还以为是我呢...我们公司软件要产品化接下去我大概要做:
    1.USB key + license ;
    2.混淆代码(效果不好,因为种种原因很多代码不能混淆 QAQ );
    3.写一个小工具给 Jar 中的 Class 加密。在 ClassLoader 中解密,Spring Boot 的 ClassLoader 需要修改;或者 Jni 方式解密
    4.想办法怎么隐藏 ClassLoader,启动时动态生成?
    zpf124
        26
    zpf124  
       Nov 2, 2017
    我们曾经做过过一个简单粗暴的方法。

    1,代码根据 机器的网卡 mac 地址 + 硬盘序列号 用自定义的加密规则算一个 激活码。
    2,项目启动如果激活码不正确或者没填激活码,不连接 jdbc,几个关键的 bean 不生成。
    3,将许多乱七八糟的类都一起混淆,混淆后连我们自己都看不懂加密那个类里的代码,混淆工具将许多字符串和变量混淆后都转移到其他类了,同理这个类里还包含了一些其他类用的变量。

    3,部署之后 客户将机器的 网卡 mac 和 硬盘序列号发给我们,我们这边算出激活码在发给他们,用户要换个机器部署都得联系我们。
    yksg
        27
    yksg  
       Nov 2, 2017   ❤️ 2
    多招两个实习生就 OK 了
    rswl
        28
    rswl  
       Nov 2, 2017
    不是都能反编译的吗
    hsuan
        29
    hsuan  
       Nov 2, 2017 via Android
    把关键 jar 加密,运行时揭秘后动态加载
    abcbuzhiming
        30
    abcbuzhiming  
       Nov 13, 2017
    这纯粹是老板自己折腾;要么你牛逼到改 jvm 本身,要么 jni 用 c++编程搞 dll 的话,其它方式没啥用,你混淆?改 classloader ?我直接 dump 内存,虚拟机语言拿到内存字节码后反编译 class 源码比纯二进制语言容易多了。而且这年头,你以为你的代码是高科技啊,是个人都想要?
    xiner
        31
    xiner  
       Jul 9, 2020
    时隔这么久,不知楼主还是否有 Java 加密需求。
    几维安全 Java 代码加密产品能够帮助到你。
    Java2C:创新 Dex 和 Jar 源码保护方案。将 Java 代码自动翻译为 C 代码,并实施 Native 层的虚拟化加密保护,比传统加固兼容性更好,安全性更高,防止反编译。
    Java2C 是移动端新一代 DEX 加密方案,提交安卓应用包 APK 文件,即可将 DEX 文件中的核心函数翻译成 C 代码,并通过 Native 层的源码加密技术实施代码混淆、代码虚拟化和字符串加密处理,从而提高 Java 层核心代码的安全性。
    与传统的 APP 加固方案相比,不涉及到自定义修改 DEX 文件的加载方式,所以其兼容性非常好;其次 Java 函数被完全转化为 C 函数,直接在 Native 层执行,不存在 Java 层解密执行的步骤,其性能和执行效率更优。
    ,欢迎查阅,java 源码加密: https://www.kiwisec.com/product/java2c.html
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1059 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 125ms · UTC 18:50 · PVG 02:50 · LAX 11:50 · JFK 14:50
    ♥ Do have faith in what you're doing.