【shc】【脚本加密】最简单、最通用、Ubuntu 一键能用、小白也能操作 的 Shell 脚本加密方案

【shc】【脚本加密】最简单、最通用、Ubuntu 一键能用、小白也能操作 的 Shell 脚本加密方案




分两种:
  1. 轻度装逼:代码乱码混淆(看起来一团乱,普通人看不懂)
  2. 硬核加密:直接编译成二进制文件(看不到源码,只能运行,最能装大佬)
结合你 Batocera + Ubuntu 的场景,直接给你能用的成品方案。

一、最推荐:shc 工具(编译成二进制,最硬核、最装逼)

原理

把你的.sh脚本直接编译成 Linux 可执行二进制文件
  • 打开就是乱码,完全看不到代码
  • 只能运行,不能编辑
  • Ubuntu、Batocera 都能跑,兼容性完美
  • 就是你要的:给别人用、别人看不懂源码,装大佬神器
  • ======================
  • 终极解决方法(你直接照做)

    1. 先安装:

    ===【sudo apt update && sudo apt install shc -y 】====

    ==错误写法sudo apt update sudo apt install shc -y ================

    sudo apt update sudo apt install shc -y 

    2. 再加密:

    ==shc -f batocera_auto_full_fix.sh ================
    shc -f batocera_auto_full_fix.sh

    3. 再查看:

    bash
    运行
    ls 
    会看到:
    ==【】================
    batocera_auto_full_fix.sh
    batocera_auto_full_fix.sh.x
    batocera_auto_full_fix.sh.x.c


    输入 shc 然后按回车,有没有输出东西?
    如果什么都没有,就是 没安装成功























============================分割线,下面的没有安装成功,可忽略不看==========================================

Ubuntu 一键安装


==sudo apt update && sudo apt install shc -y ==============
 正确写法:sudo apt update && sudo apt install shc -y  错误写法:sudo apt update sudo apt install shc -y 

加密命令(直接复制用)

假设你的脚本叫:bato_permission_fix.sh
==# 加密,生成二进制可执行文件 shc -f bato_permission_fix.sh =============
# 加密,生成二进制可执行文件 shc -f bato_permission_fix.sh
执行后会生成 2 个文件:
  1. bato_permission_fix.sh.x→ 最终加密好的二进制文件(发给别人用这个)
  2. bato_permission_fix.sh.x.c→ C 语言源码(可以删掉)

用法

别人拿到后,直接:
==chmod +x bato_permission_fix.sh.x ./bato_permission_fix.sh.x =============
chmod +x bato_permission_fix.sh.x
./bato_permission_fix.sh.x
和普通脚本一模一样运行,但永远看不到你的底层代码
优点:最简单、最稳、Linux 原生、Batocera 完美兼容缺点:只能在 Linux 环境跑(本来你就是 Ubuntu / Batocera,完全适配)

二、轻度装逼:脚本代码混淆(变成乱码字符串)

不用装任何软件,Ubuntu 自带,把你的脚本变成一长串乱码 base64,打开全是乱码。

一键混淆命令

==# 生成混淆后的脚本 cat bato_permission_fix.sh | base64 -w0 > temp.txt echo '#!/bin/bash eval $(echo "XXX" | base64 -d)' > obfuscated_script.sh sed -i "s|XXX|$(cat temp.txt)|" obfuscated_script.sh rm temp.txt chmod +x obfuscated_script.sh =============
# 生成混淆后的脚本 cat bato_permission_fix.sh | base64 -w0 > temp.txt echo '#!/bin/bash
eval $(echo "XXX" | base64 -d)' > obfuscated_script.sh sed -i "s|XXX|$(cat temp.txt)|" obfuscated_script.sh rm temp.txt chmod +x obfuscated_script.sh
打开obfuscated_script.sh就是:
==#!/bin/bash eval $(echo "IyEvYmluL2Jhc2gKIyBCYXRvY2VyYSB5dWFuX3NxdWFucGFv..." | base64 -d) =============
#!/bin/bash eval $(echo "IyEvYmluL2Jhc2gKIyBCYXRvY2VyYSB5dWFuX3NxdWFucGFv..." | base64 -d) 
全是乱码,普通人完全看不懂,也能正常运行。

三、结合你 Batocera 的最佳方案(我帮你选好了)

你现在的场景:
  • 要发给玩 Batocera 的朋友
  • 不想别人看到你的底层脚本逻辑(父目录变量、精准权限、密钥修复逻辑)
  • 要装逼、显得是大佬级工具
直接用 shc 编译成二进制,这是最专业、最有逼格的方式
别人打开你的文件,全是乱码,只能运行、不能修改,圈内没人会拆这个二进制,直接达到你想要的效果。

四、补充:Batocera 里能不能跑加密后的脚本?

完全可以Batocera 本身就是 Linux 内核,shc 编译出来的二进制,直接丢进去就能执行,和原生脚本一模一样。

万能权限脚本 + 密钥恢复脚本,一键生成加密后的二进制文件



刀神道一奶-商品自动发货系统

联系我们 订单查询