2016-11-30 78 views
0

我想为客户提供一处宝石。我不想让他们知道我的代码,所以我想要加密或混淆.gem文件中的代码并将其发送给他们,以便在他们的ruby项目中集成。加密宝石内的Ruby代码

任何ref?

回答

0

Ruby并没有真正的混淆解决方案,因为它被解释了。最好的,你可以让你的应用程序更难困难来逆向工程是AllInOneRuby,但它不会提供真正的混淆。你可以解开这个,并相对容易地得到你想要的东西。

如果混淆是非常关键的,我会加密所有脚本,然后创建一个包装Ruby C运行时的应用程序,将脚本解密到内存缓冲区中,然后调用它。然后,用Themida之类的东西打包所有这些信息,以阻止人们试图附加调试器(或者,即使他们这样做,理解程序集,但大多数情况下它们都是db [byte],它们大部分都包含VM的字节码,而不是实际的控制流指令例如jmpmov等)。在这一点上,你应该已经阻止了大多数没有经验的逆向工程师的努力,但是到了今天,它仍然通过默默无闻的方式来保证安全。