【愚公系列】2021年12月 攻防世界-简单题-REVERSE-003(python-trade)
【摘要】 一、python-trade题目链接:https://adworld.xctf.org.cn/task/task_list?type=reverse&number=4&grade=0&page=1 二、使用步骤 1.反编译在命令窗口执行uncompyle6 test.pyc > test.py得到py文件import base64def encode(message): s = ''...
一、python-trade
题目链接:https://adworld.xctf.org.cn/task/task_list?type=reverse&number=4&grade=0&page=1
二、使用步骤
1.反编译
在命令窗口执行
uncompyle6 test.pyc > test.py
得到py文件
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'
# okay decompiling test.pyc
2.解密
通过查看这段Python2代码,我们知道flag进行encode函数中的操作,得到‘XlNkVmtUI1MgXWBZXCFeKY+AaXNt’。
因此,我们只要反过来执行,就能够得到flag,写出代码
import base64
def decode(message):
s = ''
imessage = base64.b64decode(message)
for i in imessage:
x = ord(i) - 16
x = x ^ 32
s += chr(x)
return s
correct = 'XlNkVmtUI1MgXWBZXCFeKY+AaXNt'
flag = decode(correct)
print(flag)
得到flag:nctf{d3c0mpil1n9_PyC}
总结
- uncompyle6
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)