自从去年发现mdx主题后,不管是material design还是功能上的设计都戳到了我的点,于是我开始关注作者Axton,当看到“跨年红包”,我很是好奇。今年终于是赶上,体验一下“传统艺能”。
封面引自Axton制作的海报,侵删
无垠 2021 年度总结 – 无垠 (flyhigher.top)
从一张图片开始
axton提供了一张图片
下载后,胡乱检查一通:binwalk
和file
、strings
都没什么发现
010翻了翻,原来是改了高度
原始大小为1510x1500
看到隐藏的信息
二进制转为文本之后
游戏规则是要用JavaScript写一个15 puzzle game的sovler
抄作业抄到了(手动狗头)
稍微改下之后能得到路径
// 带上抄的代码 let Arr = [[15,14,8,12],[10,11,9,13],[2,6,5,1],[3,7,4,0]]; // start api得到的data let newArr = Arr.map(element=>{return element.map(el2 => {return el2 + 1 === 16 ? "" : el2 + 1;})}) const ctx = new NPuzzleSolver(newArr); let solve = ctx.solve(); const arrs = []; for (let i = 0; i < solve.length; i++) { let {x,y}=solve[i].piece; arrs.push([x,y]); } console.log(JSON.stringify(arrs));
然而第一次尝试没去判断方格移动的状态,成功的被cloudfire 429,禁止时间还挺长……
缝缝补补改用python交了
from requests import session http = session() res = http.get(url="https://go2022rpapi.axton.im/?action=start") content = res.json() maps = content["data"] print("start =>", res.text) def move(x, y): res = http.get(url="https://go2022rpapi.axton.im/?action=move&x={E}&y={j}".format(E=x, j=y)) content = res.json() print("move [{x}, {y}] => {data}".format(x=x, y=y, data=content["data"]), res.text) if not content["status"]: print("error", res.text) return False return True while 1: try: arr = eval(input()) for (x, y) in arr: if not move(x, y): break sleep(3) except: continue
最后得到信息
得到的是🎉.yrc.me
,Unicode URL转Punycode
幸好没漏下(传统艺能)
dig @8.8.8.8 xn--dk8h.yrc.me +noidnin +noidnout TXT
🎉彩蛋
不过,鉴于今年的题目较以往对于认真解题的人更难,我还准备了隐藏红包,在解题中收集线索即可发现隐藏红包。
Axton
彩蛋藏在了资源文件里
梅开二度
dig @8.8.8.8 xn--dk8hmk.yrc.me +noidnin +noidnout TXT
结尾
总的来讲,难点还是在于编写一个solver吧,不过因为我抄作业的缘故,几乎是没什么难度。
其实这篇文章当天就写好了,一直没发,结果拖到了元宵都过了,不管怎么样,还是祝大家新年快乐!
(又水了一篇)
发表回复