查殼
發現無殼,

IDA檢查main函式

顯然先檢查了輸入是否以 actf{ 開頭
進入sub_83A
無法進入
點不進去是因為IDA限制了決議函式的長度,可以修改IDA下cfg目錄的hexrays.cfg檔案,如圖

沒有改動前,1024應該是64,可以改成更大的數值,
函式分析
函式共計有3000行多,無法完全展示,這里節選部分,

-------------------------省略-——---------------------

不難發現,函式首先是進行了加密,然后是一個比較,
我們注意到函式的加密很有規律:只使用了異或運算和自增運算子,
這說明這個函式是可逆的,只要把結果反過來運算一遍就是flag,
反向執行函式
把函式代碼拷貝出來,洗掉判斷,把里面的自增運算子全部換成自減運算子,然后把用于判斷的v3陣列內容填到a1陣列里面,
最后粘貼到EXCEL表里面逆序就行(不會真有人寫腳本吧)
第一列放序列,第二列放代碼(粘貼過去就行)

然后一起逆序就行,第二列會被一起逆序,


把代碼復制出來后略作處理就可以執行了,
結束

把flag{}補上就是答案了
后記
之所以寫一下這個,是因為我看到部分師傅采用了爆破法,但是我爆破很久也沒出來,
可能有的師傅也會遇到相同情況,所以在這里補充一下我的方法,
另外有的師傅想到一個個字符爆破,但是后面其實是交叉異或的,因此不能不考慮其他字符,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/528832.html
標籤:其他
上一篇:BUUCTF [ACTF新生賽2020]SoulLike題解(非爆破)
下一篇:JS資料結構與演算法-佇列結構
