BugKu: 粉色的猫

文章目录

  • BugKu: 粉色的猫
    • 1.获取压缩包密码
    • 2.分析文件
    • 3.Arnold变换(猫脸变换)
    • 总结:

1.获取压缩包密码

能发现只有4种字符AGCT

所以是DNA 碱基序列编码

使用在线解码网站,戳我

压缩包的解压密码为:CATISSOCUTE

2.分析文件

010editor 打开 1 这个文件,文件头为BPG,所以他是BPG格式的图片,该格式详细信息看百度百科

把文件后缀名改成bpg,然后使用 bpg-0.9.8-win64,下载链接,戳我

出现了图片,但是我们从图片中,根本获取不到任何有用信息。

所以我们调转枪头,去打开key.txt,如图:

打开解码网站:http://www.sendsms.cn/pdu/

我们发现都是0001000D9,可以猜测有可能是PDU编码,这个规律是我发现的,但是如果这几个不是默认的,那0001000D9这个特征就不会存在了。所以以后碰到0001000D9拿到16进制转ascii没有什么线索,可以尝试PDU编码。

现在我们开始一行一行解码:

可以发现89504E47这明显就是PNG的文件头的16进制,我们解密好所有的行,拼接在一起,然后再保存为图片,这个过程太简单跳过。

图片如下:

这张图片就引出了一个编程语言,叫Piet,详细资料请看:百度百科

不想看的,你就理解为20种颜色进行的编程。所以我们现在就需要去运行这个图片代码。

但是,在去运行这个图片代码之前,我们需要把图片反色一下。

可以看到百度百科的Piet图片颜色背景是白色,而我们拿到的图片颜色背景是黑色。所以需要反色一下,使用Stegsolve.jar进行反色操作。

反色后的图片如下:

现在我们打开在线运行Piet语言网站,戳我

import导入图片,然后再点右边的DEBUGGER然后点绿色的按钮运行Piet语言。

最终得到key:a=13 b=14

3.Arnold变换(猫脸变换)

a=13, b=14,结合我们的1.bpg的图片样貌,所以认为是Arnold变化,所以我们现在就是要获取变化之前的图片。

借鉴了该文章的代码,链接,并进行了一些修改,为了是方便使用。

代码如下:

import cv2
import argparse
import numpy as npparser = argparse.ArgumentParser()
parser.add_argument('-t', type=str, default=None, required=True, choices=["encode", "decode"],help='encode | decode')
parser.add_argument('-f', type=str, default=None, required=True,help='输入文件名称')
parser.add_argument('-a', type=int, default=None, required=True,help='输入参数a')
parser.add_argument('-b', type=int, default=None, required=True,help='输入参数b')
args  = parser.parse_args()def isSame(img):r, c = img.shapeif r != c:print("图片宽高不一致!")return Falsereturn Truedef arnold(img, a, b):r, c = img.shapep = np.zeros((r, c), np.uint8)for i in range(r):for j in range(c):x = (i + b * j) % ry = (a * i + (a * b + 1) * j) % cp[x, y] = img[i, j]return pdef dearnold(img, a, b):r, c = img.shapep = np.zeros((r, c), np.uint8)for i in range(r):for j in range(c):x = ((a * b + 1) * i - b * j) % ry = (-a * i + j) % cp[x, y] = img[i, j]return pimg = cv2.imread(args.f, flags=0)if isSame(img):if args.t == "encode":img = arnold(img, a=args.a, b=args.b)elif args.t == "decode":img = dearnold(img, a=args.a, b=args.b)cv2.imshow("images", img)
cv2.waitKey(0)

我们之前只是查看了BPG图片的样貌,并没有进行保存,现在我们使用。

软件运行目录会出现out.png,现在我们获得到了PNG格式的图片,我们现在就可以使用猫脸变化代码进行变化回之前的样貌。

使用之前获取的a=13, b=14,还有刚刚获得的out.png,我们成功拿到了flag!

flag{c159549a-5604-4bb7-8a6e-9db9d8b1426a}

完结,拜拜!

总结:

这道题目涉及到了DNA编码, BPG图片格式,PDU编码,Piet编程语言,猫脸变化,一共是5个知识点,这道题让我受益良多,出题者水平真高啊!

