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了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/234250.html
標籤:python
下一篇:IDEA2020.3詳細安裝教程
