SyntaxError: Non | 您所在的位置:网站首页 › SyntaxErrorNon › SyntaxError: Non |
简单记录一下执行一个经过反编译后得到的py文件时报错的解决办法与分析 报错内容如下: SyntaxError: Non-UTF-8 code starting with '\xff' in file D:\test\flag.py on line 1, but no encoding declared; see https://peps.python.org/pep-0263/ for details 这个flag.py是我使用flag.pyc经过反编译得到的文件,但是在运行时却报错。 看网上的解决办法是: 在代码首行添加:# coding=utf-8 或者在代码首行添加:# coding=gbk 或者在代码首行添加:# coding=gb2312 (注意等号两边不要加空格) 有些确实是适用于这种方法的,但是我这里不行 最终解决办法是将代码复制下来,重新建一个py文件,将代码内容粘贴进去,即可正常执行。 之后单独分析了一下两个文件的区别: flag.py 这原本是一个文本文件,但是文件类型反而与音频文件匹配度很高 并且其可见字符串为空 对比重新创建的flag1.py(内容与flag.py一致) 可以打印出可见字符串,也就是我们代码的内容 使用winhex进行分析: 可以很明显看出二者是完全不一样的 原flag.py文件的UTF-8编码存在很严重的乱码 因此将其代码内容复制下来重新创建一个新的py文件即可解决上述报错的问题 |
CopyRight 2018-2019 实验室设备网 版权所有 |