CTF | 那些比較好玩的stego(續一)
exe:
exe里藏東西其實還涉及到病毒行為分析,有可能是藏在殼內,也有可能是其他地方,具體情況可以使用IDA或者OD還有C32Asm來進行跟進分析。
為啥要提這個呢?因為八月份的時候做了一道題,這麼有參考價值的題目我當時還是第一次見到——
可能很多小夥伴看過這道題,X-NUCA的re專場的一道題……
這道題後來官方也放了思路了,腦迴路對了但我後來走了歪路……
知道放出來的時候會扯到很多事,因為已經有官方wp了再說也不合適了嘛,而且我寫稿寫的比較爛這個很多人都知道了,嗯,就自娛自樂吧。
開始!
首先看題目,找到程序中的二維碼,從「二維碼」這兒可以推斷出來可能是加密了某個欄位或者是直接塞了張什麼png進去吧。嗯,首先先運行一下(大霧),然後就關機了,關機了……
還好掛的是虛擬機我們來繼續看題。對不起劇本拿錯了……
WMProtect這個殼當時的我還不是很熟悉,虛擬機的殼,我只熟悉一系列壓縮殼……
本著不要慫就是乾的原則,我百度了一下VMProtect的原理:
VMProtect 是新一代的軟體保護系統,將保護後的代碼放到虛擬機中運行,這將使分析反編譯後的代碼和破解變得極為困難。使用 MAP 文件或內建的反編譯引擎,您可以快速選擇需要保護的代碼。
虛擬機保護殼?算是吧。拖進IDA後,反正我也沒看懂……
.text啥的都沒有,那就……換個工具……先跑起來讓人家舒展一下順便看有什麼變化
你問我再然後?再然後是這樣——
所以應該是哪一步出了問題,還有在這兒只是出於好奇心,平時運行的時候F8就行了,這兒是有硬體斷點的所以別瞎點F9……本著在哪兒跌倒就在哪兒爬起來的原則,我又把虛擬機打開了……
再打開OD,再找到那個文件,再重新來,到哪步就運行來著?最後一步,好像是棧窗口有個readonly……
直(du)覺(niang)告訴我,可能附近有驚喜,然後Ctrl G:
其實右下角的堆棧窗口也告訴你該輸啥了:VrtualProtect,然後我當時是定位到call VirtualProtectEx的那一步就用StrongOD detach了一下就沒關機了……
其實到了這一步可以直接dump,但是會無效OEP,入口地址弄錯了……準確的說,那裡不是本程序的OEP只能說是殼的入口,會出事的。
繼續Ctrl G 填401000(也算是在420000這個地址的附近開始查找OEP吧),程序是C/C++,Ctrl S填寫入口特徵:
這兒就是OEP了吧,然後令此處為新EIP,然後就開始dump吧,p.s. 這兒就沒有該死的OEP無效的提示了(論好好讀書的重要性……)
dump完之後——
其實到了這兒還沒有脫完,按照常規的VMProtect的調性的話我們還需要進一步去分析加密演算法還有其他的一些可能拖後腿的東西。我也是被這一步直接給帶到了溝里,因為檢驗是否還有殘留加殼的時候我多慮了一步,看到了很多.vmx還以為自己沒把殼脫乾淨。曾經有個大神說市場上的VMProtect能脫出來個70%就很不錯了。後來就在IDA里用Shift F12查看字元串,找啊找……
也沒找到那個二維碼在哪兒……
然後我就沒再碰過那道題
賽後的wp出來了,我去瞄了眼,前面的脫殼過程沒錯但是:
繼續上一步,Shift F12我愛看到了什麼?一般CTF這種比賽是不用花時間去脫這種殼的。所以我們直接dump內存即可。
除了那個什麼BrinkPoint 加上摩斯密碼的,然後我還看見了一堆這個樣子的
反正我也不認識那堆編碼,我以為有交叉引用於是我整個Ctrl X了一遍也沒看出來到底是啥或許我道行太淺,還需要再修鍊修鍊
開頭部分iVBOR很明顯是個Base64編碼的圖片(PNG)格式。使用相關工具還原即可,掃描二維碼即可獲得flag。
把題解看到這兒的我,最後也沒還原出來這個二維碼,這大概就是人生吧……
鳴謝:
vmp破解總結 - 經營企劃
X-NUCA(牛咖)聯賽8月逆向專題賽賽前--尋找二維碼的解題思路
推薦閱讀:
※META TWIN:一款二進位文件metadata修改工具
※如果從小隻學二進位會怎麼樣?
※二進位文件格式設計
※如何區別二進位32個1表示-1,還是4294967295?
※錄音的時候,如果周圍沒有聲音,為什麼還會佔存儲空間?
TAG:CTFCaptureTheFlag | 二进制 | 信息安全 |