You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从SHC编译的Bash脚本恢复原脚本?遇段错误未找到核心文件

恢复SHC编译Bash脚本的可行方案

先解决核心文件缺失问题

  • 临时开启核心转储:执行 ulimit -c unlimited,之后再运行你之前尝试的恢复命令,系统就会在当前目录生成core文件。
  • 如果需要永久开启,可编辑 /etc/security/limits.conf,添加一行 * soft core unlimited,重启会话后生效。

尝试不同的脚本恢复方法

1. 用strings命令快速提取

SHC编译的二进制文件会把原脚本加密后内嵌,直接用strings命令过滤可能提取到关键内容:

strings ./your_compiled_script | grep -A 2000 '^#!/bin/bash'

如果原脚本开头是其他shell路径,把#!/bin/bash换成对应的路径(比如#!/bin/sh)。部分情况下能直接拿到完整或部分原脚本,就算是加密后的块,也能为后续解密提供素材。

2. 借助gdb调试提取

生成core文件后,用gdb加载调试:

gdb ./your_compiled_script core

在gdb交互界面中,用find命令搜索内存中的脚本特征字符串:

find &_start, +9999999, "#!/bin/bash"

找到内存地址后,用x/s命令查看该地址的内容,就能读取到解密后的原脚本。

3. 使用SHC专用解密工具

针对不同版本的SHC,有专门的解密脚本或工具,原理是模拟SHC运行时的解密流程。你可以自行编译对应版本的解密工具,直接加载编译后的二进制文件提取原脚本。

排查段错误的原因

  • 段错误大概率是因为你用的恢复方法和SHC编译版本不兼容,SHC不同版本的加密算法有调整,要匹配对应版本的恢复方案。
  • 检查编译后的文件是否损坏,或者当前系统架构和编译时的架构是否一致(比如x86_64和ARM混跑)。

内容的提问来源于stack exchange,提问作者Decodez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 22:45:07