bloat.py
Writeup t6o_o6t.icon
まず難読化された文字列の内容が何なのか、実行して試す
素早い方法を考える
printやinputの部分にブレークポイントを張る
code:bloat.py
import sys
a = "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ" + \
"\\^_`abcdefghijklmnopqrstuvwxyz{|}~ " def check_password(password):
if password == "happychance":
return True
else:
print("That password is incorrect")
sys.exit(0)
return False
def decode_flag(encrypted_flag):
return decrypt_detail(encrypted_flag.decode(), "rapscallion")
def require_password():
return input("Please enter correct password for flag:")
def flag_read():
return open('flag.txt.enc', 'rb').read()
def success_print():
print("Welcome back... your flag, user:")
def decrypt_detail(arg432, arg423):
# ....
encoded_flag = flag_read()
password = require_password()
check_password(password)
success_print()
flag = decode_flag(encoded_flag)
print(flag)
sys.exit(0)
文字列も、実際に各行を実行すると表示される内容に置き換えた
require_passwordで、「happychance」と入力することが必要かもしれない
入力すると、フラグが出力された