Ruby混淆器和代碼保護

來源:互聯網
上載者:User

RubyEncoder通過編譯和加密來保護Ruby和Ruby on Rails檔案。經過加密的指令碼由RubyEncoder的載入器來運行。RubyEncoder是由Inovica Ltd開發的。他們還為PHP做了一個類似的東西:SourceGuardian。

RubyEncoder還能保護工程的一部分,允許明文的Ruby代碼和設定檔的存在;還可以把程式限制在特定主域上,或設定一個期限來建立試用版(詳見RubyEncoder FAQ部分)。

InfoQ採訪了RubyEncoder的領銜開發人員Alexander Belonosov,從技術的角度來談談該項目。

InfoQ:編碼和載入/運行是如何進行的?

首先把Ruby原始碼編譯成內部的中間格式,然後進行加密。一旦編碼之後,原始碼就不在被保護的指令碼裡了。你需要安裝
RubyEncoder載入器來運行被保護的指令碼。載入器實際上是一個Ruby擴充,用來解碼和運行被保護的指令碼。被保護的指令碼是與平台無關的,這點很重
要,你可以在所有支援的平台上運行它。不同的作業系統和平台的載入器是不同的。我們支援以下平台:OSX、Linux、FreeBSD,以及我們最近才開
始支援的Solaris x86。我們還打算近期加入對Windows和其他UNIX的支援。

InfoQ:原始碼會被轉換為一種中間格式。你們有沒有自己的解譯器來運行它,還是需要還原成原始的Ruby代碼?

原始的Ruby代碼是不可能還原出來的。我們使用內部的中間格式。[..] 它是內部的、二進位的、可執行檔,並且絕不可能還原出原始代碼。

InfoQ:要是你們有自己的解譯器,它如何支援元編程(metaprogramming)以及Ruby的其他動態特性?或者說,難道沒有什麼限制嗎?


前,載入器會把代碼的內部表示返回給Ruby來執行。這讓我們擁有最大的相容性,並保持Ruby代碼的動態本質。但是,我們仍在尋找其他辦法,在產品的下
一個版本來改變或者實現一個新的方案。不管怎樣,使用RubyEncoder來保護產品將會對終端使用者是透明的,而且Ruby開發人員會得到更進階的、更高
效的編碼器。

InfoQ:我們可以使用ParseTree gem包訪問一個類或一個方法的解析樹。RubyEncoder會影響到它嗎?

ParseTree
是個很棒的擴充,可以用來研究Ruby內部以及代碼最佳化等。如果你是想問我們是否限制使用ParseTree,那麼答案是不會。當你使用
ParseTree之類的工具時,你必須知道需要把什麼從Ruby內部提取出來,以及如何發現它。我認為你還必須思考其原因,消耗的時間,以及最終的結果
是什麼:-)

InfoQ:你們是否打算支援其他Ruby實現版本,比如JRuby?有沒有可能把載入器移植到Java上來運行JRuby代碼?

目前我們僅支援標準Ruby。JRuby是個很棒的項目,並且在日益成長。不過針對的市場會有一點不同。

InfoQ:使用JRuby和編譯過的Ruby源碼,ByteCode混淆器是不是也能達到跟RubyEncoder同樣的效果?

使用JRuby和經過編譯的Ruby源碼也許能得到很高的保護等級。但是它面對的是Java環境。而我們的初衷是保護本地Ruby和Ruby on Rails工程,將來也許會決定加強或者擴充我們的產品。

InfoQ:RubyEncoder是用什麼語言寫的?用Ruby,然後自己加密自己?

不是,我並不是說Ruby元編程不好 但RubyEncoder和載入器是用C寫的。

RubyEncoder是一個商用產品,這裡提供一個30天試用版。

你曾使用過這樣的代碼保護工具嗎?有沒有什麼經驗來分享?

查看英文原文:RubyEncoder: Obfuscation and Code Protection for Ruby

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.