BugKu: 粉色的猫相关推荐

  1. Bugku MISC 粉色的猫

    前言 近期看到有人CSDN私信我,问我BugkuCTF的一道Misc题,那么今天在这里给大家解答一下这道"粉色的猫",顺便开始一下我们CTF的旅程. 题目信息 题目名称:粉色的猫 ...

  2. Bugku:杂项 猫片(安恒)

    安恒也是一个做网络安全的公司(平台?) 首先,看到猫片,肯定是猫的照片 其次,提示LSB,一看就要用到Stegsolve里面调LSB出来的[我猜的,看看会不会打脸]. 下载文件之后是这样的, 用010 ...

  3. 撸猫游戏千千万,他们凭什么被推荐?

    萌态可掬的猫猫狗狗一直是互联网内容中的流量担当,猫狗相关的视频也是各大视频平台甚至营销号的高播放量常客,游戏行业里自然也少不了猫猫狗狗们的身影. 但是,以猫狗为题材的游戏为数不少,成功者却并不多,能给 ...

  4. BugkuCTF 部分题解(随缘更新)

    之前做的题在BugkuCTF 部分题解(一) 佛系更新 2月3日更新了ezbypass 11月9日更新了奇怪的压缩包 11月7日更新了这个flag,就是逊啦.不可以破译的密码 bugku 佛系更新 M ...

  5. Bugku writeup 猫片(安恒)

    Bugku writeup 猫片(安恒) 题目: 解题: 1.首先打开题目附件,得到一个png的二进制文件.用010editor打开,发现头部内容显示为png,因此修改文件后缀,得到一张图片. 打开虚 ...

  6. BugKu CTF(杂项篇MISC)—猫片(安恒)

    CTF BugKu CTF (杂项篇MISC) 攻与防 猫片(安恒) 描 述: hint:LSB BGR NTFS 题目下载后是一张图片,打开如下. 一.工具 十六进制工具 010 editor编辑器 ...

  7. 皮一皮:二次元?猫耳?半裸?粉色?户外?翘臀?一次都满足你!

    不错不错!

  8. Bugku 猫片(安恒)(Stegsolve分析)

    今天发现了一道又爱又恨的题,决定分享出来. 打开得到png用010editor打开发现为png文件,加上后缀得到 用010editor打开没有异常. 虚拟机binwalk一下,依然没有异常. 查看属性 ...

  9. Bugku杂项——猫片(安恒)

    下载附件,根据其文件名,将其后缀改为.png,打开 根据一番搜索之后,并没有发现隐藏信息或文件,题目提示LSB(最低有效字节),是图片隐写的一种方法,下面简单介绍一下: 图像由基本单元像素组成,每个像 ...

最新文章

  1. CentOS安装crontab
  2. MySQL数据库高可用集群搭建-PXC集群部署
  3. flask 刷新 html 网页
  4. pytorch什么要设计ModuleList
  5. Lua table笔记
  6. Oracle设置权限和还原数据库
  7. jQuery.protoype.xxx=function(){}
  8. Spring5参考指南:Bean的生命周期管理
  9. JQuery中样式标签的处理
  10. Python之List和Tuple类型(入门3)
  11. 计算机cmd查询ip地址,cmd查ip地址(cmd命令查看别人的ip)
  12. LDA算法原理及LDA与PCA的比较
  13. 大数据背后的网络文学
  14. 项目经理必须学会的财务知识
  15. 需要验证的网络连接服务器,登录iCloud提示验证失败,连接到服务器时出现问题怎么办...
  16. 学会使用help()
  17. 路由器自动连接服务器无响应,路由器WAN口设置已断开(服务器无响应)怎么办?...
  18. WIN11自定义版本镜像下载教程
  19. Randon范围控制
  20. pycharm设置字体样式_pycharm设置主题/默认格式/字体

热门文章

  1. 持续集成(CI)系统
  2. 基于单片机的CO浓度检测及报警系统设计(电路+程序流程)
  3. 深入理解CSS之flex精要之 flex-basis flex-grow flex-shrink 实战讲解
  4. 根据Date类型出生年月日计算出年龄
  5. 程序员应该掌握的统计学公式
  6. 理解vuex实现的原理
  7. 王者荣耀小游戏1.0震撼上线!C++版
  8. 微信个性签名怎么弄成竖的?不仅可以竖着还可以加边框效果!
  9. python内置模块re_13.python内置模块之re模块
  10. 纯 CSS 的多级菜单