【Pythonソースコード分析】DDCTF misc(′▽`□`)¯(′▽`)¯(′▽`)
2060 ワード
10日目
これはpython 2で書かれた今日、このpythonソースコードを分析します.
このs文字列を生成するための数です16進数2両マッチングなので2で割ったものです//int数値/出ているのはfloat float下のrange()でエラーが発生します
関数changeオフセットk mの空文字初期化forループ0から前に取得したcount値intタイプchr()を確立して文字[:]sを変換するために配列の2つのペアで16進数int(xxx,16)に分け、xxxの進数が自動的に10進数に変換された理由を設定してオフセット値を減算する
そしてループiの値0-149だからi=k
(:з」③)大物が提供するソースの作者:Art 3 mis
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