利用 par 將 perl 程式打包加密

2014-01-09 14:09

我的需求是加密 perl 程式內容,查尋到 PAR(Perl Archive Toolkit) 除了可以加密程式內容,並可以將 perl 需要用到的模組一起打包進來,

這可以省下其它主機系統也要用同一支程式時要考慮到是否缺少這個模組或那個模組的麻煩事。

作法:

1。先安裝 PAR::Packer

2。編譯

   pp -o 編譯後的名稱 編譯前的名稱

   pp -o cross cross.pl

   到這階段可直接執行  ./cross

   但可能會發現如下錯誤訊息的情況

Can't locate Net/SMTP.pm in @INC (@INC contains: /tmp/par-root/cache-ed32fd0cd9a6c6acea5e9398deb888a74cf4366c/inc/lib /tmp/par-root/cache-ed32fd0cd9a6c6acea5e9398deb888a74cf4366c/inc CODE(0x89dca54) CODE(0x89e08d4)) at xx.pl line 49.
BEGIN failed–compilation aborted at xx.pl line 49.
Compilation failed in require at script/cross.pl line 63.

   

   只要

   pp -o cross cross.pl -M Net::SMTP

   意思是指缺少了 Net::SMTP 這模組,我再將它打包進來

缺點: 會在 /tmp/par-現在使用者名稱/ 目錄底下產生不小的 cache 檔案占用空間

參考:
https://search.cpan.org/dist/PAR/lib/PAR/Tutorial.pod
https://shlinho.spaces.live.com/Blog/cns!20A717814D948327!599.entry
https://mach.debagua.com/archives/2006/1113_000370.html
https://www.flashman.com.cn/blog/showlog.asp?log_id=786&cat_id=26