XCTF 攻防世界 Reverse新手题(insanity, python-trade)
日期: 2020-12-12 分类: 跨站数据测试 440次阅读
XCTF 攻防世界 Reverse新手题(insanity, python-trade)
1. insanity
这一题十分的简单,将下载下来的附件直接用IDA打开,查看Hey-View,在最右侧一栏进行查找,大概在后半部分,可以直接看到flag
2. python-trade
首先,这个题目没有用到IDA,因为看到下载的附件是.pyc后缀的,是python的字节码文件,可以先尝试pyc文件反编译。
有2种反编译的方法:
- 使用在线工具:https://tool.lu/pyc/,直接将pyc文件上传,即可看到反编译后的代码
- 使用命令行工具:uncompyle 安装和使用方法:
pip install uncompyle
uncompyle6 文件名.pyc > 文件名.py
接下来,分析源代码
def encode(message):
s=''
for i in message:
x=ord(i)^32
x=x+16
s+=chr(x)
return base64.b64encode(s)
分析可以得到:每个字符的ASCII码值先与32异或,然后加上16,最后进行base64编码,解码反过来即可:
import base64
correct='...'
message=base64.b64decode(correct)
s=''
for i in message:
s+=chr((i-16)^32)
print(s)
这样就可以得到最终的flag了
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
精华推荐