2012-05-28 27 views
3

假設所有基於腳本的語言(比如VBscript和Powershell)每次都會將整個代碼「嵌入」到客戶機器上,我是否應該假設該代碼是「開放的」?我的意思是,有一種方法可以保護基於腳本的代碼讀取(並因此寫入)?有一些方法可以保護腳本代碼?

回答

6

有一些工具可以將VBScript轉換爲可執行文件,如vbs2exe,vbseditscriptcryptor。通過PowerShell創建可執行文件也可以使用doing it yourself in .net,using PowerGUI Props2exe

使用這些工具,您可以使腳本「關閉」。與(幾乎)所有客戶站點代碼一樣,它仍然可能被黑客攻擊,但這需要更多的工具和知識,而不僅僅是在記事本中打開vbs文件並窺探腳本。

+0

良好的信息有在這裏肯定我只想強調,是爲了實現真正的安全不應該包括在客戶端代碼,無論包裝的信息,這就像如果你不想要的東西的規則看到你不要把它放在互聯網上。主動的反彙編工具使拆分可執行文件非常容易(我真的沒有黑客,但我已經看到了這些工具的功能)。我想我會先把你的第二段。 – shaunhusain

3

我不認爲有充分的證明方式,混淆和最小化方法的目的是試圖保護代碼(在最小化的情況下減少存儲/傳輸大小),但最終有人有足夠的時間在他們的手可以通過調試/反彙編工具反向工程或觀察程序的執行。我認爲你最安全的做法是假設客戶端機器上的任何東西都可以被玩弄,並且保護代碼或信息的最佳選擇是在服務器上存儲/執行適當的安全措施並不斷更新安全缺陷補丁。

-1

我對可執行的方法並不滿意,因爲我發現複雜的腳本編譯起來不方便(通常也不是很容易),最終難以處理。正如許多人指出的那樣,對於確定的人來說,可執行文件不是障礙。我決定一個更好的方法只會使人類可讀的腳本更難以改變,然後簡單地要求由原始開發商所做的更改。

我寫obfuscate-powershell改變變量和函數名,刪除註釋並改變空格只是爲了使代碼的可讀性和可理解。它仍然沒有任何安全感,但總比沒有做任何事都好。