將文件拖入EXE發現有UPX加殼,是32位程序
接下來將文件拖入kali,用upx -d ./easyre.exe指令解殼
再次將解殼之后的文件拖入EXE,顯示解殼成功
接下來將文件拖入ida
通過主函數的棧結構可知v4-v15為一個長度為12的字符數組,同時也可以猜測flag的長度為12
通過第一個if可知flag的一部分為ACTF{}
由主函數中循環語句可找到此題的解決方法:
程序首先將輸入的一部分放入v16 v17 v18,因為v16 v17 v18都是int型變量,它們可以分別存儲4個字符型數據,再通過循環在_data_start_數組中找到v16 v17 v18中存儲的12個字符型變量的ASCII碼對應的元素,與v4-v15進行比較,可以得到
v16 -> 85 57 88 95
v17 -> 49 83 95 87
v18 -> 54 64 84 63
轉化為字符后與之前得到的flag結合可得:
ACTF{U9X_1S_W6@T?}