编译java代码到exe(例如使用Launch4Java)确保代码不能被反向设计?

SS.*_*SS. 2 java reverse-engineering launch4j

在对自己进行实验之后,我确信java代码的阻塞在防止反向代码工程方面并不安全.所以,我转而使用Launch4J将我的一个核心jar文件捆绑到一个EXE文件中.jar文件也包含主要的入口方法.这是否会再次保护代码逆向工程?

Tho*_*sen 17

如果计算机可以运行它,人类可以对其进行逆向工程.

  • 已编译的.exe文件需要包含运行程序逻辑所需的信息.如果计算机能够运行它,那么人类就可以阅读它.它可能有点难(因为字节代码比本机程序集简单),但它仍然可能. (3认同)
  • 加上我刚刚在ubuntu上测试过,而file-roller能够打开exe并给我一个未触动的jar (3认同)

Nat*_*ate 8

Launch4J不会将您的Java代码转换为本机可执行代码,它只提供一个本机启动程序,它查找JDK并将您的JAR作为资源(或者打包在可执行文件中).这只是一种便利 - 而不是安全.如果您的JAR在可执行文件外部,则可以像常规Java应用程序一样对您的代码进行反向工程.如果您的JAR被打包到可执行文件中 - 可能有人编程逻辑将JAR包装在可执行文件中,并且有人可以编程逻辑以从可执行文件中解包JAR(或使用可从可执行文件中提取资源的许多工具之一) - 然后可以像常规Java应用程序一样对代码进行反向工程.