• 如果您想对本站表示支持,请随手点击一下广告即可~
  • 本站致力于提供原创、优秀的技术文章~
  • 有任何疑问或建议 均可以在站点右侧栏处 通过各种方式联系站长哦~
  • CTF – RootMe解题报告 [Cryptanalysis : Pixel Madness]

    渗透测试 EXP 656阅读 0评论

    挑战入口:Root-Me(https://www.root-me.org/en/Challenges/Cryptanalysis/Pixel-Madness-86)
      分类目录:Link to …(http://exp-blog.com/2019/01/02/pid-2597/5/)

    从题目就可以猜测,这题与像素图有关。

    但是题目提供的数据比较奇怪,我最开始以为是用十六进制数表示的像素点,但是 1x1 这种数据明显不是十六进制,而且如果是十六进制,每行的像素个数也不同,不可能构成图片。

    题目 Clue 提示了 0 = #FFFFFF(白色)1 = #000000(黑色) ,亦即说明图片只有黑白两种颜色,很可能所给的数据应该只有 0 和 1 两种有效像素。

    结合考虑,判断 0xa 应该是表示连续 a 个 0,而 1xb 则表示 连续 b 个 1 。

    以这种方式数了一下每行的 01 总个数,都是刚好 100 个,就可以确定判断没错了,这种编码方式实际上就是 游程长度编码(注意第 8 行其实是 101 个,多了一个像素,我删掉了末尾的 0 使其对齐,不然无法绘图)。

    知道编码方式,那么只需要对其解码,然后绘制成图片就可以了。绘制图片后密码就在里面,图片很多噪点,但还是能勉强看到密码是 SOLUTION (注意密码要全大写字母)。

    我简单写了个 python 程序对题目给出的图片数据进行解码,并将其还原成图片,贴在下面:


    转载请注明:EXP 技术分享博客 » CTF – RootMe解题报告 [Cryptanalysis : Pixel Madness]

    喜欢 (2) 分享 (0)
    发表我的评论
    取消评论

    表情

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址