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

全國(guó)咨詢(xún)/投訴熱線:400-618-4000

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

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

  需求及應(yīng)用場(chǎng)景
  1、簡(jiǎn)化操作。一般的軟件安裝過(guò)程,如果想要精簡(jiǎn)步驟,我們一般會(huì)將需要在命令行中輸入的命令寫(xiě)成一個(gè)腳本,同時(shí)將安裝介質(zhì)準(zhǔn)備好。我們將腳本和安裝介質(zhì)上傳到生產(chǎn)環(huán)境,然后通過(guò)執(zhí)行腳本來(lái)完成安裝。如果能夠?qū)⑦@兩個(gè)文件合并為一個(gè)可執(zhí)行文件,那安裝的過(guò)程就更簡(jiǎn)單明了。
  2、代碼保護(hù)。對(duì)于一段腳本,提供給用戶使用,但是不希望用戶看到腳本的內(nèi)容,可以通過(guò)將腳本發(fā)布為.bin的形式。這樣用戶在環(huán)境中可以執(zhí)行、安裝,但是無(wú)法看到里面的內(nèi)容,也無(wú)法修改,從而達(dá)到保護(hù)腳本內(nèi)容的目的。
  實(shí)現(xiàn)方法
  1、本文以在Redhat系統(tǒng)中安裝ftp命令為例說(shuō)明,如何將安裝腳本和安裝介質(zhì)整合成一個(gè)文件,簡(jiǎn)化操作。
  首先,編寫(xiě)一個(gè)腳本,包含安裝的命令。
  #!/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
  注意,這個(gè)腳本的關(guān)鍵在于sed,他會(huì)把exit 0后面的內(nèi)容提取出來(lái),另存為rpm包,然后執(zhí)行安裝,安裝完成后刪掉rpm。
  最后,我們用cat命令將腳本和安裝包生成一個(gè)新的文件。
bin文件安裝方法
這時(shí),如果用file命令查看install-rpm.bin文件,可以發(fā)現(xiàn)它的類(lèi)型還是文本類(lèi)型,用vim編輯器打開(kāi),還是可以看到腳本內(nèi)容的,也可進(jìn)行修改。
bin文件安裝方法
  2、對(duì)于第二個(gè)隱藏代碼內(nèi)容的需求,有一款工具叫做 shc ,可以用它來(lái)將腳本編程二進(jìn)制文件。
  shc的用法比較簡(jiǎn)單,下載后make生成可執(zhí)行文件,然后直接對(duì)腳本進(jìn)行加密,會(huì)生成兩個(gè)文件。一個(gè)以.x結(jié)尾,為可執(zhí)行的二進(jìn)制文件。另一個(gè)以.x.c結(jié)尾,為生成的中間c文件。shc還能指定可執(zhí)行腳本的過(guò)期時(shí)間。
  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
  通過(guò) shc 可以將腳本文件編譯成二進(jìn)制文件,隱藏了腳本的內(nèi)容,對(duì)于一般的用戶是沒(méi)辦法查看和修改的。當(dāng)然,還是有辦法可以再將二進(jìn)制文件轉(zhuǎn)換為純文本的腳本的。
0 分享到:
和我們?cè)诰€交談!