有 ruby2ruby 编译器,它可以从 AST 恢复 ruby 代码。
我很好奇,如果我用 jrubyc 编译我的代码,那么可以在我正在运行的应用程序中评估他自己的代码的人是否有可能获得我自己的 ruby 类的 AST,然后用 ruby2ruby 恢复 ruby 代码?
我在 ruby 1.8 兼容模式下使用 jruby 1.6.5。
有 ruby2ruby 编译器,它可以从 AST 恢复 ruby 代码。
我很好奇,如果我用 jrubyc 编译我的代码,那么可以在我正在运行的应用程序中评估他自己的代码的人是否有可能获得我自己的 ruby 类的 AST,然后用 ruby2ruby 恢复 ruby 代码?
我在 ruby 1.8 兼容模式下使用 jruby 1.6.5。
正如我从这个页面所知道的那样,AST 确实以某种形式存在于编译的类文件中,因此它至少在理论上可以通过在同一个 JVM 实例中运行的不受信任的代码来恢复。在实践中,Java 反编译器可能确实会产生类似的结果。