首页 > 系统相关 >如何使用SHC对Shell脚本进行二进制编译和封装

如何使用SHC对Shell脚本进行二进制编译和封装

时间:2023-10-28 15:56:55浏览次数:30  
标签:脚本 Shell 封装 二进制 auto sh SHC 安装 shc

在许多情况下,我们需要保护我们的shell脚本源码不被别人轻易查看。这时,使用shc工具将shell脚本编译成二进制文件是一个有效的方法。本文将详细介绍如何在线和离线条件下安装shc,并将其用于编译你的脚本。

什么是SHC?

shc是一个由C语言编写的Shell脚本加密程序,它可以将你的脚本编译成二进制可执行文件,从而隐藏源码。

安装SHC

在线安装

如果你的机器能够连接到互联网,以下是在不同操作系统上安装shc的步骤:

  • Ubuntu:

    sudo apt-get install shc
  • macOS:

    brew install shc
  • CentOS:

    yum install shc

离线安装

如果你的机器无法连接到互联网,那么你可以在有网络的环境中下载 shc 源码包,然后离线安装。

  1. 在有网络的环境中下载 shc 源码包

    下载链接:https://github.com/neurobin/shc/archive/refs/tags/4.0.3.tar.gz

  2. 复制该文件到目标机器

    可以通过USB存储设备或者局域网进行传输。

  3. 在目标机器上安装 shc

    tar -xvzf shc-4.0.3.tar.gz
    cd shc-4.0.3
    mkdir -p /usr/local/man/man1 #这步是必须的,不然安装过程中会报错,shc将安装命令到/usr/local/bin/目录下;将帮助文档存放在/usr/local/man/man1/目录下,如果系统中无此目录,安装时会报错,可创建此目录后再执行安装
    make sudo make install #这步要回答yes或者y,不能直接回车,否则会报错
  4. 验证安装

    安装完成后,可以通过以下命令检查shc是否已经成功安装:

    shc -v

    如果能看到版本信息,则表示shc已经安装成功。

使用SHC编译脚本

假设你有一个名为 auto.sh 的 shell 脚本,并希望将其编译成二进制文件以隐藏源码。只需两步即可完成:

  1. 使用shc进行编译

    在命令行中输入以下命令:

    shc -f auto.sh    #“-f”选项指定需要加密的程序

    此操作会生成两个新文件:auto.sh.x.cauto.sh.xauto.sh.x是可执行的二进制文件,而auto.sh.x.c则是生成二进制文件的C源文件。

  2. 运行编译后的脚本

    你可以直接运行编译后的二进制文件:

    ./auto.sh.x

请注意,虽然shc可以很好地隐藏你的源代码并防止轻度反向工程,但如果需要更高级别的保护,你可能需要将脚本重写为一个编译型语言(如C、Go或Rust),或者使用专门的软件加密工具进行封装和加密。

 

【出处】:https://www.cnblogs.com/n00dle/p/17792964.html

标签:脚本,Shell,封装,二进制,auto,sh,SHC,安装,shc
From: https://www.cnblogs.com/mq0036/p/17794170.html

相关文章

  • 每日随笔——使用 Spark Shell 编写代码
    安装完spark之后,学习使用SparkShell编写代码默认spark已经安装成功,且环境变量已经配置完成启动SparkShellcd/export/server/sparkbin/spark-shell 加载文本文件valtextFile=sc.textFile("file://export/server/spark/README.md")退出SparkShellquit ......
  • shell 脚本一键部署 k8s 高可用集群
    github地址:https://github.com/Johnny-Demo/deploy/tree/k8s-cluster有不理解的地方可以私信我......
  • 如何使用SHC对Shell脚本进行封装和源码隐藏
    在许多情况下,我们需要保护我们的shell脚本源码不被别人轻易查看。这时,使用shc工具将shell脚本编译成二进制文件是一个有效的方法。本文将详细介绍如何在线和离线条件下安装shc,并将其用于编译你的脚本。什么是SHC?shc是一个由C语言编写的Shell脚本加密程序,它可以将你的脚本编译成......
  • 记一次任意文件下载到Getshell
    任意文件下载(ArbitraryFileDownload)是一种常见的Web攻击技术,用于窃取服务器上任意文件的内容。攻击者利用应用程序中的漏洞,通过构造恶意请求,使应用程序将任意文件(如配置文件、敏感数据等)发送给攻击者。一旦攻击者成功利用这种漏洞,就可以从服务器上获取应用程序所拥有的任意文......
  • 一文彻底弄懂Linux-Shell编程
    一、Shell 编程之条件结构1、Shell 条件测试语法test 测试表达式利用test命令进行条件测试表达式, test命令与测试表达式之间至少有一个空格[测试表达式]通过[]中括号进行条件测试表达式, []中括号边界与测试表达式之间至少有一个空格[[测试表达式]]通过[[]]双中括......
  • 苹果免签封装的优势与安全风险
    大家好,我是咕噜-凯撒,现在越来越多的开发者希望能在iOS设备上,自由分发应用程序,而不是一直依赖于苹果的AppStore审核,苹果免签封装就出现了,那免签封装有哪些优势又有哪些安全风险,我总结了一下分享给大家。                        ......
  • PCB封装命名规则,本文转载https://www.xjx100.cn/news/432127.html?action=onClick
    SO、SOP、SOIC、MSOP、TSSOP、TSOP、VSSOP、SSOP、SOJ封装详解 1. 简要信息如下: 2.SOP和SOIC的规格多是类似的,现在大多数厂商基本都采用的是SOIC的描述:SOIC8有窄体150mil的(外形封装宽度,不含管脚,下同),管脚间距是1.27mm,如下:有宽体的208mil的,管脚间距是1.27mm,如下:......
  • 关于虚拟机突然卡住,xshell连接掉了且无法重连的问题
    遇事莫慌,笔者当时的情况是刚配好spark,突然发现xshell中node1节点的连接掉了,重连也连不上,于是打开虚拟机,发现页面卡住,强制关也关不掉。于是从bing上找解决方案:直接打开服务,想装*就win+r,services.msc,找到vmware的相关进程,好像是四个,将启动类型全部改为禁止,然后关机..重启完再打开进......
  • 【速看】如何通过合理的封装,让你的自动化脚本更上一层楼!
    此文章来源于项目官方公众号:“AirtestProject”版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途1.前言 上一篇推文利用一个在图片范围内实现随机坐标点击的例子,去教会大家如何将自己想要的效果实现出来,受到大家的热情反响,在我们官方讨论群中,还有大佬对我......
  • Shell-Makefile使用变量
    可以现在build.sh中source需要的config.sh配置文件,并export其中包含的变量。此时,变量在当前shell终端中生效。Makefile中只用变量应为${VAL}https://blog.csdn.net/mouday/article/details/128966176https://blog.csdn.net/QCZTZSWT357/article/details/102577134......