【Pythonソースコード分析】DDCTF misc(′▽`□`)¯(′▽`)¯(′▽`)


10日目
s = "d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb7b9b8e4b5b5e4e2b7b6b5b5b2e1b9b2b2e4b0b0e4b7b7b5e5b3b3b1b1b9b0b7fd"
count = len(s)//2

def change(k):
    m = ""
    for i in range(count):
        m += chr(int((s[i * 2 : i * 2 + 2]),16) - k)
    print(m)


for i in range(150):
    change(i)

これはpython 2で書かれた今日、このpythonソースコードを分析します.
このs文字列を生成するための数です16進数2両マッチングなので2で割ったものです//int数値/出ているのはfloat float下のrange()でエラーが発生します
count = len(s)//2

関数changeオフセットk mの空文字初期化forループ0から前に取得したcount値intタイプchr()を確立して文字[:]sを変換するために配列の2つのペアで16進数int(xxx,16)に分け、xxxの進数が自動的に10進数に変換された理由を設定してオフセット値を減算する
def change(k):
    m = ""
    for i in range(count):
        m += chr(int((s[i * 2 : i * 2 + 2]),16) - k)
    print(m)

そしてループiの値0-149だからi=k
for i in range(150):
    change(i)

(:з」③)大物が提供するソースの作者:Art 3 mis