范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

如何隐藏shell脚本内容

  从事 Linux 开发的同学,经常需要编写 shell 脚本,有时脚本中会涉及到一些敏感内容,比如一些 IP 地址,用户名以及密码等,或者脚本中有一些关键的代码, 所有这些内容你都不想别人阅读或者修改,更进一步,你希望对脚本设置过期时间,超过指定时间时间之后,脚本就无法使用
  在不改变脚本内容、功能以及执行方式的情况下,有没有办法实现上面的需求呢?
  答案是:有的, 在Linux下,我们可以使用 shc 这个工具来实现隐藏shell脚本内容以及设置过期时间的目的  简介
  shc 是一个通用shell脚本编译器,它将 shell 脚本编译 可执行的二进制文件,它的功能以及执行方式和原始脚本没有区别
  和 gcc 编译器不同的是,shc 并没有把脚本源代码转化成机器码,它只是生成了一份 C 语言代码,这份 C 语言代码中包含了加密的原始shell脚本,并为它添加了过期功能,然后,通过gcc编译器将C代码编译成可执行的二进制文件  安装
  目前,大多数的 Linux 发行版的仓库中都已经包含了 shc, 只需要使用默认的包管理器就可以安装,具体的安装命令如下:  yum install shc
  输入 shc -v 命令,下面的输出表示安装成功  [root@ecs-centos-7 shc_test]# shc -v shc parse(-f): No source file specified  shc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-o outfile] [-rvDSUHCABh] -f script 常用选项
  下面是 shc 常用的一些选项以及选项的描述
  选项
  描述
  -f
  待编译的shell脚本文件
  -o
  指定编译生成的二进制文件
  -e
  设置过期时间,格式 日/月/年
  -m
  过期之后,执行脚本时的提示信息
  -v
  输出编译shell脚本的过程
  -r
  编译生成可再发行的二进制   编译脚本
  sehll 脚本编译成可执行的二进制文件之后,只需要把二进制文件提供给执行者即可,这样执行者就无法知道原始脚本代码了,从而实现别人无法阅读和修改代码的目的
  新建 func.sh 脚本,往其中添加如下内容:  #!/bin/bash  #是否是有效的密码 valid_passwd() {    if [ "$1" == "123" ]; then         echo 1    else         echo 0    fi }  #获取最大数量 max_num() {   echo 100 }  #登录到远程机器 login() {   sshpass -p "123456" ssh test@192.168.70.20 }  #版本号 ver() {    echo "1.0" }  if [ $# -ne 0 ]; then         name="$1"         shift 1         ${name} "$@" fi
  执行下面的命令,编译 func.sh 脚本  shc -rf func.sh -o func.bin
  编译完之后,当前目录下会出现三个文件  [root@ecs-centos-7 shc_test]# ll -rwxrwxr-x 1 root root 11640 7月   1 00:24 func.bin -rw-r--r-- 1 root root   373 7月   1 00:19 func.sh -rw-r--r-- 1 root root 19811 7月   1 00:24 func.sh.x.c
  func.sh 是原始的脚本文件,func.sh.x.c 是生成的 c语言代码, func.bin 是生成可执行的二进制文件,它的使用方法和原始脚本是一样的
  注意: 编译出来的二进制文件func.bin,如果想让它在其他机器也能运行的话,一定要指定 -r 选项
  使用 file 命令分别查看 func.bin 、func.sh.x.c,结果如下:
  脚本对外提供 valid_passwd、 max_num、 login、 ver 这四个接口,脚本中已经注明了每个接口的作用,使用方法是 ./func.bin 接口名 接口参数列表,下面的两个实例说明了如何使用脚本  实例1
  分别执行 ./func.bin ver 和 ./func.sh ver 命令,结果如下
  从上图可以看出,无论是用脚本还是二进制,最终的结果都是一样的  实例2
  执行 ./func.bin login 命令,结果如下
  当传入 login 参数时,就会执行func.sh脚本中的 login 函数,该函数的作用是使用 SSH 登录到远程机器, 函数体中的  sshpass  是一个自动填充SSH登录密码的工具
  从结果可以知道,执行 ./func.bin login 命令之后,就登录到 ip 为 192.168.70.20 机器的 /home/test 目录,后面再输入 exit 从远程机器退回到当前机器的目录
  我们把 func.sh 脚本编译成 func.bin 二进制文件的目的就是要隐藏脚本文件中一些敏感信息,比如:脚本中的SSH用户 test , IP地址 192.168.70.20 以及密码 123456  设置过期时间
  shc 除了将把脚本编译成二进制,还能为二进制设置过期时间,下面还是以 func.sh 脚本为例来说明
  执行 shc -e 25/6/2021 -m "The script is expired, Please contact test@qq.com" -rf func.sh -o func.bin 命令把脚本的过期时间设置为 2021年6月25日,执行过期后的脚本提示语设置为 "The script is expired, Please contact test@qq.com"
  然后,执行 ./func.bin ver 命令进行测试,结果如下
  从上图可以看出,脚本设置过期时间之后,再次执行脚本会提示已经过期了  如何引用二进制脚本
  func.sh 编译成了二进制后,其他脚本引用它的方式也要调整下,原来以 source ./func.sh 的使用方式都需要修改,因为 fun.sh 已经由原来的 ASICII 文件变成了 二进制文件了,下面给出一个shell脚本引用二进制脚本 func.bin 的实例
  新建 test_func.sh 脚本,脚本内容如下:  #!/bin/bash  #调用 valid_passwd 函数 ret=$(./func.bin valid_passwd 123) if [ $ret -eq 1 ]; then    echo "passwd ok" fi  #调用 valid_passwd 函数 ret=$(./func.bin valid_passwd 124) if [ $ret -eq 1 ]; then    echo "passwd ok" else    echo "passwd fail" fi  #调用 max_num 函数 ret=$(./func.bin max_num) echo "max_num:"$ret  #调用 ver 函数 ret=$(./func.bin ver) echo "version:"$ret
  执行 ./test_func.sh 命令,结果如下
  从上图可以看出,test_func.sh 脚本分别调用了二进制文件 fun.bin 中的 valid_passwd、max_num、 ver 函数,根据 func.sh 脚本内容,可以确定结果输出都是正确的
  从这个实例可以得出,普通脚本也可以正常使用二进制的脚本  安全性
  shc 使用的加密类型是叫做 RC4流密码的一个变体,目前它已经被证实存在弱点,存在被破解的可能, 尤其在 shc 中,密钥被携带到加密脚本本身中,所以,是存在 通过反汇编破解出密钥,进而通过密钥还原原始脚本的可能性
  因此,我们不应该依赖 shc 加密的安全性,而是更多的把它当作是shell脚本内容的隐藏或者混淆工具  小结
  本文主要介绍了隐藏shell脚本内容的工具 shc, 虽然它加密的安全性不高,但是我们平常可以把它作为一个shell脚本代码隐藏和混淆工具来使用,也能达到我们的目的, 更多关于 shc 的相关知识请参考网上其他资料
  - EOF -

