2021-05-12 14:32:11
Linux下建立可執行bin安裝檔案
【應用場景】
簡化操作,對於有些安裝操作而言,需要包含安裝指令碼和指令碼需要的檔案兩部分,封裝成可執行bin檔案之後就只有一個安裝包了。
程式碼保護,在很多情況下,我們並不希望使用者可以直接接觸到程式碼部分,這種情況下,我們就更需要封裝成bin檔案來安裝了。
【基本原理】
其實說起來很簡單,可執行bin檔案,其實就是將安裝指令碼和指令碼需要的檔案同時放到了同一個檔案裡面,然後在指令碼裡面去讀取bin檔案最後面的那部分內容。
讀取出來之後正常執行指令碼。
然後再刪除。
如下:
#!/bin/sh
dir_installation=/root/create_bin
mkdir $dir_installation
sed -n -e '1,/^exit 0$/!p' $0 > "${dir_installation}/abc.rpm" 2>/dev/null
cd $dir_installation
rpm -ivh abc.rpm
rm -y abc.rpm
rm -y $dir_installation
exit 0
紅色部分最為重要,它的目的主要是把exit 0後面的內容提取出來,另存為rpm包,然後執行安裝,安裝完成後刪掉rpm。
綠色部分是實際我們執行的指令碼。
【建立過程】
建立過程就更簡單了:
cat install.sh ./abc.rpm > install.bin
然後用vim開啟install.bin檔案,發現最開始是我們的指令碼部分內容,後半部分是我們的檔案。
【程式碼保護】
關於程式碼保護,我們可以使用shc工具。
./shc -f install.bin
通過 shc 可以將指令碼檔案編譯成二進位制檔案,隱藏了指令碼的內容。
當然這並不是一個完美無缺的方案,linux也提供了方法對二進位制檔案進行反編譯,但是至少普通使用者是沒有辦法去檢視相關程式碼內容了。
相關文章