Linux shell脚本文件通过shc工具加密,生成静态链接可执行文件

要使用 shc 工具对 Linux shell 脚本进行加密并生成静态链接的可执行文件,你可以按照以下步骤操作:

  1. 安装 shc 工具
    如果你的系统中还没有安装 shc,可以通过包管理器安装,例如在 Ubuntu 系统中,可以使用以下命令安装:

    sudo apt-get install shc
    

    如果系统不支持直接安装,你可以从 shc 的官方网站下载源码包并编译安装 。

  2. 编写你的 shell 脚本
    创建一个包含你所需功能的 shell 脚本文件,例如 script.sh

  3. 使用 shc 加密脚本
    使用 shc 对脚本进行加密。为了生成静态链接的可执行文件,你需要设置 CFLAGS 环境变量为 -static 并使用 shc-r(放松安全限制,使得生成的二进制文件可以在相同操作系统的不同机器上运行)和 -f(指定脚本文件)选项。命令如下:

    CFLAGS="-static" shc -v -r -f script.sh
    
  4. 检查生成的文件
    运行上述命令后,shc 会生成两个文件:script.sh.x(加密后的可执行程序)和 script.sh.x.c(相应的 C 源代码文件)。你可以检查 script.sh.x 文件以确认它是一个静态链接的可执行文件:

    file script.sh.x
    

    输出应该显示该文件是静态链接的。

  5. 运行加密的脚本
    你可以通过直接执行 script.sh.x 文件来运行加密后的脚本:

    ./script.sh.x
    

    实例测试:

    在这里插入图片描述


    备注:shc参数

    shc 是一个用于加密 shell 脚本的工具,它可以将脚本转换为二进制可执行文件,以保护脚本内容不被轻易查看。以下是 shc 的一些常用参数及其说明:

  • -f--file:指定要加密的脚本文件名。这是必须提供的参数。
  • -v--verbose:详细模式,输出更多的编译信息。
  • -r:放松安全限制,生成的二进制文件可以在相同操作系统的不同系统上执行。
  • -T:生成可追踪的二进制文件。
  • -e--expire:设置脚本的过期日期,格式为 dd/mm/yyyy
  • -m--message:设置脚本过期时显示的消息。
  • -o--output:指定输出的二进制文件名。
  • --static:生成静态链接的二进制文件,不依赖系统的动态链接库。

以上步骤将帮助你使用 shc 工具对 shell 脚本进行加密并生成静态链接的库文件,以保护脚本内容不被轻易查看或修改。

请注意,shc 使用的加密方法不是非常强大,因此不应该将其用作高安全性需求的场合。它更适合于防止脚本被轻易查看,而不是防止专业的逆向工程。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/896010.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv11模型改进-模块-引入空间池化模块StripPooling 解决遮挡、小目标

本篇文章将介绍一个新的改进机制——空间池化模块StripPooling,并阐述如何将其应用于YOLOv11中,显著提升模型性能。首先,我们将解析StripPooling的工作原理,SP模块通过条带池化在水平和垂直方向上捕捉长距离依赖关系,增…

如何在线查看近8年的建筑覆盖变化

我们在《谷歌发布建筑数据,高度误差达惊人的1.5米》一文中介绍了谷歌2.5D建筑数据用途、制作方法以及数据下载方式。 现在我们演示下如何在线查看近8年的建筑物覆盖、建筑物质心和建筑物高度的变化。 历史建筑覆盖在线查看 2.5D建筑演变数据集包含2016年至2023年…

碰一碰支付怎么推广的?小白也能看懂的教程来了!

作为支付宝和微信全面力推的一个项目,碰一碰支付的热度可谓是节节攀升,连带着与之相关的话题,如碰一碰支付是什么和碰一碰支付怎么推广的等也因此成为了人们关注的焦点。那么,本期,我们就来详细地解答一下这两个问题。…

2024台州赛CTFwp

备注: 解题过程中,关键步骤不可省略,不可含糊其辞、一笔带过。解题过程中如是自己编写的脚本,不可省略,不可截图(代码字体可以调小;而如果代码太长,则贴关键代码函数)。…

I.MX6U 字符设备驱动开发指南

目录 一、引言 二、字符设备驱动的基本概念 1.字符设备的定义 2.字符设备驱动的作用 三、I.MX6U 字符设备驱动开发步骤 1.确定设备信息 2.编写设备驱动代码 3.编译和加载驱动 4.测试设备驱动 四、实例分析 1.确定设备信息 2.编写设备驱动代码 3.编译和加载驱动 4.…

iOS 回到主线程刷新UI

在iOS 里面,项目打开就会运行一个主线程,所有的UI都在主线程里进行.其他网络请求或者耗时操作理论上也可以在主线程运行,但是如果太耗时,那么就会影响主线程其他UI.所以需要开字线程来进行耗时操作,子线程进行完耗时操作之后,如果项目需求有需要刷新UI,或者改变UI,一定得回到主…

音频/视频提取器:Python和moviepy实现

