栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

[GWCTF 2019]pyre(详细解题)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[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) % 128
    code += num

for 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)

红框里面则是答案 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/935222.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号