IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    一次黑马解密小游戏

    王叨叨发表于 2022-09-25 21:58:00
    love 0

    今年公司又照例举办了黑客马拉松比赛,不过没有什么特别的想法就没有参赛,但是中间发布了一个解密小游戏还是比较有意思的,我就抱着试试看的态度玩了玩,没想到竟然还拿了TOP1,抛去奖品不说,这个过程还是比较好玩,我就分享一下我解密的过程。

    线索图

    2022-09-25T13:21:36.png

    通过观察线索,也就是文字反转,这倒难不住咱们,做一下反转处理后:

    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仓库看看都有啥:

    2022-09-25T13:39:38.png

    分别是一个PPT和PDF(TXT可以忽略掉)

    PDF解密

    PDF全选后,果然发现有猫腻:

    2022-09-25T13:46:52.png

    内容如下:

    guo2 mi4 suan4 fa3 ,dui4 cheng1 jia1 mi4
    Key:B323B110BFF32AD2AC5DBE5B90B4382C
    空间设计是建筑设计的关键环节之一,本主题提供了一个具体的空间设计需求场景,要求参赛
    队伍使用合适的 AI 算法,在满足安全疏散距离等强制性规范要求的前提下,自动排布一个规
    整办公空间的楼梯间、房间和房门,达到空间设计的功能性目标。

    从而得到关键信息:

    • 国密算法,对称加密 ====> sm4
    • Key ====> B323B110BFF32AD2AC5DBE5B90B4382C
    • 加密内容:

      空间设计是建筑设计的关键环节之一,本主题提供了一个具体的空间设计需求场景,要求参赛
      队伍使用合适的 AI 算法,在满足安全疏散距离等强制性规范要求的前提下,自动排布一个规
      整办公空间的楼梯间、房间和房门,达到空间设计的功能性目标。

    PPT解密

    PPT内容如下图:

    2022-09-25T13:53:36.png

    Confluence,Confluence是一个专业的企业知识管理与协同软件,也可以用于构建企业wiki。

    2022-09-25T13:54:04.png

    很明显的提示了MD5,使用Privacy computing关键字做MD5加密,得出6f0d8d381a8dc1ce833ef8bc2620bea2关键字。

    这样就得到了我们公司的wiki地址,进入到新的页面,又得到了新的提示线索:

    2022-09-25T13:45:41.png

    关键点:加密,一个字,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,得到广字,至此解码完成。

    在解密的过程中也有其他伙伴的提示,才能够最终解密成功,这次解密游戏让一个小小前端搞定,真的出乎了其他开发伙伴的意料,后面有几个朋友专门发来慰问,但是我只想说另外革命工作只有分工不同,没有高低贵贱之分,在前端的岗位上一样也可以做的很出色。



沪ICP备19023445号-2号
友情链接