本文主要是介绍[GWCTF 2019]pyre(详细解题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
备用知识:
pyc文件是从什么格式转化过来的:
pyc文件怎么生成的:
pyc反编译成py:
解题开始:
工具:
python反编译 - 在线工具 (tool.lu)https://tool.lu/pyc/
解题思路:
备用知识:
pyc文件是从什么格式转化过来的:
pyc文件就是由Python文件经过编译后所生成的文件,py文件编译成pyc文件后加载速度更快而且提高了代码的安全性,是一个二进制文件,源代码其实是py格式的文件。
pyc文件怎么生成的:
是py编译成的,和c语言的编译大同小异,都是需要经过这个阶段。
pyc反编译成py:
我是利用的在线工具,因为其他的不会
解题开始:
工具:
VsCode,还有下面这个网站,python环境,(我的环境是python3.9)
python反编译 - 在线工具 (tool.lu)https://tool.lu/pyc/
解题思路:
获得到了文件,是一个pyc文件,通过我发的那个进行一次转换。
之后反编译出来获得源代码并且下载下来,并且用VsCode打开
print ('Welcome to Re World!')
print ('Your input1 is your flag~')
l = len(input1)
for i in range(l):num = ((input1[i] + i) % 128 + 128) % 128code += numfor i in range(l - 1):code[i] = code[i] ^ code[i + 1]print (code)
code =['\x1f','\x12','\x1d','(','0','4','\x01','\x06','\x14','4',',','\x1b','U','?','o','6','*',':','\x01','D',';','%','\x13']
看这种计算,反着算即可 ,脚本是
code = ['\x1f','\x12','\x1d','(','0','4','\x01','\x06','\x14','4',',','\x1b','U','?','o','6','*',':','\x01','D',';','%','\x13']
flag = ''
for i in range(len(code)-2,-1, - 1):code[i] = chr(ord(code[i]) ^ ord(code[i + 1]))
for i in range (len(code)):num = chr((ord(code[i]) - i)%128)flag +=num
print(flag)
红框里面则是答案
这篇关于[GWCTF 2019]pyre(详细解题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!