用模糊的gradle产生脂肪罐子

问题描述 投票:1回答:1

我创建与科特林一个桌面应用程序,我试图混淆最终输出

我使用JavaFX和科特林的应用程序。我有摇篮的工作作为构建工具,我在寻找如何混淆我的罐子,以避免对罐子反向enginneering。生成的JAR是脂肪罐子(所有图书馆都罐内)。我已经在我的gradle.build使用ProGuard尝试,但每次我跑我的体型,我得到很多“找不到引用的类”与本地Java库类,如对象,字符串,等等。

这是我当前的ProGuard任务:

def jarNameWithoutExtension = jar.archiveName.with { 
it.take(it.lastIndexOf(".")) }
def obfuscatedJarName = "${jarNameWithoutExtension}-release.jar"
def jarFileLocation = jar.archivePath.parent
def obfuscatedFilePath = Paths.get(jarFileLocation, obfuscatedJarName)

task obfuscate(type: ProGuardTask) {
    configuration 'proguard.txt'

    injars jar.archivePath
    outjars obfuscatedFilePath.toString()
    libraryjars files(configurations.compile.collect())
    libraryjars "/usr/lib/jvm/java-11-oracle/lib/rt.jar"
    doLast {
        jar.archivePath.renameTo(Paths.get(jarFileLocation, "$jarNameWithoutExtension-original.jar").toFile())
        obfuscatedFilePath.toFile().renameTo(jar.archivePath)
    }
}

jar.finalizedBy(project.tasks.obfuscate)

该proguard.txt文件目前是空的错误例子是“警告:javafx.animation.Animation:找不到超类或接口java.lang.Object继承”

我希望有我的建设项目时产生的混淆的JAR文件,但我的一切是编译错误

我希望有人能帮助我与我的问题

gradle kotlin proguard
1个回答
0
投票

JShrinker是一个罐子混淆工具,提供了一个图形用户界面。如果你不局限于亲卫队,它可能会解决您的问题。这是非常人性化,并节省您所有的配置和挠头不被其他程序几乎是无法避免的。

© www.soinside.com 2019 - 2024. All rights reserved.