[英]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.