簡體   English   中英

如何打開和編輯加密的Perl腳本?

[英]How to open and edit encrypted perl script?

我有一個加密的perl腳本。 只有安裝了Filter :: decrypt才能編譯此腳本。 我有那個過濾器,我安裝了它,腳本編譯沒有問題,但是現在我想用一些文本編輯器打開該腳本並進行編輯。

有人可以幫助我並告訴我該怎么做嗎?

從根本上講,僅因為perl是一種解釋語言,就很難使腳本不可讀。 確切地講,如何解開某物更多是關於它如何首先被糾纏的問題。

因此,我建議作為第一個調用端口-仔細閱讀Mastering Perl ,其中有整整一章涉及反匯編Perl代碼的主題。

但是,如果僅查看Filter::decrypt模塊頁面,它將指示該模塊根本無法覆蓋的幾個位置-如果您首先控制了perl解釋器,則只能真正地“保護”代碼。 但是,它建議的內容是:

剝離Perl二進制文件以刪除所有符號。

使用靜態鏈接構建解密擴展。 如果擴展是作為動態模塊提供的,則沒有什么可以阻止某人在運行時使用修改后的Perl二進制文件將其鏈接。

不要使用-DDEBUGGING構建Perl。 如果這樣做,則可以使用-Dp命令行選項來檢索源。

樣本過濾器包含用於檢測DEBUGGING選項的邏輯。

不要在啟用C調試支持的情況下構建Perl。

不要將解密過濾器實現為子過程(如cpp源過濾器)。 可以窺視連接到子流程的管道。

檢查是否未使用Perl編譯器。

crypto.xs的BOOT:部分中有代碼,顯示了如何檢測編譯器的存在。 確保將其包含在模塊中。

假設您沒有采取任何措施來發現編譯器的使用時間,並且擁有一個名為“ myscript.pl”的加密Perl腳本,則可以使用perl Compiler后端訪問其中的源代碼,如下所示

perl -MO=Deparse myscript.pl

請注意,即使您已經包括了BOOT:測試,仍然可以使用Deparse模塊獲取各個子例程的源代碼。

所以:

perl -MO=Deparse yourscript
perl -Dp yourscript

如果這些方法不起作用,請查看您的Filter::decrypt本地副本並對其進行更改,以打印解密后的結果。

最佳選擇:只需編輯未加密的副本並重新安裝即可。

替代方法:使用decr (與Filter :: decrypt一起提供)解密加密文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM