BUUCTF:喵喵喵

  • 1.LSB隐写
  • 2.png的图片需要修复
    • 1.修复图片的文件头部(删除fffe)
    • 2.使用png一键脚本修复png的高宽问题
  • 3.二维码处理
    • 代码如下
  • 4.处理flag.rar
    • 1.扫描二维码下载百度云盘的文件(flag.rar)
    • 2.拿到rar文件后,解压开来(推荐使用winrar解压,不然可能隐藏的ntfs扫描不出来)
    • 3.使用NSE工具扫描,扫描结果是flag.txt:flag.pyc,如图:
    • 4.勾选然后导出pyc格式文件即可。
  • 5.反汇编pyc代码
    • 1.安装uncompyle库
    • 2.使用uncomply6去反汇编pyc
    • 3.反汇编出来的代码如下:
    • 4.分析一下代码的情况
    • 5.进一步分析encode()函数如何加密:
    • 6.根据上一步进行倒退代码处理ciphertext,就是步骤反着来,解密代码:
    • 7.运行上面的解密代码

原图:

1.LSB隐写

​ 使用Stegsolve去**BGR**通道拿到一张png(有问题的)的图片,保存二进制文件即可。

2.png的图片需要修复

1.修复图片的文件头部(删除fffe)

2.使用png一键脚本修复png的高宽问题

经过上一步的修复,现在图片可以查看了,如图:

由于图片的是一张二维码的上部分,加上图片是png格式,所以很正常就想到了是png高宽问题。

这个步骤我使用的是github开源项目链接:

https://github.com/Southseast/PNG_Height_Steganography

这地方比较简单,跳过了,不会使用的看他的使用文档即可食用!

3.二维码处理

经过上一步的处理,二维码已经拿到,如图:

仔细观察的话可以发现二维码的颜色有很大问题的,他的3个定位标志的颜色不对劲

如果看不出来的话,你们可以看一下正常的二维码,如图:

原理:让二维码的黑色变白色,白色变黑色,也就是每个像素点255的变成0,0的变成255,即可让二维码恢复正常的样貌。

