Windows下編譯perl程式

來源:互聯網
上載者:User

流程
安裝解譯器/編譯器-》測試源碼可行性-》製作表徵圖-》編譯器-》加殼

所需工具
Perl解譯器:activeperl
PDK開發包:ActiveState Perl Dev Kit
ICON表徵圖編輯器:http://demonalex.3322.org/download/development/pic2icon.rar
北鬥加殼工具:http://demonalex.3322.org/download/development/Nspack3.7.rar

測試時使用的工具
PEID殼查看工具:http://demonalex.3322.org/download/development/peid.rar

安裝PERL解釋、編譯器
注意次序,首先安裝ActivePerl-5.8.7.815,然後在安裝PDK開發包。為什麼ActivePerl我要選擇這個版本呢?
因為我從官網上下載了最新的解譯器後發現PPM的使用方法與原來的不相同,因此推崇使用原來的版本。安裝完
成後:
C:\>path
PATH=C:\Program Files\ActiveState Perl Dev Kit 6.0\bin\;C:\Perl\bin\;C:\WINNT\sy
stem32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\SecureCRT\;C:\Program Fi
les\Support Tools\;e:\usr\bin;e:\Program Files\NetIQ\Chariot
注意到path輸出內容的底線部分。第一條是PDK的路徑,第二條是PERL解譯器的路徑。

測試源碼的可行性
測試可行性這個步驟主要是為了確定程式有沒有什麼錯誤與保證該程式所使用的包都已經‘湊齊’。首先在源
碼的標識‘#!/bin/perl’後加入參數‘-w’確認程式沒有文法上的錯誤。接下來是確認我們要編譯的程式所需
的包是不是都‘湊齊’了,用perlapp編譯一次,看看錯誤就知道了:
------------------------------------
C:\>perlapp -f gzpia_special.pl
PerlApp 6.0.2 build 203380
Copyright (C) 1998-2005 ActiveState Corp. All rights reserved.
ActiveState is a division of Sophos Plc.
Commercial license for Name 〈demonalex@hackermail.com〉

Can't locate DBI.pm in @INC (@INC contains: C:/Program Files/ActiveState Perl De
v Kit 6.0/lib/ C:/Perl/lib C:/Perl/site/lib . C:/Perl/lib C:/Perl/site/lib .) at
gzpia_special.pl line 3.
BEGIN failed--compilation aborted at gzpia_special.pl line 3.
'gzpia_special.pl' had compilation errors.
------------------------------------
提示少了DBI這個庫。在cmd下輸入ppm進入ppm command模式,輸入‘install DBI’,安裝完成後再編譯一次:
++++++++++++++++++++++++++++++++++++
C:\>perlapp -f gzpia_special.pl
PerlApp 6.0.2 build 203380
Copyright (C) 1998-2005 ActiveState Corp. All rights reserved.
ActiveState is a division of Sophos Plc.
Commercial license for Name 〈demonalex@hackermail.com〉

MLDBM.pm:
error: Can't locate MLDBM.pm
refby: C:\Perl\site\lib\DBD\DBM.pm line 323
SQL\Statement.pm:
error: Can't locate SQL\Statement.pm
refby: C:\Perl\site\lib\DBI\SQL\Nano.pm line 27

Created 'gzpia_special.exe'
++++++++++++++++++++++++++++++++++++
提示少了MLDBM與SQL-Statement這兩個包,重新進入ppm command模式,相繼輸入‘install MLDBM’與‘insta
ll SQL-Statement’,‘exit’退出ppm command,重新編譯一次:
************************************
C:\>perlapp -f gzpia_special.pl
PerlApp 6.0.2 build 203380
Copyright (C) 1998-2005 ActiveState Corp. All rights reserved.
ActiveState is a division of Sophos Plc.
Commercial license for Name 〈demonalex@hackermail.com〉

Created 'gzpia_special.exe'
************************************
確認源碼沒問題,而且所有包都‘到齊’了,把gzpia_special.exe刪到吧,因為現在的EXE檔案的表徵圖還沒弄
好,嘿嘿。

產生表徵圖
開啟ICON表徵圖編輯器--Pic2Icon綠色破解版:

點擊“載入表徵圖”按鈕,在彈出的檔案選擇對話方塊中找到你要使用的圖片...

將圖片的長寬度設定為32,“確定”...

選定“是”回到Pic2Icon主介面,點擊“儲存表徵圖”...

在“另存新檔”對話方塊中選定儲存ICON檔案的路徑,“儲存”,退出Pic2Icon程式,表徵圖產生過程完成。

編譯器
重新編譯一次,不過需要添加“--icon ICON檔案路徑”:
------------------------------------
C:\>perlapp -f --icon C:\編譯PERL\gzpia.ico gzpia_special.pl
PerlApp 6.0.2 build 203380
Copyright (C) 1998-2005 ActiveState Corp. All rights reserved.
ActiveState is a division of Sophos Plc.
Commercial license for Name 〈demonalex@hackermail.com〉

Created 'gzpia_special.exe'
------------------------------------

加殼
之所以選擇使用北鬥殼的原因是因為它操作起來比較方便:),開啟PEID看看我們現在編譯的程式:

嘿嘿,顯示是VC6.0編譯的程式哦:P。開啟北鬥加殼程式:

點擊主介面右下角的“開啟”按鈕,在彈出的檔案選擇對話方塊中選定我們在上面操作中編譯好的EXE程式,然後
點擊“開啟”按鈕...回到北鬥主介面,點擊左下角的“壓縮”按鈕...

嘿嘿,搞定了,退出北鬥加殼程式,現在再用PEID來看看:
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.