如何安全地编译和隐藏Clojure代码?

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

是否有一种方法可以安全地运送Clojure编写的代码而不会(或最小化)其被反编译和访问的风险?

使用uberjar生成的jar文件是否安全到足以传递?

感谢堆!

clojure compilation executable-jar
1个回答
0
投票

如果您可以在仅由使用代码的人通过网络访问的Web服务器上运行代码,则只要确保该服务器的安全,服务器是否具有源代码都无所谓。] >

可以通过在部署JAR的计算机上使用Clojure编译器来创建包含可部署的Clojure源代码的JAR文件,以便在JVM进程启动后不久将Clojure源编译为JVM字节码。您可以在JAR文件中执行'unzip -v foo.jar',以查看其中的文件名列表,以及后缀名为'.clj','。cljs'或'.cljc'的文件名列表可能是Clojure的源代码。

[如果JAR中的任何文件的文件名均以'.class'结尾,则这些文件是包含JVM字节码的Java类文件。您可以在大多数此类文件上运行反编译器,并且经常可以从语法上重新获得合法的Java源代码,其行为与Clojure源代码的行为相同。例如参见https://github.com/clojure-goes-fast/clj-java-decompiler或在Google中搜索“ java decompiler”以查找许多其他此类工具。

如果您搜索诸如“ Java字节码混淆”之类的术语,则可能会找到声称提供某种程度的名称和/或JVM字节码功能加扰的工具。我不知道它们有多有效。

[通常,与一方有合同损失的合同,或者比尝试对代码进行逆向工程更重要的事情,与技术方法相比,对逆向工程的保护更加确定。

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