六十四位ELFpython
IDA找main函數數組
思路很簡單,就一個關鍵函數,參數爲輸入的字符串,只要讓函數的返回值大於等於零就能成功函數
分析該函數code
該函數整理思路是把字符串分爲三組進行檢驗,每組內的相鄰元素的下標相差3字符串
寫腳本逆向ast
firstchar = [65, 105, 110, 69, 111, 97] thirdchar = [751, 708, 732, 711, 734, 764] masterArray = [471, 12, 580, 606, 147, 108] flag = [0] * 18 tem = [0] * 18 v7 = 666 for i in range(18): tem[i] = v7 # 參與異或的數組 v7 += v7 % 5 # 第一組 index = 0 for i in range(0, 18, 3): flag[i] = firstchar[index] index += 1 # 第三組 index = 0 for i in range(2, 18, 3): flag[i] = thirdchar[index] ^ tem[i] index += 1 # 爆破第二組 index = 0 for i in range(1, 18, 3): for j in range(32, 126): if (flag[i - 1] ^ tem[i - 1]) * (j ^ tem[i]) % (flag[i + 1] ^ tem[i + 1]) == masterArray[index]: flag[i] = j index += 1 break print('tuctf{', end='') for i in range(len(flag)): print(chr(flag[i]), end='') print('}', end='')
flag: tuctf{AfricanOrEuropean?}
class