iOS14。5系统正式版要来了,iPhone手机将迎来大更新当下的手机行业一直都在不断地提高,并且发展的也很不错,很多厂商渐渐地有了自己的风格和优势,所以消费者只要根据个人需求进行购买。就好比华为手机,它最突出的地方正是它的拍照功能,它的拍天天投简历,却得不到面试机会?4步教你写出让HR无法拒绝的简历汪Sir说每年的金三银四本来是求职的旺季,用人单位也都会向社会释放大量的工作岗位。但是今年受新型冠状病毒疫情的影响,不少企业缩减了用工人数,严格筛选每一位候选人,这为求职者找新工作千万不要拿青春来换钱,中年职场危机,会让你奔溃,4招拯救你!汪Sir说昨天我劝退了一位35岁的同事,她大学毕业就进了我们公司,这一干就是13年。她做的工作很简单,就是将数据输入计算机,然后保持和客户的沟通。她的效率很高,别人一个月拿五千的时vivo耳机的隐藏功能,你一定想不到!vivo原装耳机只有一个按键,但却具有很多功能,你都知道吗?歌曲切换连按两下耳机线按钮,自动切换至下一首歌曲。连按三下,可返回播放上一个歌曲。拍照拍照时,单击一次,即可拍照。如果自兰博基尼极致超跑烧水壶1963年,兰博基尼创立于意大利圣亚加塔波隆尼,成为全球顶级跑车制造商及欧洲奢侈品标志之一,挑战极限,高傲不凡,豪放不羁,是它的象征。兰博基尼追求完美斗牛般不甘示弱,与宁木共同打造(互联网时代)转向(云时代万物互联)人民日报海外版为鸿蒙正名国内电台,湖南都市政法频道网络平台,网易澎湃等主流媒体报道鸿蒙智网,鸿蒙智网市场监督管理局携手共促民营经济领域标准化工作中国网刊登智慧监测云平台大田智网赋能专为儿童打造,易来超级飞侠联名款吸顶灯来了相信很多看过我文章的朋友们,都刷到过我曾经分享给大家的一些关于吸顶灯的文章。我购置吸顶灯的要求其实很简单,就是能和我家中的其他智能产品进行联动。此外,外观是我考虑的一个因素,功能性木北护肤造型带你深入了解卷发显老多种原因更好选择适合自身发型秋高气爽,天气日渐凉爽,又到了烫卷发的季节,卷发出色的蓬松感与其丰富的纹理,是很多女生对其爱不释手的原因之一,木北造型点出今年较为流行的卷发网红款,云朵卷,木马卷气垫卷羊毛卷法式卷LG手机凉了!宣布退出智能手机业务!韩联社4月5日消息,LG电子正式宣布将退出智能手机业务。LG电子在一份监管文件中表示,其移动通信部门将不再生产和销售手机,理由是该部门业绩长期低迷和行业竞争激烈。LG电子CEO权邦小米之家米8屏幕指纹版体验昨天s君去小米之家体验了一下。说一下体验感受1。镜面效果出众2。颜色的确挺漂亮的3。屏下指纹录入速度不理想,比普通指纹录入时间长50,不知道是不是体验机的缘故4。首发只有8128版刘天下,李半边,这两个姓氏到底有多大?刘姓在百家姓中,有些姓氏因为人口众多,被称之为大姓。而在众多的大姓中,又有句俗话叫做刘天下,李半边。这句俗话包含刘李两个姓,这两个姓氏到底有多大?今天我们就来说说。刘氏图腾刘姓作为
华为P60最新爆料,或将搭载新麒麟5G芯片,华为手机将会王者归来最近网上有消息传出华为P60系列将搭载最新的麒麟5G芯片麒麟9010,支持5G双模,支持100W超级快充,并且进入最后的筹备阶段,说得是有板有眼。如果这是真的,那对于众多的华为花粉全系对标iPhone?小米12三款产品齐发特殊版本有望超越苹果?12月初,高通正式发布了新一代旗舰芯片骁龙8Gen1,随后各个手机品牌开始预热自家的新品,其中小米正式官宣将会首发高通骁龙8Gen1,也就是小米12系列。关于这款新品,最近也有了更5G芯片受限后的突围华为手机不断借壳下蛋中国商报(见习记者赵熠如文图)继鼎桥通信TCL雷鸟之后,最近中邮通信设备有限公司(以下简称中邮通信)出现在华为智选手机的供货商梯队中。实际上,今年已有多款华为智选手机上架。中国商报菜鸟驿站一年收入多少?菜鸟驿站的开设成本成本包括加盟费两三万出库机3000。房租牌匾货架,加一起六万左右就可以把快递驿站支起来。一个小区一般只有一个驿站,在饱和的状态下,无法申请开设新驿站,只能接手别人三星GalaxyF62携6000mAh大电池报到,骁龙870120Hz高刷屏今年上半年以及第三季度,虽然三星依旧坐稳了全球第一的宝座,但它的市场占有率与去年相比还是出现了大幅下降的趋势,所以为了保住全球第一的位置,接下来三星将会大力发展中端市场,从而加快5科技创新引领高质量发展创新是引领发展的第一动力。2021年,科技创新支撑和引领着中国经济的高质量发展。这几年来,全球经济遭遇新冠肺炎疫情打击,但中国经济保持了增长态势。2021年,中国创新驱动发展态势持多部门全链条发力绿色消费迎新风口健全低碳循环消费体系节能家电新能源汽车等获重点支持多部门全链条发力绿色消费迎新风口扩大绿色低碳消费产品有效供给,完善废旧汽车家电回收处理体系,鼓励发展互联网回收等新业态新模式,指导一个专为元宇宙而生的去中心化社区驱动的实验性meme代币随着韩国元宇宙首尔五年计划发布,韩国无论规模大小,企业们都在踊跃进入元宇宙竞技场以寻求未来,甚至韩国经济和财政部也公开认定元宇宙是未来的关键产业之一。WoofWoofCoin是一个Oracle19c多租户若只有pdb数据库文件,如何将PDB插入到CDB?GeneratexmlfileofpdbBEGINDBMSPDB。RECOVER(PDBDESCRFILEyxq5lomonODBAAO011011。xml,PDBNAMEODBAOPPOReno7Pro测评买了暮雪金感觉不好看,有点后悔,但性能不错唉这个颜色买错了,这个颜色不太好看,就在阳光下有这种幻彩的感觉,市内颜色根本就是个乳白色,没有蓝色好看,给小伙伴参考,没有6的紫色好看,对于我这种只看颜值的人来说,这次踩坑了,早知区块链赋能法治领域大有可为欧科云链智慧助推警务工作近年来,区块链行业发展喜人,创新应用不断拓展。据中国移动互联网发展报告(2021)显示,去年全国共有近2000个区块链项目,区块链市场规模超32亿元。继去年区块链被纳入新基建后,今