在这篇博客中,我们将深入探讨一个使用Python和wxPython构建的音频/视频提取器应用程序。这个应用程序允许用户从视频文件中提取音频,或者从音频文件中截取特定时间段。让我们逐步分析这个程序的功能和实现。 C:\pythoncode\new\MP3towav.py 全部代码 import wx import os imp…

「iOS」——YYModel学习

iOS学习 前言优势使用方法简单的Model与JSON互转多样化的数据类型交换容器类数据交换 model中包含其他model白名单与黑名单 总结 前言 YYModel是YYKit的高效组件之一,在实际场景中的非常实用,在项目中使用MVC架构时,可以简化数据处理。在性能…

OpenShift 4 - 云原生备份容灾 - Velero 和 OADP 基础篇

《OpenShift 4.x HOL教程汇总》 说明: 本文主要说明能够云原生备份容灾的开源项目 Velero 及其红帽扩展项目 OADP 的概念和架构篇。操作篇见《OpenShift 4 - 使用 OADP 对容器应用进行备份和恢复(附视频) 》 Velero 和 OADP 包含的功能和模…

028.爬虫浏览器-抓取shadowRoot下的内容

一、什么是Shadow DOM Shadow DOM是一种在web开发中用于封装HTML标记、样式和行为的技术,以避免组件间的样式和脚本冲突。它允许开发者将网页的一部分隐藏在一个独立的作用域内,从而实现更加模块化和可维护的代码结构 二、js操作Shadow DOM // 获取宿…

邮件营销文案设计:打造个性化内容的步骤?

邮件营销文案写作技巧与方法?外贸邮件营销怎么撰写? 一个成功的邮件营销文案设计不仅能吸引客户的注意力,还能有效提升转化率。MailBing将详细探讨如何通过一系列步骤,打造出既个性化又高效的邮件营销文案设计。 邮件营销文案设…

监控易监测对象及指标之:Microsoft Message Queue(MSMQ)监控

监控易是一款强大的监控工具,能够实时监控各类IT设施和应用程序的性能指标。对于Microsoft Message Queue(简称MSMQ)的监控,监控易提供了详尽的指标,以确保企业能够准确掌握消息队列的运行状况。 在MSMQ的监控中&#…

24、darkhole_2

难度 高(个人感觉属于中) 目标 root权限2个flag 基于VMware启动(我这里启动只能选择我wifi的那个网卡才能获取到ip地址,nat的没获取到不知道为什么。) kali 192.168.1.122 靶机 192.168.1.170 信息收集 端口扫描 只开…

【python】OpenCV—Fun Mirrors

文章目录 1、准备工作2、原理介绍3、代码实现4、效果展示5、参考 1、准备工作 pip install vacm2、原理介绍 在OpenCV中,VCAM 库是一个用于简化创建三维曲面、定义虚拟摄像机、设置参数以及进行投影任务的工具。它特别适用于实现如哈哈镜等图像变形效果。 一、VC…

用你的手机/电脑运行文生图方案

随着ChatGPT和Stable Diffusion的发布,最近一两年,生成式AI已经火爆全球,已然成为移动互联网后一个重要的“风口”。就图片/视频生成领域来说,Stable Diffusion模型发挥着极其重要的作用。由于Stable Diffusion模型参数量是10亿参…

读者写者问题与读写锁

读者写者问题 读者写者 vs 生产消费 重点是有什么区别 读者写者问题如何理解 重点理解读者和写者如何完成同步 下面是一段伪代码:公共部分 uint32_t reader_count 0; lock_t count_lock; lock_t writer_lock; Reader // 加锁 lock(count_lock); if(reader_c…

Java | Leetcode Java题解之第492题构造矩形

题目: 题解: class Solution {public int[] constructRectangle(int area) {int w (int) Math.sqrt(area);while (area % w ! 0) {--w;}return new int[]{area / w, w};} }

5G物联网主机引领企业数字化转型

在当今这个信息化高度发展的时代,企业的竞争力很大程度上取决于其能否快速适应市场变化并高效地进行内部管理。郑州龙兴物联科技有限公司凭借其先进的5G物联网技术,推出了为企业量身定制的5G物联网主机,该设备充分利用其多协议、多接口的特点…

ESP32-C3 入门笔记04:gpio_key 按键 (ESP-IDF + VSCode)

1.GPIO简介 ESP32-C3是QFN32封装,GPIO引脚一共有22个,从GPIO0到GPIO21。 理论上,所有的IO都可以复用为任何外设功能,但有些引脚用作连接芯片内部FLASH或者外部FLASH功能时,官方不建议用作其它用途。 通过开发板的原…

【Vue】Vue3.0 (十二)、watchEffect 和watch的区别及使用

上篇文章: 【Vue】Vue3.0 (十二)、watch对ref定义的基本类型、对象类型;reactive定义的对象类型的监视使用 🏡作者主页:点击! 🤖Vue专栏:点击! ⏰️创作时间&…