0x00 前言
首先我要为我们队每个队员点个大大的赞(内心有愧,因为实习,没有好好参加比赛),大爱你们。
(本文暂不涉及深度学习的东西,稍后整理之后单独发)
在浏览题目的时候,发现一道很有意思的题目 “Dog or Frog”。打开看看提示,“This really is a ML problem”,打开题目看看喽。
题目中说要我们把这只可爱的马里努阿变成树蛙 (╯ ̄Д ̄)╯╘═╛ ,那么好玩的狗狗变成树蛙,表示强烈谴责。但是看见这分数……
算了,真香。
0x01 这才是正文
这里才不是正文,老师没说过拿到题先审一下题么?
打开网站,看到那些下载的数据图片,的确是一个中规中矩的深度学习的东西。
我们把环境下载下来,配置好(PS: 还好不是 Python 2 的东西,不然要疯)
打开提示信息,里面有两句关键的信息
- Classify as a Tree Frog, at 95% confidence
- Be similar to the original image (max 2 bit difference using p hash)
第31分类就是我们要的树蛙。接下来看第二条,图片的hash差异度不能超过2,什么鬼!?
这里我简单的说一下,通常说hash的时候,hash是一组数据的压缩映射值,具有数据的完整性和抗数据篡改的能力。但是在图片中,有一种比较特殊的hash算法,这种hash算法是包含图片特征的,也就是说,图片的内容结构作为了一种hash值。后面我单独拿出来一篇文章将这个。
这个也就代表了我们不能随便用一张树蛙的图片来得到flag了,只能对给我们的这张马里努阿动手了 ╮(╯▽╰)╭
0x02 这里才是真的正文
涉及的深度学习的内容单独发出来,这里我贴一下代码。
贴代码是不可能的,这辈子都是不可能的。才不会告诉你代码在这里
运行这个,之后得到一张新的图片。
唔,看起来好像并没有什么变化,但是预测结果中
OK,上传图片,拿到flag。
0x03 尾记
唔,好好学机器学习,之后老老实实的打CTF去,哇卡卡卡。
你以为这就结束了么,不不不。
(未完待续……)