zhangshaohan
V2EX  ›  问与答

SpringBoot 打成的 jar 包如何做代码混淆防止反编译

  •  
  •   zhangshaohan · Nov 7, 2024 · 1957 views
    This topic created in 586 days ago, the information mentioned may be changed or developed.

    目前的项目解压 jar 包放到 IDEA 里面就能看到完整的代码,希望增加安全措施,如混淆代码,当下有什么好的办法或工具可以实现吗?让打包后的 jar 包无法反编译出源码

    10 replies    2024-11-11 09:01:34 +08:00
    cJ8SxGOWRH0LSelC
        1
    cJ8SxGOWRH0LSelC  
       Nov 7, 2024
    只要还是打包 jar 就没有办法, 就算混淆了, 也只是难看一点, 代码还是一览无余。 也没办法阻止反编译。
    murmur
        2
    murmur  
       Nov 7, 2024
    java 那个混淆跟没有一样,只能加垃圾代码和扩大项目规模,比如那些商业 OA 几百 m 的包,给你源码都头大
    COOOOOOde
        3
    COOOOOOde  
       Nov 7, 2024
    aspose 不就是卖 jar 包的, 他的 jar 就是混淆了成了一堆垃圾编码, 但是花些时间还是能破解。
    Tiller
        4
    Tiller  
       Nov 7, 2024
    没有作用。因为我还真的反编译过一个商业代码。把混淆的部分重写了。基本上能够看的七七八八
    zhangshaohan
        5
    zhangshaohan  
    OP
       Nov 7, 2024
    @StinkyTofus
    @murmur
    @COOOOOOde
    @Tiller

    卧槽,那岂不是拿到 Jar 包基本上就裸奔了( Ĭ ^ Ĭ )
    Bingchunmoli
        6
    Bingchunmoli  
       Nov 7, 2024 via Android
    @Geekerstar 客户端就是不安全。
    KagurazakaNyaa
        7
    KagurazakaNyaa  
       Nov 7, 2024
    你可以把大量的逻辑都写成二进制,然后打包的时候交叉编译到所有常见架构上实现跨平台,Java 的部分用来做调用和调度以及兼容层
    git00ll
        8
    git00ll  
       Nov 7, 2024
    核心放在网络上,运行时加载呢
    iseki
        9
    iseki  
       Nov 7, 2024 via Android
    首先,不严谨地说,东西只要在客户端就可以被破解。其次,Java 这边你要想尽量提高逆向工程难度,看看 GraalVM Native Image 吧
    Tiller
        10
    Tiller  
       Nov 11, 2024
    @Geekerstar 那到不至于,混淆还是比不混淆的要好的。但是鉴于 Java 的语言特性,确实没办法做到像 go 、c++这种程度
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3173 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 13:05 · PVG 21:05 · LAX 06:05 · JFK 09:05
    ♥ Do have faith in what you're doing.