1

我正在使用涉及 dc 的混淆技术。如果您使用不涉及反斜杠的较小行,您会得到这个。

root@revolt:~/Working/Bash# cat temp.text
[q]sa[ln0=aln256%Pln256/snlbx]sb806639340302927610462193083720snlbxq

root@revolt:~/Working/Bash# cat temp.text | dc
Hello world.

但是,如果您尝试更大的东西,例如

root@revolt:~/Working/Bash# cat temp.text
[q]sa[ln0=aln256%Pln256/snlbx]sb331832177645759643350464573357407988278700985112761888842542077811521\
080128221484476741215560snlbxq

最终出现反斜杠的地方会发生这种情况:

root@revolt:~/Working/Bash# cat temp.text | dc
dc: '\' (0134) unimplemented
Hel���t��root@revolt:~/Working/Bash# 

但是,如果你要运行这个

root@revolt:~/Working/Bash# dc<<<[q]sa[ln0=aln256%Pln256/snlbx]sb331832177645759643350464573357407988278700985112761888842542077811521\
> 080128221484476741215560snlbxq
Hello world.
Hello world.
Hello world.

它工作得很好。上面的示例是键入dc<<<,然后复制并粘贴带有反斜杠的字符串。奇怪的。

我的问题是:

  1. 有没有办法 sed/cut/awk/etc. 删除反斜杠并将所有行放在没有反斜杠的单行上?

    或者

  2. 有没有办法帮助 dc 解释反斜杠?

4

1 回答 1

3

您可以使用 BASH 字符串操作来处理它:

s=$(<temp.txt)
dc <<< "${s//\\[[:space:]]/}"
Hello world.
Hello world.
Hello world.

"${s//\\[[:space:]]/}"\将从文件数据中删除所有后跟换行符的实例。

于 2015-07-29T22:05:58.090 回答