本文介绍了使用GraalVM本机映像代替模糊处理的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在为不同的目的开发后端平台,有时客户希望将此产品作为内部部署软件安装在他们的数据中心。
因此,为了防止反向工程,我使用了混淆工具。

我想知道使用GraalVM Native Image技术编译可部署应用程序是否是防止反向工程的替代解决方案。

我知道本机映像无法反编译,因此无法进行反向工程。

推荐答案

一般来说,任何软件都可以进行反向工程,因此这样做是一个权衡和复杂性的问题。

GraalVM本机映像确实会生成本机可执行文件或共享库,并且对逻辑进行反向工程的工作量比使用正常JAR文件时要高。

然而,人们需要始终小心他们的目标和潜在的威胁载体。例如,本机映像构建过程可以保留二进制文件中的字符串。例如,我有一个构建为二进制primes-serial的本机映像。运行类似以下内容:

strings primes-serial | grep com.oracle.svm.core.VM
Ocom.oracle.svm.core.VM
com.oracle.svm.core.VM.Target.Libraries=stdc++|pthread|dl|z|rt
com.oracle.svm.core.VM=GraalVM 20.2.0 Java 11 EE
com.oracle.svm.core.VM.Target.StaticLibraries=liblibchelper.a|libnet.a|libffi.a|libextnet.a|libnio.a|libjava.a|libfdlibm.a|libsunec.a|libzip.a|libjvm.a
com.oracle.svm.core.VM.Target.LibC=com.oracle.svm.core.posix.linux.libc.GLibC
com.oracle.svm.core.VM.Target.Platform=org.graalvm.nativeimage.Platform$LINUX_AMD64
com.oracle.svm.core.VM.Target.CCompiler=gcc|redhat|x86_64|4.8.5

您可以看到,某些信息保留在二进制文件中。

因此,最初运行模糊处理程序,然后构建本机映像可能很有趣。

但一般来说,二进制文件可以像任何本机可执行文件一样进行反汇编。

这篇关于使用GraalVM本机映像代替模糊处理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。