[BUUCTF]Reverse——[网鼎杯 2020 青龙组]jocker
生活随笔
收集整理的這篇文章主要介紹了
[BUUCTF]Reverse——[网鼎杯 2020 青龙组]jocker
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
網上大部分是動調,我嘗試IDC解一下,
無殼,32位,放入IDApro,查看main函數
查看wrong和str函數,借出假的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函數( 這題主要記錄一下SMC的IDC腳本過程,SMC上一篇有介紹)
首先選中上面代碼段部分(黑色),按D鍵,先轉化為數據
然后使用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);} }?腳本運行之后還是不可以反編譯
我們選中黃色數據按c鍵轉化為代碼。
然后選中下面的一大段數據,右鍵強制分析。
選force然后,選中紅色區域,按p定義為函數。
反匯編之后
?
?簡單的異或,Buffer的內容為
'hahahaha_do_you_find_me?'
寫腳本
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='')?結果:flag{d07abccf8a410c
少了一部分,我們繼續看看匯編,我們先得把finally函數部分D鍵轉化為數據,然后再把黃色(和灰色)部分C鍵轉化為code,然后所有p定義為函數,再F5;
我懵逼了,沒看懂。。。。
后面看的大佬的wp? ? ?大佬的wp?(去看匯編代碼!!!,猜測最后幾位是與%tp&:是異或關系)
七分逆向,三分腦洞!!!
?最后 flag{d07abccf8a410cb37a}
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的[BUUCTF]Reverse——[网鼎杯 2020 青龙组]jocker的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BUUCTF--[GWCTF 2019]
- 下一篇: BUUCTF-[网鼎杯 2020 青龙组