IDA載入程式,進入主函數。
可以看到關鍵的比較
将dword_6020C0和off_6050A0的資料提取出來,寫腳本。
s = 'L3t_ME_T3ll_Y0u_S0m3th1ng_1mp0rtant_A_{FL4G}_W0nt_b3_3X4ctly_th4t_345y_t0_c4ptur3_H0wev3r_1T_w1ll_b3_C00l_1F_Y0u_g0t_1t'
d = [0x24, 0x0, 0x5, 0x36, 0x65, 0x7, 0x27, 0x26, 0x2d, 0x1, 0x3, 0x0, 0xd, 0x56, 0x1,
0x3, 0x65, 0x3, 0x2d, 0x16, 0x2, 0x15, 0x3, 0x65, 0x0, 0x29, 0x44, 0x44, 0x1, 0x44, 0x2b]
tmp = ''
for i in d:
x = int(str(i))
y = s[x]
tmp += y
print(tmp)
ALIGN Num
其中:Num必須是2的幂,如:2、4、8和16等。
僞指令的作用是:告訴彙程式設計式,本僞指令下面的記憶體變量必須從下一個能被Num整除的位址開始配置設定。
如果下一個位址正好能被Num整除,那麼,該僞指令不起作用,否則,彙程式設計式将空出若幹個位元組,直到下一個位址能被Num整除為止。