#!/bin/sh
echo "Optware Bootstrap for syno-i686."
echo "Extracting archive... please wait"
dd if=$0 bs=205 skip=1 | tar xzv
cd bootstrap && sh bootstrap.sh && cd .. && rm -r bootstrap
exec /bin/sh --login
...这表明它基本上是一个(大)shell脚本,其中有趣的部分是dd ... | tar xzv行;其他行特定于该特定包。
该dd命令从当前文件中读取,$0跳过正确的字节数;然后将该输出发送给tar期望压缩存档的人。压缩的 tar 文件已准确插入 xsh 文件中的该位置。
要自己查看/提取它,只需按照相同的说明进行操作——每个 xsh 文件都会有所不同!——即:
$ dd if=syno-i686-bootstrap_1.2-7_i686.xsh bs=205 skip=1 > bootstrap.tgz
$ gunzip bootstrap.tgz ## for example
$ tar tf bootstrap.tar ## for example
bootstrap/
bootstrap/bootstrap.sh
bootstrap/ipkg-opt.ipk
bootstrap/ipkg.sh
...
作为提取档案的更一般规则,您可以查找该dd签名,告诉您可以grep在此“二进制”文件中输出匹配项:
$ grep -a '^dd if=$0' syno-i686-bootstrap_1.2-7_i686.xsh
dd if=$0 bs=205 skip=1 | tar xzv
这些是“自解压”档案;我发现的第一个在顶部有这个代码:
...这表明它基本上是一个(大)shell脚本,其中有趣的部分是
dd ... | tar xzv
行;其他行特定于该特定包。该
dd
命令从当前文件中读取,$0
跳过正确的字节数;然后将该输出发送给tar
期望压缩存档的人。压缩的 tar 文件已准确插入 xsh 文件中的该位置。要自己查看/提取它,只需按照相同的说明进行操作——每个 xsh 文件都会有所不同!——即:
作为提取档案的更一般规则,您可以查找该
dd
签名,告诉您可以grep
在此“二进制”文件中输出匹配项:...然后您可以复制/粘贴以查看或提取您喜欢的内容。您可能还对正在执行的其他命令感兴趣;类似地查看这些,再次使用 -- 特定于此示例: