【问题标题】:Explanation of a script [closed]脚本的解释[关闭]
【发布时间】:2021-09-10 16:35:12
【问题描述】:

一般说明
我不明白下一个脚本;一般的想法是脚本需要标准输出和 写下一个文件编码(或移位字符)。

tr 'A-Za-z' 'N-ZA-Mn-za-m' <<EOF | bash -
  #!/ova/onfu
  ge '!-~' 'C-~!-B' < f-04-erfhygnqbf-rap.fu | onfu -
EOF

第一行似乎根据两组转换字符:

'A-Za-z'

和

'N-ZA-Mn-za-m' 

以某种(随机?)顺序。然后将其通过管道传输到 bash。 然后定义一个路径

  #!/ova/onfu 

但是系统和解释器中都没有这个路径,那有什么用呢? 下一个

  ge '!-~' 'C-~!-B' < f-04-erfhygnqbf-rap.fu | onfu - 

ge ,我理解,是一个选项,意义大于,但是

'!-~' 'C-~!-B' 

怎么能比一个字符更大(使用 utf8 代码?,我的意思是他们的 十六进制值?)

这是拍的

f-04-erfhygnqbf-rap.fu

(这是一个临时文件吗?)。但这会被传送到 onfu。

这个脚本输出一个包含一大堆字符的文件。

问题
一般问题:这个脚本在做什么?

作为有趣的点,我想说:

  • 它在这里是如何工作的?
  • 它是如何工作的
  • 什么是 /ova/onfu?
  • ge 比较如何发挥作用?
  • 此脚本似乎对 stdout 输出重新编码,如何恢复?

谢谢。

【问题讨论】:

  • 要查看发生了什么,只需删除| bash - 并检查tr 的输出。它将为您大大澄清事情。

标签: linux bash


【解决方案1】:

tr 命令将每个字母转换为字母表中前 13 位的字母,环绕在 Z。这是ROT13 编码。

然后将其输出通过管道传输到 bash,因此它将作为 shell 脚本执行。

&lt;&lt;EOF 表示tr 的输入是here-doc。它传递所有行,直到 EOF 行作为输入。

如果你想在不执行的情况下看到解码后的脚本,去掉| bash,它就会打印在屏幕上。

【讨论】:

    【解决方案2】:

    tr正在阅读heredoc的内容并将其翻译成产品:

    #!/bin/bash
    tr '!-~' 'P-~!-O' < s-04-resultados-enc.sh | bash -
    

    (文本#!/ova/onfu 正在通过一个停止者密码变成#!/bin/bash,ge 变成tr,等等)

    该字符串随后被 bash 执行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-18
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      • 1970-01-01
      • 2013-02-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多