1. 程式人生 > 其它 >python 基本資料型別——集合

python 基本資料型別——集合

拖進IDA:

f5反彙編可以看到虛擬碼

可以看到首先我們輸入的值儲存到str,這裡的scanf是我為了方便閱讀使用快捷鍵n對原有的函式進行的重新命名

然後將我們輸入的值通過sub_4110BE這個函式進行加密,加密的返回結果儲存在v4,緊接著將v4通過strncpy函式傳給Destination函式,下面的for迴圈又對Destination進行一個簡單的加密,將Destination每一位加上下標本身再和str2比較。

進入sub_4110BE函式內部

看不懂,總之就是什麼加密演算法,

通過shift+f12檢視所有字串

可以看見很明顯是base64加密,加密過程我們不用管,直接去找str2的字串,因為在base64加密後,下面還有個小的加密步驟,只需要解開那個小的加密步驟就行

現在知道了str2的字串,就可以編寫指令碼了。

import base64

a = "e3nifIH9b_C@n@dH"
flag = ''
for j in range(len(a)):
    flag += chr(ord(a[j]) - j)
print(base64.standard_b64decode(flag))

base64的解密用python庫解就好了,我們就將字串還原成加了下標之前的字串就行。

執行後的結果:

'{i_l0ve_you}'