buuctf 派大星的烦恼

题目如下

buuctf 派大星的烦恼buuctf 派大星的烦恼

首先找到伤疤并提取出来,发现一共有256个数据,根据题目中的提示答案为32位的字符串,再根据伤疤只有两种状态22和44,联想到每8个伤疤拼成8位二进制,22表示0,44表示1,组成一个二进制串

0110110000101100000011000110110010011100101011000000110010000110101011000010110010001100000111000010110001000110001001101010110001100110101001100110110001000110011011001010011010101100010001100010110011000110101001100010110011001100000111001100110001001100

将这个二进制串每8位组成一个二进制数,并转为hex,将hex转为字符串输出,即可得到答案。

with open("E:\Download\misc\派大星的烦恼.bmp","rb") as fr:
    res = fr.read()[4000:4256]
    tmp = []
    for v in res:
        if v == 34:
            tmp.append(0)
        else:
            tmp.append(1)
    fr.close()
for i in range(len(tmp)):
    tmp[i] = str(tmp[i])
a = "".join(tmp)
print(a)
b = []
for i in range(0,len(a),8):
    b.append(int(a[i:i+8],2))
w = ""
for v in b:
    w+=str(hex(v))[2:]
print(w)

<span class="ne-text">6c2cc6c9cacc86ac2c8c1c2c4626ac66a66c466ca6ac462cc6a62ccc1ccc4c</span>,发现这个hex串并不正确,无法解码,那么就将原本的二进制串逆序一下试试,

with open("E:\Download\misc\派大星的烦恼.bmp","rb") as fr:
    res = fr.read()[4000:4256]
    tmp = []
    for v in res:
        if v == 34:
            tmp.append(0)
        else:
            tmp.append(1)
    fr.close()
for i in range(len(tmp)):
    tmp[i] = str(tmp[i])
a = "".join(tmp)
a = a[::-1]
print(a)
b = []
for i in range(0,len(a),8):
    b.append(int(a[i:i+8],2))
w = ""
for v in b:
    w+=str(hex(v))[2:]
print(w)

<span class="ne-text">3233383334656334623565366236656635646234383134356130353936303436</span>

这个hex的结果 <span class="ne-text">23834ec4b5e6b6ef5db48145a0596046</span>提交不正确

那么可能是对每个二进制数据逆序,而不是整体逆序

with open("E:\Download\misc\派大星的烦恼.bmp","rb") as fr:
    res = fr.read()[4000:4256]
    tmp = []
    for v in res:
        if v == 34:
            tmp.append(0)
        else:
            tmp.append(1)
    fr.close()
for i in range(len(tmp)):
    tmp[i] = str(tmp[i])
a = "".join(tmp)
print(a)
b = []
for i in range(0,len(a),8):
    t = a[i:i+8]
    t = t[::-1]
    b.append(int(t,2))
w = ""
for v in b:
    w+=str(hex(v))[2:]
print(w)

<span class="ne-text">3634303639353061353431383462643566653662366535623463653433383332</span>

这个hex的结果 <span class="ne-text">6406950a54184bd5fe6b6e5b4ce43832</span>,提交成功

Original: https://www.cnblogs.com/WXjzc/p/16095984.html
Author: WXjzc
Title: buuctf 派大星的烦恼

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/601235/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Redis+Lua实现简易的秒杀抢购

    1 商品抢购 主要逻辑是:减库存,记录抢购成功的用户 @RestController public class DemoController { @Resource private…

    数据库 2023年6月14日
    0101
  • 2_爬豆瓣电影_ajax动态加载

    什么是 AJAX ? AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 AJAX = Asynchronous JavaScript and XML(AJA…

    数据库 2023年6月11日
    090
  • Java代码中System.currentTimeMillis()方法具有什么功能呢?

    转自:http://java265.com/JavaCourse/202111/1749.html 下文笔者讲述System.currentTimeMillis()方法的具体功能,…

    数据库 2023年6月11日
    085
  • Java并发编程-线程池

    重点内容 线程池的使⽤ 创建线程池 提交任务 关闭线程池 线程池的原理 合理配置线程池 线程池的监控 1.线程池的创建 new ThreadPoolExecutor(corePoo…

    数据库 2023年6月6日
    084
  • ArrayList

    ArrayList与数组的区别: 1. 数组和ArrayList的本质区别在于前者是类型安全的,而后者是类型不安全的.2. ArrayList为了兼容所有类型对象,使用了Objec…

    数据库 2023年6月16日
    086
  • MySQL并行复制(MTS)原理(完整版)

    MySQL 5.6并行复制架构 MySQL 5.7并行复制原理 Master 组提交(group commit) 支持并行复制的GTID slave LOGICAL_CLOCK(由…

    数据库 2023年5月24日
    094
  • JMeter接口自动化发包与示例

    JMeter接口自动化发包与示例 近期需要完成对于接口的测试,于是了解并简单做了个测试示例,看了看这款江湖上声名远播的强大的软件-Jmeter靠不靠谱。官网:https://jme…

    数据库 2023年6月6日
    057
  • mysql进阶

    mysql进阶 1.下载二进制格式的mysql软件包 [root@mr ~]# wget https://downloads.mysql.com/archives/get/p/23…

    数据库 2023年5月24日
    0115
  • 3_MyBatis

    一. 引言 1.1 什么是框架? 软件的半成品, 解决了软件开发过程中的普适性问题, 从而简化了开发步骤, 提升了开发效率 1.2 什么是ORM框架? ORM(Object Rel…

    数据库 2023年6月11日
    070
  • SpringBoot下配置文件密码加密

    一、导入配置文件 csharp;gutter:true; com.github.ulisesbocchio jasypt-spring-boot-starter 3.0.4<…

    数据库 2023年6月14日
    067
  • DM-DM之间的DBLINK

    1 创建外部链接 创建一个外部链接。 语法格式 CREATE [OR REPLACE] [PUBLIC] LINK STANDBY FIRST | PRIMARY ONLY | S…

    数据库 2023年6月11日
    067
  • Mysql 连续时间分组

    该方案不限于本例的连续时间,还可以应用于其他连续组。 [En] The scheme is not limited to the continuous time of this e…

    数据库 2023年5月24日
    069
  • MySQL 8 新特性之Clone Plugin

    Clone Plugin是MySQL 8.0.17引入的一个重大特性,为什么要实现这个特性呢?个人感觉,主要还是为Group Replication服务。在Group Replic…

    数据库 2023年6月11日
    0103
  • 第十四章 静态代理设计模式

    1.为什么需要代理设计模式 1.1 问题 在javaEE分层开发中,那个层对我们最重要? DAO–>Service–>Controller 在javaEE分层开发中…

    数据库 2023年6月14日
    074
  • Python 学习笔记(七)–socket

    1.网络七层模型及主要协议 2.TCP的”三次握手”和四次挥手 三次握手 Step1:首先客户端向服务器端发送一段TCP报文; Step 2:服务器端接收到…

    数据库 2023年6月16日
    0103
  • IDEA中如何查看接口的所有实现类呢?

    接口是我们日常开发中常用的操作,那么如何查看一个接口有哪些实现类呢?下文笔者将讲述IDEA编辑器中 查看实现类的快捷方法,如下所示 在spring源码阅读中,每一个接口都有很多实现…

    数据库 2023年6月11日
    070
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球