之前遇到网上的集成的shell脚本有点问题想手动修改下,发现脚本是加密的,网上找了好久发现有gzexe、shc加密方法都尝试了一遍,可惜解密都不成功,最后用了一个粗暴的办法就是任何程序总要加载到内存运行的吧,那就直接中断coredump查看内存里的内容,这篇教程来讲下是具体方法。

本文转载自FTown Blog:https://www.fythonfang.com/blog/2019/10/16/linux-core-dump-decrypt-script

准备材料

  • 加密的shell脚本

部署步骤

  1. root用户执行如下命令
1
2
3
ulimit -c unlimited
echo "/core_dump/%e-%p-%t.core" > /proc/sys/kernel/core_pattern
mkdir /core_dump

以上第一句是设置内核coredump大小,这里设置不限制。第二句是设置coredump存储位置和格式,%e代表可执行程序名,%p代表pid, %t代表生成时间。

  1. 然后执行脚本如xxx.sh
1
./xxx.sh 6 start & (sleep 0.01 && kill -SIGSEGV $!)

之后会输出类似[1]+ Segmentation fault (core dumped)...的提示

  1. 查看/core_dump文件夹下,就会有dump出来的文件了,直接vim打开查看,文件中会有一些乱码,手动处理一下就可以了。

如文件夹下没有dump出来的文件

可使用如下命令测试然后查看是否有文件生成。

1
2
sleep 15 &
killall -SIGSEGV sleep

正常情况下core_dump文件夹下会有以sleep开头的文件。