我使用的是Ubuntu 10.04。我創建了一個shell腳本。編寫腳本後,右鍵單擊該文件並選擇Gedit時可以編輯該代碼。我想知道如何在Gedit中使腳本無法讀取。如何模糊shell腳本?
回答
您可能正在尋找類似shc的東西。 從手冊頁:
shc在命令行上創建使用-f指定的 腳本的剝離二進制可執行版本。
http://freecode.com/projects/shc
免責聲明:我沒有測試過SHC我也不知道如何/如果它的工作原理
你想要做什麼是不容易成爲可能。腳本被解釋,而不是編譯,這就是爲什麼你看到文本。
要執行一個腳本,有效用戶必須具有讀取訪問。除了允許執行權限或使用shc(如KillerX已經提出的良好建議)而不讓用戶查看腳本競賽之外,替代方案是使用sudo。您可以編輯sudoers
文件中像這樣(記得用visudo
編輯這個文件!):
username ALL=(ALL) /path/to/your_script.sh
現在腳本將是「用戶名」可執行,但他將無法讀取其內容。當然,你需要刪除所有權限,從這個文件中「用戶名」 ...
什麼是需要是創建腳本後我被轉換執行權限。如果我將這個腳本給這個人的其他人一定不能打開這個腳本,他們只能運行這個腳本。 – Viswa 2012-03-14 11:56:27
然後,你應該嘗試shc。除了使用非解釋語言之外,我無法弄清楚其他解決方案。 – 2012-03-14 11:59:14
我是下載SHC 3.8.7和安裝成功,那麼腳本test.sh轉化通過終端i被跑./test.sh.x到test.sh.x format.Then。它運行我的系統。但是同樣的test.sh.x被複制並粘貼到另一個系統並安裝了shc。然後我運行./test.sh.x它沒有運行。該怎麼辦。 – Viswa 2012-03-14 13:17:44
混淆(這是什麼時,他們說,他們希望有一個「二進制」 shell腳本大多數人的意思)是一個壞主意(TM) - 去過也做過。它不提供與一個確定的程序員任何安全(他們剛剛跟蹤腳本搞清楚它在做什麼),這使得它真的,真的很難調試(這可能是除非你是GreyCat,你會需要做很多。)。
GEdit只是另一個可用於編輯文件的工具,非常像「vi」或「nano」。唯一的區別是,我相信它是圖形的。不過,看起來原來的海報試圖在這裏做的只是讓別人無法查看某些腳本。如果那是真的,那麼有些解決方案可能值得研究。
SHC:
SHC是用於此目的的一個很好的工具。並基於此線程中的最後一篇文章,看起來OP已經嘗試過,但它在某些系統上不起作用。如果是這樣,那麼繼承人之所以會這樣。 SHC的工作方式其實非常簡單。當使用它來混淆腳本時,您必須重新編譯腳本以用於您想要運行的任何操作系統。這意味着,你不能在Ubuntu機器上運行SHC編譯器,並期望生成的腳本能夠在Red Hat/CentOS機器上運行。看來最新版本的SHC可以是accessed here。
EnScryption:
如果你的主要目標是從嘗試讀取你的代碼勸阻別人,你可以只貼上你的腳本像this one網站。該站點將自動生成腳本的混淆版本,該腳本應該能夠在大多數常見Unix系統上運行而不會出現問題。
如果您不希望將代碼粘貼到上述網站或出於任何原因使用SHC,那麼還有另一種解決方案。使用openssl!
的OpenSSL:
如果你的腳本是真的那麼敏感,那麼Openssl的(或類似的工具)可能是您的最佳選擇。爲什麼?由於openssl工具特別適用於大多數Unix系統......也就是說, Ubuntu,CentOS,Red Hat,Macs,AIX。它是作爲默認安裝的一部分。如果您決定採用這種方式,請注意,您需要編寫腳本,使其在運行之前必須提供密碼。
使用OpenSSL加密腳本:
cat yourscript.sh | openssl aes-128-cbc -a -salt -k (specify-a-password-here) > yourscript.enc.sh
(OR)
openssl aes-128-cbc -a -salt -in yourscript.sh -k (specify-a-password-here) > yourscript.enc.sh
(OR)
openssl aes-128-cbc -a -salt -in yourscript.sh -out yourscript.enc.sh -k (specify-a-password-here)
解密你的腳本使用OpenSSL:
cat yourscript.enc.sh | openssl aes-128-cbc -a -d -salt -k (specify-a-password-here) > yourscript.dec.sh
(OR)
openssl aes-128-cbc -a -d -salt -in yourscript.sh -k (specify-a-password-here) > yourscript.dec.sh
(OR)
openssl aes-128-cbc -a -d -salt -in yourscript.sh -out yourscript.enc.sh -k (specify-a-password-here)
快速一點需要注意有關OpenSSL的加密機制「AES-128- cbc':
那裏可能有更安全的機制。但是,您希望運行加密腳本的某些系統很可能沒有這些機制,因此無法運行腳本。因此,如果您決定改變它,請記住這一點。
- 1. shell腳本模板
- 2. Shell腳本模式識別
- 3. shell腳本模式匹配?
- 4. Shell腳本通用模板
- 5. 如何使用shell腳本
- 6. 如何在shell腳本
- 7. 如何使用shell腳本
- 8. 如何檢索shell腳本
- 9. 如何從shell腳本
- 10. 如何使用shell腳本
- 11. 如何編寫shell腳本?
- 12. 如何使用shell腳本
- 13. 如何加入shell腳本
- 14. 如何使用shell腳本
- 15. 如何使用shell腳本
- 16. 如何使用shell腳本
- 17. 如何使用shell腳本
- 18. 如何從shell腳本
- 19. 如何使用shell腳本
- 20. 如何編寫shell腳本
- 21. 如何使用shell腳本
- 22. 如何從shell腳本調用另一個shell腳本的Unix
- 23. shell的shell腳本
- 24. 如何使用Shell腳本編寫shell腳本來查找shell類型
- 25. 編寫shell腳本的shell腳本
- 26. 通過packer.js模糊java腳本
- 27. python腳本模糊錯誤消息
- 28. Laravel 5.4混合如何裂傷/醜化/模糊處理腳本
- 29. 如何添加模糊增強模糊?
- 30. 如何模糊ListView項目與模糊?
腳本_必須是可讀的,以便解釋器能夠運行它。你在問如何用編譯語言重新編寫腳本作爲程序來阻止某人修改腳本?或者......你真的想完成什麼? [編譯器的shell腳本]的 – sarnold 2012-03-14 11:20:06
可能重複(http://stackoverflow.com/questions/1297318/compilers-for-shell-scripts) – l0b0 2012-03-14 11:54:17
模糊處理是東西比缺少訪問(讀取)的權限不同。你是指哪一個? – bitmask 2012-03-14 12:03:40