這算是第一次寫ctf題目的博客把。
被這道題搞得頭大,各種沒見過的API(不過通過查資料了解到了)
檢查了一下,沒殼,win32
然后運行
讓你輸入第一個密碼,猜想一下,說明后面可能還會有幾個輸入,並且有strcmp類似的檢查密碼函數。
打開ida
簡單分析一下
輸入字符串並且長度等於6,大小大於100000
strcmp上面有個函數,參數里有String1,所以這個應該是加密函數
點進去看看
不知道這些是什么,查了額下發現有些函數竟然會被淘汰?(與本題無關)
CryptCreateHash哈希加密,有了解過哈希的是可以知道,哈希是很多算法放在一起,然后隨機抽一個算法來加密
查了官方文檔MSDN,發現第二個參數時加密時所用的方法標號。0x8004u是shl加密,趕緊跑去ctf wiki上面看看這個shl是否可以手動解答.....
沒有看懂。從前面的v4<100000發現有范圍限制,那么暴力破解從100000到6個字符能表達的最大數字0x393939393939不過,我看了網上的一些人博客他們到999999就可以了,不知道為啥。。
破解出來后發現是123321
接着分析
發現又需要輸入字符串並且長度也是6
還鏈接了pbdata,就是說6+123321+"@DBApp"
然后在進行加密
進去看看
函數與上面的差不多,只是換了個加密方式,md5加密。我在網上找了好多個md5解密網站都無法對
這串字符串解密,不知道為啥,希望有好心人告訴我下。沒有范圍不能爆破。
發現這里還有個加密的函數
這都是寫啥?
后來查了的https://blog.csdn.net/singleyellow/article/details/80308789
發現是查找一個叫AAA的文件,然后獲取資源大小等...后面還有個函數點進去看看
異或運算,自己輸入的字符串和指向文件第一個字節的指針
看了別人博客發現要用到
這個東西。
我不是很理解為什么密碼是6,聽別人說是加密后是一個rtf的頭,所以是6.我還沒搞清楚
取AAA文件的前6個字節。
然后在做異或的逆向運算,與rtf頭做逆向。得出了
~!3a@0
然后該exe會在目錄下創建一個rtf文件,里面有flag
Flag{N0_M0re_Free_Bugs}