一次黑马解密小游戏
今年公司又照例举办了黑客马拉松比赛,不过没有什么特别的想法就没有参赛,但是中间发布了一个解密小游戏还是比较有意思的,我就抱着试试看的态度玩了玩,没想到竟然还拿了TOP1,抛去奖品不说,这个过程还是比较好玩,我就分享一下我解密的过程。
线索图
通过观察线索,也就是文字反转,这倒难不住咱们,做一下反转处理后:
Welcome to the glodon hackathon.This year's hackathon will be held on 10.21-22.There will be 30 awards and two theme dawards will be proposed for the first time.The two topics are privacy-preserving computing and space design automation.For more information, please follow the link below: https://xxx.com/scm/hackathon/info.git
We must have known the address of the codebase, the next step is in the new pdf, ctrl + a will help you.
上面这段话的意思,大概透露了两点信息,一个是Git仓库,另外一个是通过 ctrl + a
能找到关键信息。
解密
先去Git仓库看看都有啥:
分别是一个PPT和PDF(TXT可以忽略掉)
PDF解密
PDF全选后,果然发现有猫腻:
内容如下:
guo2 mi4 suan4 fa3 ,dui4 cheng1 jia1 mi4
Key:B323B110BFF32AD2AC5DBE5B90B4382C
空间设计是建筑设计的关键环节之一,本主题提供了一个具体的空间设计需求场景,要求参赛
队伍使用合适的 AI 算法,在满足安全疏散距离等强制性规范要求的前提下,自动排布一个规
整办公空间的楼梯间、房间和房门,达到空间设计的功能性目标。
从而得到关键信息:
- 国密算法,对称加密 ====> sm4
- Key ====>
B323B110BFF32AD2AC5DBE5B90B4382C
加密内容:
空间设计是建筑设计的关键环节之一,本主题提供了一个具体的空间设计需求场景,要求参赛 队伍使用合适的 AI 算法,在满足安全疏散距离等强制性规范要求的前提下,自动排布一个规 整办公空间的楼梯间、房间和房门,达到空间设计的功能性目标。
PPT解密
PPT内容如下图:
Confluence,Confluence是一个专业的企业知识管理与协同软件,也可以用于构建企业wiki。
很明显的提示了MD5,使用Privacy computing
关键字做MD5
加密,得出6f0d8d381a8dc1ce833ef8bc2620bea2
关键字。
这样就得到了我们公司的wiki地址,进入到新的页面,又得到了新的提示线索:
关键点:加密,一个字,Unicode,Index索引;
Wiki解密
PDF中提到了国密,那就用SM4去做一下加密吧,前端有现成的加密库sm-crypto
:
const sm4 = require('sm-crypto').sm4;
const msg = `空间设计是建筑设计的关键环节之一,本主题提供了一个具体的空间设计需求场景,要求参赛
队伍使用合适的 AI 算法,在满足安全疏散距离等强制性规范要求的前提下,自动排布一个规
整办公空间的楼梯间、房间和房门,达到空间设计的功能性目标。`;
const key = 'B323B110BFF32AD2AC5DBE5B90B4382C';
const encryptData = sm4.encrypt(msg, key);
得到密文:
4abfe907934abd29be50c3357a379f550a8d4a84e464ed9e2a123ff77e671e43c6b09de114dacd12b5ebf77bdc7d1b6180852a39dbd039136af409d4d12e6dfc00d94c0f84279d723048801964d93153a88110d2aa62f021307d99229e7b64c03c10de085dc896344d8ae6dbc4664f86a8c40bcd16f4007cb5c29c5ab4d2d7cceb1522682e830e84580c39630df195b863b746bfb5e9e0ef27daffa03c00415b4c471b4a2cc1e19d43d32cf185eeab63ba231bcf99c1a8ce40e89b589a75884617dd8a73785d0359a0068a248424dca79ce9742bb203ca11245e07c26ecb28069f3b8727c92347f8e8c12e8e32a6d6d14400b792f34771942b95e7fbe8f642c649a86e1bbb31180dba3f53a9ffcb4c10a1f681ca26e8386f90fb6ee0d5a778cffafa16cae7f193b71c978eb1d59d3b46e282a4c7ef7306d17e8b585e9a2f308748ee0fe4a77429975f23109cd88538ff
根据索引,从第500个开始的四位十六进制字符,做Unicode解码出一个汉字;
得到关键字符5e7f
,然后转Unicode,得到广字,至此解码完成。
在解密的过程中也有其他伙伴的提示,才能够最终解密成功,这次解密游戏让一个小小前端搞定,真的出乎了其他开发伙伴的意料,后面有几个朋友专门发来慰问,但是我只想说另外革命工作只有分工不同,没有高低贵贱之分,在前端的岗位上一样也可以做的很出色。
黑客马拉松,强的!!
不明觉厉