首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用GraalVM本地图像代替混淆

使用GraalVM本地图像代替混淆
EN

Stack Overflow用户
提问于 2021-01-01 15:54:08
回答 1查看 1K关注 0票数 2

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

我想知道用GraalVM 技术编译可部署的应用程序是否是防止逆向工程的另一种解决方案。

我知道本地图像不能被分解,所以逆向工程是不可能的。

EN

回答 1

Stack Overflow用户

发布于 2021-01-04 10:58:23

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

GraalVM本机映像确实会生成本机可执行文件或共享库,而反向工程逻辑的工作要比使用普通jar文件的工作要高。

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

代码语言:javascript
运行
复制
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

您可以看到二进制文件中保留了一些信息。

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

但是通常二进制文件可以像任何本机可执行文件一样被分解。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65531208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档