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)

大家都在看

  • ajax与thymeleaf分别实现数据传输

    小杰笔记篇: 1:第一种:利用Model和thymeleaf引擎来完成: Controller层: html:引入引擎 第二种方式:ajax: 第一步:创建User实体类假装数据库…

    数据库 2023年6月6日
    090
  • MySQL数据库-数据表(中)

    分析:给 reader 表添加数据. INSERT INTO:插入数据,插入数据的时候会检查主键或者唯一索引,如果出现重复就会报错; 语法:INSERT INTO table_na…

    数据库 2023年6月11日
    0107
  • Docker简介

    1.什么是Docer 在计算机的世界中,容器拥有一段漫长且传奇的历史。容器与管理程序虚拟化 (hypervisor virtualization,HV)有所不同,管理程序虚拟化通过…

    数据库 2023年6月14日
    094
  • 通过VS下载的NuGet包,如何修改其下载存放路径?

    我们通过NuGet包管理器下载的引用包,默认是存放在C盘的,存储路径一般是: C:\Users\{&#x7CFB;&#x7EDF;&#x7528;&…

    数据库 2023年6月14日
    0197
  • Linux 下安装 node.js

    这里介绍两种安装方式: 编译安装和使用编译后的安装包安装。 安装目录: /usr/local 一、使用编译安装包安装 1、进入安装目录: 2、下载安装包: 3、解压: 4、进入解压…

    数据库 2023年6月14日
    090
  • MySQL知识点大全!!

    使用PreStatement对象: public int execUpdate(String sql, Object[] parms) { int count = 0; try {…

    数据库 2023年6月16日
    089
  • 强大博客搭建全过程(1)-hexo博客搭建保姆级教程

    1、 前言 本人本来使用国内的开源项目solo搭建了博客,但感觉1核CPU2G内存的服务器,还是稍微有点重,包括服务器内还搭建了数据库。如果自己开发然后搭建,耗费时间又比较多,于是…

    数据库 2023年6月16日
    0110
  • MySQL实战45讲 20

    20 | 幻读是什么,幻读有什么问题? 建表和初始化语句如下 CREATE TABLE t ( id int(11) NOT NULL, c int(11) DEFAULT NUL…

    数据库 2023年6月14日
    066
  • MySQL隐式转换的坑

    MySQL以以下规则描述比较操作如何进行转换: 两个参数至少有一个是 NULL 时,比较的结果也是 NULL,例外是使用 实际使用中经研究发现字符串和数字比较时,优先把字符串转换为…

    数据库 2023年6月9日
    071
  • 面试现场!月薪3w+的这些数据挖掘SQL面试题你都掌握了吗? ⛵

    💡 作者:韩信子@ShowMeAI📘 数据分析实战系列:https://www.showmeai.tech/tutorials/40📘 AI 面试题库系列:https://www….

    数据库 2023年6月14日
    083
  • ShardingSphere-Proxy 前端协议问题排查方法及案例

    ShardingSphere-Proxy 是 Apache ShardingSphere 的接入端之一,其定位为透明化的数据库代理。ShardingSphere-Proxy 实现了…

    数据库 2023年6月16日
    085
  • 最简单的学习往往是最无效的

    想必大家都是从学生时代过来的,或者现在还处于学生时代。 在学生时代,大家有没有见过,有的同学非常非常努力,上课听得非常认真,笔记也记录得非常认真,同时各种颜色和标记把书上画得密密麻…

    数据库 2023年6月15日
    0101
  • NO.3 Linux-笔记

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    数据库 2023年6月14日
    096
  • 实战 | 线程池的几种自定义扩展

    下图为线程池的构造方法,我们可以自定义一些功能实现项目优化 1、预先启动核心线程 this.prestartAllCoreThreads();使用方式:自定义线程池的构造方法中调用…

    数据库 2023年6月6日
    093
  • SpringBoot下使用AOP做日志

    AOP实现接口执行时间的计算: SpringBoot项目导入spring-boot-starter-aop依赖 编写切面类 类上加@Aspect注解,表明这是一个切面类 类上加@C…

    数据库 2023年6月14日
    0125
  • MySQL日期时间函数一网打尽

    获取时间 函数 功能 返回格式 CURDATE(), CURRENT_DATE() 返回当前日期,只包含年、月、日 2022-03-08 CURTIME(), CURRENT_TI…

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