bash脚本创建临时文件和目录 并在执行后删除 | 获取bz2-shell项目生成的临时解压文件

有一种脚本加密的方法是通过 bzip2
加密后的脚本整体分为2部分, 前面部分是通用的解压流程, 后面部分是原脚本用bzip2压缩后的数据.
项目: https://github.com/FajarKim/bz2-shell
加密后的脚本示例: https://gitlab.com/rwkgyg/CFwarp/-/blob/main/1CFwarp.sh

目的

我们想得到加密前的原脚本.

分析

阅读代码不难看出, 执行解压后的原脚本, 是在第69行
第67行是给解压后的脚本添加可执行权限. 我们可以在后面添加一句, 把临时文件名输出到命令行
echo "$bztmp"
注意, bash把两个语句写在同一行, 用 ; 号分隔

然后在命令行中用原来的方式执行. 可以看到输出了临时文件名.

我们cat查看文件内容, 报错文件不存在.

再检查一下脚本, 你会发现, 在执行解压脚本之前, 执行了一句删除临时解压目录的命令.

我们把这一行注释掉.

再执行, 并查看文件内容, 还是报错文件不存在.

再看看整体脚本, 有没有什么新鲜的命令. 发现了 umask 和 trap

问一下GPT, 答案如下:
https://poe.com/s/DyYfGgQH1O1EXLEJfyW1

https://poe.com/s/mXoigE8Ev6lxqhhlBpJv

我们把这两个地方注释掉, 再试试.

可以看到, 能查看临时文件的内容了.

========

评论

The Hot3 in Last 30 Days