2017-03-17 20 views
-1

ベース16でエンコードされた問題を解読する必要がありました。解読されたテキストはPythonコードでした。私はコードをファイルに入れましたが、私がそれを実行すると、コードに存在しない行の構文エラーであることがわかります。Pythonの構文で問題が発生しましたが、コードに問題のテキストがありません

は、ここでは、コード http://pastebin.com/Cm6kHG3j

感謝です!

+0

こんにちは、ようこそ、StackOverflowへ!テキスト文書にファイルを添付しないようにしてください。あなたの質問にコードをコピー&ペーストし、 '{}'コードフォーマットボタンを押してください。コードをよく読んで助けてください。ありがとう! – davedwards

+0

コードが200行以上長すぎます – roberthayek

答えて

0

あなたの復号化された結果は、さらにネストされたexec一連のステートメントに減少し、最後にその次が得られます

flag = 'easyctf{python_3x3c_exec_3xec_ex3c}' 
priint flag 

あなたが見ることができるように、このようにエラーの原因となって、priintに余分iあります。

+0

どのエディタでもpriintフラグが表示されませんでした。私は – roberthayek

+0

というエディタで表示されませんでした。これは、どのエディタでも表示されない 'これは 'exec'が' ascii'文字をコード文字列として実行した結果です。 – davedwards

+0

私はpriintフラグエラーのために何らかの理由で私はそれを実行することができませんでしたが、私はエラーを見つけることができませんでした – roberthayek

0

の解読方法に興味がある場合は、です。

flag = 'easyctf{python_3x3c_exec_3xec_ex3c}' 
priint flag 

2つのIさんは、印刷機能にあります:

temp = "" 

def clean(string): 
    string = string.replace("chr(","").replace("exec(","").replace(")","").split("+") 
    string = [chr(int(item)) for item in string] 
    return "".join(string) 

fileStr = "" 
with open("storage.txt", "r") as fi:  
    fileStr = fi.read() 

while (input("Keep going (-1 to exit, 1 to continue)? ") != -1): 
    fileStr = clean(fileStr) 
    print fileStr 

ここでの結果です。

関連する問題