[BUUCTF]Reverse——[网鼎杯 2020 青龙组]jocker
網(wǎng)上大部分是動(dòng)調(diào),我嘗試IDC解一下,
無(wú)殼,32位,放入IDApro,查看main函數(shù)
查看wrong和str函數(shù),借出假的flag
a=[0x66,0x6B,0x63,0x64,0x7F,0x61,0x67,0x64,0x3B,0x56,0x6B,0x61,0x7B,0x26,0x3B,0x50,0x63,0x5F,0x4D,0x5A,0x71,0x0C,0x37,0x66] for i in range(24):if(i&1==0):a[i]=chr(i^a[i])else:a[i]=chr(i+a[i]) print(''.join(a))flag{fak3_alw35_sp_me!!}
,查看encrypty函數(shù)( 這題主要記錄一下SMC的IDC腳本過(guò)程,SMC上一篇有介紹)
首先選中上面代碼段部分(黑色),按D鍵,先轉(zhuǎn)化為數(shù)據(jù)
然后使用IDC腳本
#include <idc.idc>static main() {auto addr = 0x401500;auto i = 0;for(i=0;i<187;i++){PatchByte(addr+i,Byte(addr+i)^0x41);} }?腳本運(yùn)行之后還是不可以反編譯
我們選中黃色數(shù)據(jù)按c鍵轉(zhuǎn)化為代碼。
然后選中下面的一大段數(shù)據(jù),右鍵強(qiáng)制分析。
選force然后,選中紅色區(qū)域,按p定義為函數(shù)。
反匯編之后
?
?簡(jiǎn)單的異或,Buffer的內(nèi)容為
'hahahaha_do_you_find_me?'
寫(xiě)腳本
v3=[0x0E,0x0D,0x09,0x06,0x13,0x05,0x58,0x56,0x3E,0x06,0x0C,0x3C,0x1F,0x57,0x14,0x6B,0x57,0x59,0x0D] buffer='hahahaha_do_you_find_me?' b=list(buffer) f='' for i in range(19):print(chr(ord(b[i])^v3[i]),end='')?結(jié)果:flag{d07abccf8a410c
少了一部分,我們繼續(xù)看看匯編,我們先得把finally函數(shù)部分D鍵轉(zhuǎn)化為數(shù)據(jù),然后再把黃色(和灰色)部分C鍵轉(zhuǎn)化為code,然后所有p定義為函數(shù),再F5;
我懵逼了,沒(méi)看懂。。。。
后面看的大佬的wp? ? ?大佬的wp?(去看匯編代碼!!!,猜測(cè)最后幾位是與%tp&:是異或關(guān)系)
七分逆向,三分腦洞!!!
?最后 flag{d07abccf8a410cb37a}
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的[BUUCTF]Reverse——[网鼎杯 2020 青龙组]jocker的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: BUUCTF--[GWCTF 2019]
- 下一篇: BUUCTF-[网鼎杯 2020 青龙组