• 创建可执行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也提供了方法对二进制文件进行反编译,但是至少普通用户是没有办法去查看相关代码内容了。

  • 相关阅读:
    处理客户端无法及时更新js、css
    关于JQ判断单选复选被选中
    一路风景,一路欣赏,一路有你
    Adobe Dreamweaver CC 2015新功能
    Eclipse导出APK文件报错 android lint problem
    swift2.0 计算圆面积
    zendStudio连接远程服务器报错java.net.SocketException
    IOS tableview 消除 分割线短 15 像素 ios8方法 swift版
    应用之间调用 UIApplication类的OpenURL方法
    iOS8 今日扩展
  • 原文地址:https://www.cnblogs.com/liufarui/p/11310261.html
Copyright © 2020-2023  润新知