encode|加密 Active Server Page技術為應用開發商提供了基於指令碼的直觀、快
速、高效的應用開發手段,極大地提高了開發的效果。但由於ASP腳
本是採用明文(plain text)方式來編寫的,所以應用開發商辛苦開發
出來的ASP應用程式,一旦發布到運行環境中去後,就很難確保這些
“原始碼”不會被流傳出去。這樣就產生了如何有效地保護開發出來
的ASP指令碼原始碼的需求。
ASP運行機制
ASP指令碼是一系列按特定文法(目前支援vbscript和jscript兩種
指令碼語言)編寫的,與標準HTML頁面混合在一起的指令碼所構成的文
本格式的檔案。當用戶端的終端使用者用WEB瀏覽器通過INTERNET
來訪問基於ASP指令碼的應用時,WEB瀏覽器將向WEB伺服器發出
HTTP請求。WEB伺服器分析、判斷出該請求是ASP指令碼的應用後,
自動通過ISAPI介面調用ASP指令碼的解釋運行引擎(ASP.DLL)。
ASP.DLL將從檔案系統或內部緩衝區擷取指定的ASP指令檔,接
著就進行文法分析並解釋執行。最終的處理結果將形成HTML格式的
內容,通過WEB伺服器“原路”返回給WEB瀏覽器,由WEB瀏覽
器在用戶端形成最終的結果呈現。這樣就完成了一次完整的ASP指令碼
調用。若干個有機的ASP指令碼調用就組成了一個完整的ASP指令碼應
用。
官方加密程式:從微軟免費下載到sce10chs.exe 直接運行即可完
成安裝過程。安裝完畢後,將產生screnc.exe檔案,這是一個運行在
DOS PROMAPT的命令工具。
運行screnc – l vbscript source.asp destination.asp產生包含密文
ASP指令碼的新檔案destination.asp用記事本開啟看凡是“"之
內的,不管是否註解,都變成不可閱讀的密文了,但無法加密中文。
幾種ASP原始碼保護方法:
1,“指令碼最小化”即ASP檔案中只編寫儘可能少的原始碼,實現
商業邏輯的指令碼部分被封裝到一個COM/DCOM組件,並在ASP腳
本中建立該組件,進而調用相應的方法(methed)即可。應用開發人員
動手開發ASP指令碼應用之前就可按此思路來開發,或者直接用ASP
指令碼快速開發出原型系統後,針對需要保護、加密的重要指令碼用
COM/DCOM組件來重新開發、實現並替換。
2,“指令碼加密”即ASP指令碼仍直接按原始碼方式進行開發,但在
發布到運行環境之前將指令碼進行加密處理,只要把加密後的密文指令碼
發布出去。即在ASP.DLL讀取指令碼這個環節加入密文還原的處理。
實現這種思路的方法有兩種:一是自行開發一個ISAPI的IIS過
濾(filter)塊,在ASP.DLL之前勾連(hook)對ASP指令檔的讀
取,以便把檔案系統讀出的密文還原成ASP.DLL可以解釋的明文;
方法二九是直接由ASP.DLL提供對ASP指令碼加密處理的支援。微軟
在新版本的Vbscript.dll jscript.dll中提供這種成為MS script encode
技術的支援。這樣,無論是用戶端的Vbscript jscript(包括WSH腳
本等),還是伺服器端的Vbscript jscript (即ASP指令碼)都可以支援
加密處理。