SyntaxError: Non 您所在的位置:网站首页 SyntaxErrorNon SyntaxError: Non

SyntaxError: Non

2023-11-29 06:26| 来源: 网络整理| 查看: 265

简单记录一下执行一个经过反编译后得到的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 实验室设备网 版权所有