0x00 前言
首先我要為我們隊(duì)每個(gè)隊(duì)員點(diǎn)個(gè)大大的贊(內(nèi)心有愧,因?yàn)閷?shí)習(xí)仙畦,沒(méi)有好好參加比賽)输涕,大愛(ài)你們。
(本文暫不涉及深度學(xué)習(xí)的東西议泵,稍后整理之后單獨(dú)發(fā))
在瀏覽題目的時(shí)候占贫,發(fā)現(xiàn)一道很有意思的題目 “Dog or Frog”。打開(kāi)看看提示先口,“This really is a ML problem”型奥,打開(kāi)題目看看嘍瞳收。
題目中說(shuō)要我們把這只可愛(ài)的馬里努阿變成樹(shù)蛙 (╯ ̄Д ̄)╯╘═╛ ,那么好玩的狗狗變成樹(shù)蛙厢汹,表示強(qiáng)烈譴責(zé)螟深。但是看見(jiàn)這分?jǐn)?shù)……
算了,真香烫葬。
0x01 這才是正文
這里才不是正文界弧,老師沒(méi)說(shuō)過(guò)拿到題先審一下題么?
打開(kāi)網(wǎng)站搭综,看到那些下載的數(shù)據(jù)圖片垢箕,的確是一個(gè)中規(guī)中矩的深度學(xué)習(xí)的東西。
我們把環(huán)境下載下來(lái)兑巾,配置好(PS: 還好不是 Python 2 的東西条获,不然要瘋)
打開(kāi)提示信息,里面有兩句關(guān)鍵的信息
- Classify as a Tree Frog, at 95% confidence
- Be similar to the original image (max 2 bit difference using p hash)
第31分類就是我們要的樹(shù)蛙修档。接下來(lái)看第二條,圖片的hash差異度不能超過(guò)2府框,什么鬼Vㄎ选?
這里我簡(jiǎn)單的說(shuō)一下寓免,通常說(shuō)hash的時(shí)候癣诱,hash是一組數(shù)據(jù)的壓縮映射值,具有數(shù)據(jù)的完整性和抗數(shù)據(jù)篡改的能力袜香。但是在圖片中撕予,有一種比較特殊的hash算法,這種hash算法是包含圖片特征的蜈首,也就是說(shuō)实抡,圖片的內(nèi)容結(jié)構(gòu)作為了一種hash值。后面我單獨(dú)拿出來(lái)一篇文章將這個(gè)欢策。
這個(gè)也就代表了我們不能隨便用一張樹(shù)蛙的圖片來(lái)得到flag了吆寨,只能對(duì)給我們的這張馬里努阿動(dòng)手了 ╮(╯▽╰)╭
0x02 這里才是真的正文
涉及的深度學(xué)習(xí)的內(nèi)容單獨(dú)發(fā)出來(lái),這里我貼一下代碼踩寇。
貼代碼是不可能的啄清,這輩子都是不可能的。才不會(huì)告訴你代碼在這里
運(yùn)行這個(gè)俺孙,之后得到一張新的圖片辣卒。
唔掷贾,看起來(lái)好像并沒(méi)有什么變化,但是預(yù)測(cè)結(jié)果中
OK荣茫,上傳圖片想帅,拿到flag。
0x03 尾記
唔啡莉,好好學(xué)機(jī)器學(xué)習(xí)港准,之后老老實(shí)實(shí)的打CTF去,哇卡卡卡咧欣。
你以為這就結(jié)束了么浅缸,不不不。
(未完待續(xù)……)