教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

如何創(chuàng)建可執(zhí)行bin安裝文件

更新時間:2019年02月25日13時31分 來源:bin文件 瀏覽次數(shù):

  需求及應(yīng)用場景
  1、簡化操作。一般的軟件安裝過程,如果想要精簡步驟,我們一般會將需要在命令行中輸入的命令寫成一個腳本,同時將安裝介質(zhì)準(zhǔn)備好。我們將腳本和安裝介質(zhì)上傳到生產(chǎn)環(huán)境,然后通過執(zhí)行腳本來完成安裝。如果能夠?qū)⑦@兩個文件合并為一個可執(zhí)行文件,那安裝的過程就更簡單明了。
  2、代碼保護(hù)。對于一段腳本,提供給用戶使用,但是不希望用戶看到腳本的內(nèi)容,可以通過將腳本發(fā)布為.bin的形式。這樣用戶在環(huán)境中可以執(zhí)行、安裝,但是無法看到里面的內(nèi)容,也無法修改,從而達(dá)到保護(hù)腳本內(nèi)容的目的。
  實(shí)現(xiàn)方法
  1、本文以在Redhat系統(tǒng)中安裝ftp命令為例說明,如何將安裝腳本和安裝介質(zhì)整合成一個文件,簡化操作。
  首先,編寫一個腳本,包含安裝的命令。
  #!/bin/sh
  echo "Hello World"
  dir_installation=/root/create_bin
  sed -n -e '1,/^exit 0$/!p' $0 > "${dir_installation}/ftp-0.17-54.el6.x86_64.rpm" 2>/dev/null
  cd $dir_installation
  rpm -ivh ftp-0.17-54.el6.x86_64.rpm
  rm ftp-0.17-54.el6.x86_64.rpm
  exit 0
  注意,這個腳本的關(guān)鍵在于sed,他會把exit 0后面的內(nèi)容提取出來,另存為rpm包,然后執(zhí)行安裝,安裝完成后刪掉rpm。
  最后,我們用cat命令將腳本和安裝包生成一個新的文件。
bin文件安裝方法
這時,如果用file命令查看install-rpm.bin文件,可以發(fā)現(xiàn)它的類型還是文本類型,用vim編輯器打開,還是可以看到腳本內(nèi)容的,也可進(jìn)行修改。
bin文件安裝方法
  2、對于第二個隱藏代碼內(nèi)容的需求,有一款工具叫做 shc ,可以用它來將腳本編程二進(jìn)制文件。
  shc的用法比較簡單,下載后make生成可執(zhí)行文件,然后直接對腳本進(jìn)行加密,會生成兩個文件。一個以.x結(jié)尾,為可執(zhí)行的二進(jìn)制文件。另一個以.x.c結(jié)尾,為生成的中間c文件。shc還能指定可執(zhí)行腳本的過期時間。
  wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9b.tgz
  tar xvfz shc-3.8.9b.tgz
  cd shc-3.8.9b
  make
  ./shc -v
  shc parse(-f): No source file specified
  shc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-rvDTCAh] -f script
  ./shc -f install-rpm.bin
  通過 shc 可以將腳本文件編譯成二進(jìn)制文件,隱藏了腳本的內(nèi)容,對于一般的用戶是沒辦法查看和修改的。當(dāng)然,還是有辦法可以再將二進(jìn)制文件轉(zhuǎn)換為純文本的腳本的。
0 分享到:
和我們在線交談!