代码如下
import cv2
import numpy as npimg = cv2.imread("1.png")img = np.where(img == 0, 255, 0)
img = img.astype(np.uint8)cv2.imshow("image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

4.处理flag.rar

1.扫描二维码下载百度云盘的文件(flag.rar)
2.拿到rar文件后,解压开来(推荐使用winrar解压,不然可能隐藏的ntfs扫描不出来)
3.使用NSE工具扫描,扫描结果是flag.txt:flag.pyc,如图:

4.勾选然后导出pyc格式文件即可。

pyc格式是由py文件经过编译后二进制文件

5.反汇编pyc代码

1.安装uncompyle库
pip install uncompyle
2.使用uncomply6去反汇编pyc
uncompyle6 xxx.pyc > main.py
3.反汇编出来的代码如下:
import base64def encode():flag = '*************'ciphertext = []for i in range(len(flag)):s = chr(i ^ ord(flag[i]))if i % 2 == 0:s = ord(s) + 10else:s = ord(s) - 10ciphertext.append(str(s))return ciphertext[::-1]ciphertext = ['96', '65', '93', '123', '91', '97', '22', '93', '70', '102', '94', '132', '46', '112', '64', '97', '88', '80', '82', '137', '90', '109', '99', '112']
4.分析一下代码的情况
encode() --> 根据名称能推理出来是个加密函数
ciphertext --> 由encode()加密出来的
5.进一步分析encode()函数如何加密:
def encode():flag = '*************'ciphertext = []for i in range(len(flag)):# 1.索引i 异或(^) flag第i个的元素的ascii的十进制数# 然后再转成asciis = chr(i ^ ord(flag[i]))# 2.如果i能被二整除就给ascii转换为十进制再 + 10,否则 - 10if i % 2 == 0:s = ord(s) + 10else:s = ord(s) - 10ciphertext.append(str(s)) # 3.把处理好的数据加入到列表中return ciphertext[::-1] # 4.对加密好ciphertext的进行倒序
6.根据上一步进行倒退代码处理ciphertext,就是步骤反着来,解密代码:
# 密文
ciphertext = ['96', '65', '93', '123', '91', '97', '22', '93', '70', '102', '94', '132', '46', '112', '64', '97', '88', '80', '82', '137', '90', '109', '99', '112']# 1.先对密文进行倒序
ciphertext = ciphertext[::-1]for i in range(len(ciphertext)):# 2.如果i能被二整除就给十进制数 - 10,否则 + 10.(和加密的关系反过来)if i % 2 == 0:s = int(ciphertext[i]) - 10else:s = int(ciphertext[i]) + 10# 3.异或然后再转换为ascii就得出明文plantext.append(chr(int(i ^ s)))# 4.打印flag
print("".join(plantext))
7.运行上面的解密代码

获得flag:flag{Y@e_Cl3veR_C1Ever!}

BUUCTF:喵喵喵相关推荐

  1. OSChina 周五乱弹 ——喵星生物学:喵和喵奴

    2019独角兽企业重金招聘Python工程师标准>>> [今日歌曲] @Lailysh :  #毎日の歌# 暗涌-王菲 <暗涌>-王菲 手机党少年们想听歌,请使劲儿戳(这 ...

  2. 喵喵喵?喵嘞个咪?---- C++左值引用

    编译环境:VS 2013 文章目录 一.C 语言传参 1. 传值 2. 传址 二.引用 1. 引用的概念 2. 引用的特性 3. const 的引用 4. 数组引用 5. 引用的使用场景 6. 引用和 ...

  3. 抓住那只喵(HTML5-神经猫)

    1.使用createjs 那只喵需要easeljs-0.7.1.min.js easeljsDemo: <canvas width="800px" height=" ...

  4. hsv分别代表什么_猫语大解密!你们知道不同的喵叫声,分别代表什么吗?

    猫咪不会说话,所以只能用喵喵叫的声音来传达自己的意思.但是很多人养猫很久依然读不懂猫咪的小心思.今天就给大家解密一下猫言猫语,你们知道不同的喵叫声,分别代表什么吗? 1.喵呜声 最常听见猫咪叫的声音是 ...

  5. 淘宝双十一喵糖总动员玩法攻略 双11扔喵糖占领格子战队怎么玩

    喵糖总动员如何玩,这个是2021双十一的新活动玩法,玩家收集喵糖来进行投掷骰子就可以获得红包,具体怎么玩,下面就来介绍下喵糖总动员怎么玩. 喵糖总动员玩法攻略 一.玩法攻略 1.赚喵糖 点击赚瞄糖→任 ...

  6. 淘宝双十一喵糖总动员玩法攻略 双11组队选格子pk怎么玩

    每年的双十一期间淘宝都会推出和猫猫有关的领红包活动,今年也不例外,淘宝今年推出的双十一喵糖领红包.那么此次活动怎么玩呢?下面一起来看看了解一下吧! 喵糖总动员组队玩法 邀队友 队长可邀请队友组队,加入 ...

  7. 喵喵机VS咕咕机VS印先生App对比

    使用体验 目录 使用体验... 1 前言... 2 主页面功能罗列... 2 App对比... 3 使用总结... 4 App终端截图... 5 是否可自主研发... 6 前言 本文档书写是建立在不连 ...

  8. BUUCTF 喵喵喵

    文件打开来是张图片 题目也写了扫一扫,那就直接用stegsolve打开来 发现文件0通道有异常,是LSB隐写,保存为.png文件,并用010打开 发现文件头有问题,将FF FF删去保存 发现二维码只有 ...

  9. BUUCTF misc 专题(72)喵喵喵

    下载附件解压,是一张猫的图片 拖入到winhex中,并没有什么发现,放入stegsolve 在这里发现了png格式的照片,保存下来,发现打不开,拖入winhex 看到了头部有问题,以png为头,新建一 ...

最新文章

  1. 安装linux系统报softlock,soft lockup 解决思路
  2. linux文件系统叫什么,【整理】什么是根文件系统(rootfs=Root Fils System)
  3. No module named 'numpy.core._multiarray_umath'
  4. 中国互联网+政务建设发展现状及市场规模预测报告2022-2027年版
  5. 北京内推 | 阿里云视频处理算法团队招聘视频处理算法实习生
  6. 如何在 Linux 上使用 Vundle 管理 Vim 插件
  7. 开源/免费界面自动化测试工具对比研究
  8. 2019春季第三次编程总结
  9. CentOS 7.4 Tengine安装配置详解(七)
  10. JavaWeb调用python脚本(可传参)
  11. android 属性动画实例,Android属性动画完全解析 中 ,ValueAnimator和ObjectAnimator的高级用法...
  12. chrome 使用gpu 加速_DLI每周一课|用CUDA C的GPU加速库加速应用程序(新人有礼)
  13. java java se_Java SE 9:尝试资源改进
  14. Go语言中的结构体 (struct)
  15. 基于ssm医院病历管理系统
  16. windows c语言编程环境,windows7中c语言编程环境的搭建
  17. java 不支持,不支持Java Sound格式
  18. python带通滤波_python中的带通滤波器
  19. 数显之家快讯:【SHIO世硕心语】真正的高手,都有7个思维习惯
  20. 小公司如何做项目管理流程

热门文章

  1. PDF格式转换为WORD格式
  2. 【DETR源码解析】二、Backbone模块
  3. 人类肠道核心菌属——韦荣氏球菌属(Veillonella)
  4. 物联卡是不是上网卡?物联卡能永久使用吗?
  5. 【微信小程序】使用canvas制作在线画板,清除与保存
  6. 记录一次FTP登录500 OOPS:cannot change directory解决方案
  7. openfeign 404
  8. 十大机器学习算法入门
  9. MTK去除lk冗余log
  10. 游戏数值策划经验篇:从多角度解读游戏经验值设计