2016-11-30 43 views
0

我想爲客戶提供一處寶石。我不想讓他們知道我的代碼,所以我想要加密或混淆.gem文件中的代碼並將其發送給他們,以便在他們的ruby項目中集成。加密寶石內的Ruby代碼

任何ref?

回答

0

Ruby並沒有真正的混淆解決方案,因爲它被解釋了。最好的,你可以讓你的應用程序更難困難來逆向工程是AllInOneRuby,但它不會提供真正的混淆。你可以解開這個,並相對容易地得到你想要的東西。

如果混淆是非常關鍵的,我會加密所有腳本,然後創建一個包裝Ruby C運行時的應用程序,將腳本解密到內存緩衝區中,然後調用它。然後,用Themida之類的東西打包所有這些信息,以阻止人們試圖附加調試器(或者,即使他們這樣做,理解程序集,但大多數情況下它們都是db [byte],它們大部分都包含VM的字節碼,而不是實際的控制流指令例如jmpmov等)。在這一點上,你應該已經阻止了大多數沒有經驗的逆向工程師的努力,但是到了今天,它仍然通過默默無聞的方式來保證安全。