首页
社区
课程
招聘
[分享]南邮CTF逆向题目Py交易
发表于: 2018-11-2 20:10 5279

[分享]南邮CTF逆向题目Py交易

2018-11-2 20:10
5279
Py交易:
拿到文件,是一个.pyc文件,没有接触过这个格式。搜一下,得知可以反编译为py文件(这就很愉快了啊)~
随便找了个网站,进行反编译,获得.py源码:
#!/usr/bin/env python
# encoding: utf-8
import base64

def encode(message):
    s = ''
    for i in message:
        x = ord(i) ^ 32
        x = x + 16
        s += chr(x)
    
    return base64.b64encode(s)

correct = 'XlNkVmtUI1MgXWBZXCFeKY+AaXNt'
flag = ''
print 'Input flag:'
flag = raw_input()
if encode(flag) == correct:
    print 'correct'
else:
    print 'wrong'
逻辑还是很好懂的,只需要逆推就可以了。先对输入进行32异或,然后加16,最后base64加密.
反向计算,先base64解密,然后-16,最后与32异或就可以获得原flag。上脚本:
#!/usr/bin/env python
#encoding :utf-8
import base64

text = 'XlNkVmtUI1MgXWBZXCFeKY+AaXNt'
flag=''
s=base64.b64decode(text)

for i in s:
    i = chr((ord(i)-16)^32)
    flag+=i

print flag

收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 9
活跃值: (175)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
什么反编译根据呢?
2019-1-25 08:33
0
游客
登录 | 注册 方可回帖
返回
//