在Unicode转义序列中模糊Python脚本

时间:2016-06-25 16:21:09

标签: python-3.x unicode character-encoding

我想通过使用Unicode转义序列来混淆Python脚本。

例如,

print("Hello World")
Unicode转义序列中的

是:

\x70\x72\x69\x6e\x74\x28\x22\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x22\x29

从我的命令行,我可以通过以下方式实现:

$ python3 -c \x70\x72\x69\x6e\x74\x28\x22\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x22\x29
Hello World

我创建了一个文件并将“Hello World”Unicode转义序列作为源代码放入其中。

但是当我运行它时,我得到了:

$ python3 sample.py
SyntaxError: unexpected character after line continuation character

如何在源代码中使用Unicode转义序列。

1 个答案:

答案 0 :(得分:2)

您可以使用PEP 263标头,它告诉Python编写源代码的编码。

格式为:

# coding=<encoding name>

通过使用unicode_escape编解码器(从https://docs.python.org/3/library/codecs.html中选择),Python将首先取消您的字符串。

<强> sample.py

# coding=unicode_escape
\x70\x72\x69\x6e\x74\x28\x22\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x22\x29

<强>结果:

$ python3 sample.py
Hello World