本文介紹了使用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本機映像代替模糊處理的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,