在编写一道题目的exp时候,因为是新机子,似乎出现了一些问题。python对于\x00这种转义字符报错?这是什么原因呢?
害,原来是前面hex(),把int转成str了,虽然报错在这句,但是这句没有问题。qaq
有的伙伴 Python 环境刚安装没多久,可能不存在这个文件过大的问题。像我的电脑里安装了 Python 很多的依赖包和 anaconda 等等,打包出来的文件居然 660M,打包时间长,执行时还卡,后来经过整改缩小到 31M,打包快,秒级执行。解决方案是在 Windows 系统下安装一个 Python 的虚拟环境,前提是已经在电脑上安装过 Python 才可以进行如下操作。
找到 Python 所在路径,如果忘记了,可以在电脑左下角搜索【编辑系统环境变量】——【用户变量】——【PATH】中找到
这个问题是由于Python中一些字符具有特殊含义,需要转义才能正确表示它们本身的值,而当输入单个反斜杠时,Python会将其解释为转义字符的起始符号,从而导致转义字符无法正确表示,进而报错。这并非与Python版本或编码有关。
解决方案是在字符前面再添加一个反斜杠,即使用"\x00"代替"\x00"。这样Python会将第一个反斜杠解释为转义符号,将第二个反斜杠解释为表示反斜杠本身的字符,从而正确表示转义字符。
例如,可以使用如下代码进行测试:
s = "\\x00"
print(s.encode("latin-1"))
输出结果为b'\x00',即成功转义为0x00的字节。
如果需要将这个转义字符插入到字符串中,则也需要进行类似的转义处理,例如:
s = "hello\\x00world"
print(s.encode("latin-1"))
输出结果为b'hello\x00world',即成功将转义字符插入到字符串中。
x是16进制,x00就是0啊,它在c语言里是字符串结束符
python里没有结束符