x_xor_md5

x_xor_md5

打开附件,用010打开

发现有一行值是重复的。

根据题目提示我们把全文与重复行进行异或

 str1 =[0x01,0x78,0x0C,0x4C,0x10,0x9E,0x32,0x37,0x12,0x0C,0xFB,0xBA,0xCB,0x8F,0x6A,0x53]
 result=[]
 txt =[0x69,0x35,0x41,0x01,0x1C,0x9E,0x75,0x78,0x5D,0x48,0xFB,0xF0,0x84,0xCD,0x66,0x79,0x55,0x30,0x49,0x4C,0x56,0xD2,0x73,0x70,0x12,0x45,0xA8,0xBA,0x85,0xC0,0x3E,0x53,0x73,0x1B,0x78,0x2A,0x4B,0xE9,0x77,0x26,0x5E,0x73,0xBF,0xAA,0x85,0x9C,0x15,0x6F,0x54,0x2C,0x73,0x1B,0x58,0x8A,0x66,0x48,0x5B,0x19,0x84,0xB0,0x80,0xCA,0x33,0x73,0x5C,0x52,0x0C,0x4C,0x10,0x9E,0x32,0x37,0x12,0x0C,0xFB,0xBA,0xCB,0x8F,0x6A,0x53,0x01,0x78,0x0C,0x4C,0x10,0x9E,0x32,0x37,0x12,0x0C,0xFB,0xBA,0xCB,0x8F,0x6A,0x53,0x01,0x78,0x0C,0x4C,0x10,0x9E,0x32,0x37,0x12,0x0C,0xFB,0xBA,0xCB,0x8F,0x6A,0x53,0x01,0x78,0x0C,0x4C,0x10,0x9E,0x32,0x37,0x12,0x0C,0x89,0xD5,0xA2,0xFC]
 for i in range(len(txt)):
   tmp = 0
   tmp = str1[i%len(str1)]^txt[i]
   result+=[tmp]
   print((hex(tmp)[2:]).zfill(2),end="")

是十六进制文件,导入010中

有ctf出现证明咱们的思路是对的。

再观察发现后面都是00,但是这不是真正的空,应该是0x20才对,所以我们进行0x20异或

str1 =[0x01,0x78,0x0C,0x4C,0x10,0x9E,0x32,0x37,0x12,0x0C,0xFB,0xBA,0xCB,0x8F,0x6A,0x53]
 result=[]
 txt =[0x69,0x35,0x41,0x01,0x1C,0x9E,0x75,0x78,0x5D,0x48,0xFB,0xF0,0x84,0xCD,0x66,0x79,0x55,0x30,0x49,0x4C,0x56,0xD2,0x73,0x70,0x12,0x45,0xA8,0xBA,0x85,0xC0,0x3E,0x53,0x73,0x1B,0x78,0x2A,0x4B,0xE9,0x77,0x26,0x5E,0x73,0xBF,0xAA,0x85,0x9C,0x15,0x6F,0x54,0x2C,0x73,0x1B,0x58,0x8A,0x66,0x48,0x5B,0x19,0x84,0xB0,0x80,0xCA,0x33,0x73,0x5C,0x52,0x0C,0x4C,0x10,0x9E,0x32,0x37,0x12,0x0C,0xFB,0xBA,0xCB,0x8F,0x6A,0x53,0x01,0x78,0x0C,0x4C,0x10,0x9E,0x32,0x37,0x12,0x0C,0xFB,0xBA,0xCB,0x8F,0x6A,0x53,0x01,0x78,0x0C,0x4C,0x10,0x9E,0x32,0x37,0x12,0x0C,0xFB,0xBA,0xCB,0x8F,0x6A,0x53,0x01,0x78,0x0C,0x4C,0x10,0x9E,0x32,0x37,0x12,0x0C,0x89,0xD5,0xA2,0xFC]
 for i in range(len(txt)):
     tmp = 0
     tmp = str1[i%len(str1)]^txt[i]
     result.append((hex(tmp)[2:]).zfill(2))
     print((hex(tmp)[2:]).zfill(2),end="")
 print('\n')
 ​
 result2=[]
 for j in range(len(result)):
     tmp = 0
     tmp = int(result[j],16)^0x20
     result2.append((hex(tmp)[2:]).zfill(2))
     print((hex(tmp)[2:]).zfill(2),end="")
 print('\n')

同上,导入010

原本我以为这就完了,但是提交....不对

后来也是看了wp才知道没有结束,不看我是真想不到呀,好了,话题扯回来。

观察发现{ }里有两个.

通过*key推断后面应该也是 * 才对,即原本是0x00,要变成0x2A(就是32)。

所以我们将这两个特殊的进行0x2A异或---------0x1C^0x2A=0x36-->6

你以为到这里总算是完了吧,不不不,还没有!!!

这道题有个提示key不存在,以及题目中的MD5都还没有使用。

发现第一次的异或刚好是32个十六进制数字,即MD5

01780C4C109E3237120CFBBACB8F6A53”进行MD5解密------没有

因为我们再前面进行了0x20异或,那将这串数字也进行0x20(即32)异或

 a = ['01','78','0C','4C','10','9E','32','37','12','0C','FB','BA','CB','8F','6A','53']
 final = []
 for i in range(0,len(a)):
     x = int(a[i],16)
     final.append(hex(x^32)[2:])
     print(hex(x^32)[2:].zfill(2),end="")

进行MD5解密

所以RCTF{We1l_d0n3_6ut_wh4t_i5_that}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/968351.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C语言标准库函数】标准输入输出函数详解[6]:字符文件读取写入

目录 一、字符文件写入函数 1.1. fputc函数 1.1.1. fputc函数简介 1.1.2. 使用场景 1.1.3. 注意事项 1.1.4. 示例 1.2. fputs函数 1.2.1. fputs函数简介 1.2.2. 使用场景 1.2.3. 注意事项 1.2.4. 示例 二、字符文件读取函数 2.1. fgetc函数 2.1.1. 函数简介 2.1…

基于深度学习的半导体故障诊断与寿命预测算法研究

摘要 半导体产业在现代科技领域占据着核心地位,其设备的稳定性和可靠性至关重要。传统的半导体故障诊断和寿命预测方法存在效率低、准确性差等问题。本文聚焦于深度学习算法在半导体故障诊断与寿命预测方面的应用,详细阐述了卷积神经网络(CN…

制药行业 BI 可视化数据分析方案

一、行业背景 随着医药行业数字化转型的深入,企业积累了海量的数据,包括销售数据、生产数据、研发数据、市场数据等。如何利用这些数据,挖掘其价值,为企业决策提供支持,成为医药企业面临的重大挑战。在当今竞争激烈的…

基于Python flask-sqlalchemy的SQLServer数据库管理平台

适应场景: 主要用于帮助DBA自动化很多日常工作,包括: 数据库状态监控 性能问题诊断 日志分析 自动巡检 问题告警 系统截图: main.py from flask import Blueprint, render_template, request, flash, redirect, url_for f…

TensorRT 8.6.1教程1-TensorRT简介

区分计算节点和数据节点 视频 TensorRT 教程 | 基于 8.6.1 版本 | 第一部分_哔哩哔哩_bilibili cookbook

MySQL创建存储过程和存储函数

【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客 《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…

【项目总结】易到家家政服务平台 —— 派单调度(7)

派单调度需求分析 在抢单业务中,用户下单成功由服务人员或机构进行抢单,抢单成功服务人员上门服务,除了抢单业务系统还设计了派单业务,由系统根据用户订单的特点自动派给合适的服务人员。 流程如下: 首先获取待分配…

visual studio 在kylin v10上跨平台编译时c++标准库提示缺少无法打开的问题解决

情况1:提示无法打开 源文件 "string"之类导致无法编译 情况2:能编译,但无法打开这些库文件或标准库使用提示下划红色问题 解决方案: 一、通过工具->选项->跨平台里,在“远程标头IntelliSense管理器”更新下载一下…

SpringCould+vue3项目的后台用户管理的CURD【Taurus教育平台】

文章目录 一.SpringCouldvue3项目的后台用户管理的CURD【Taurus教育平台】 1.1 背景 二.用户列表(分页查询) 2.1 前端Vue3 (Vue3-Element-Admin)2.2 后端SpringCould 处理 三. 用户信息删除 3.1 前端Vue3 (Vue3-Eleme…

Eclipse 插件开发相关概念

整理了Eclipse插件开发的概念,用于熟悉入门 SWT(Standard Widget Toolkit)标准图形工具箱 Java开发的GUI程序技术,由Eclipse开发,相比AWT、Swing更美观;对于目标平台上已经有的控件,SWT会直接使…

算法之 数论

文章目录 质数判断质数3115.质数的最大距离 质数筛选204.计数质数2761.和等于目标值的质数对 2521.数组乘积中的不同质因数数目 质数 质数的定义:除了本身和1,不能被其他小于它的数整除,最小的质数是 2 求解质数的几种方法 法1,根…

AndroidStudio查看Sqlite和SharedPreference

1.查看Sqlite 使用App Inspection,这是个好东西 打开方式:View → Tool Windows → App Inspection 界面如图: App inspection不但可以看Sqlite还可以抓包network和background task连抓包工具都省了。 非常好使 2.查看sharedPreference 使…

谈一谈数据库中的死锁问题

文章目录 死锁是什么?死锁的四个必要条件避免死锁的策略 本篇文章是基于《MySQL45讲》来写的个人理解与感悟。 死锁是什么? 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象。若无外力作用&a…

网络工程师 (31)VLAN

前言 VLAN(Virtual Local Area Network)即虚拟局域网,是一种将物理局域网划分成多个逻辑上独立的虚拟网络的技术。 一、定义与特点 定义:VLAN是对连接到的第二层交换机端口的网络用户的逻辑分段,不受网络用户的物理位置…

从深入理解 netty——》AI

想了很久,准备写一个系列从深入理解 netty——》AI。 先说下为啥要从netty开始,看看netty的重要性 rocketmq异步消息组件nacos微服务注册中心spring cloud gateway网关redission分布式缓存es全文检索sentinel流量控制,服务保护seata分布式…

从 0 开始本地部署 DeepSeek:详细步骤 + 避坑指南 + 构建可视化(安装在D盘)

个人主页:chian-ocean 前言: 随着人工智能技术的迅速发展,大语言模型在各个行业中得到了广泛应用。DeepSeek 作为一个新兴的 AI 公司,凭借其高效的 AI 模型和开源的优势,吸引了越来越多的开发者和企业关注。为了更好地…

在anaconda环境中构建flask项目的exe文件

一、创建并激活虚拟环境 conda create -n flask_env python3.9 # python版本根据项目需求安装 conda activate flask_env # 激活环境二、安装必要依赖 推荐使用conda,pip没尝试过,但是deepseek给出了命令 conda install flask …

腾讯云服务器中Ubuntu18.04搭建python3.7.0与TensorFlow1.15.0与R-4.0.3环境

所有踩过的坑,都化成了这条平坦的路 云服务器配置 基础配置选择竞价实例(便宜/需求小) 选择地区(距离自己近的就行) 实例配置选择异构计算(能力较强,性价比高)根据GPU显存需求选择…

金融风控项目-1

文章目录 一. 案例背景介绍二. 代码实现1. 加载数据2. 数据处理3. 查询 三. 业务解读 一. 案例背景介绍 通过对业务数据分析了解信贷业务状况 数据集说明 从开源数据改造而来,基本反映真实业务数据销售,客服可以忽略账单周期,放款日期账单金…

JAVA安全—Shiro反序列化DNS利用链CC利用链AES动态调试

前言 讲了FastJson反序列化的原理和利用链,今天讲一下Shiro的反序列化利用,这个也是目前比较热门的。 原生态反序列化 我们先来复习一下原生态的反序列化,之前也是讲过的,打开我们写过的serialization_demo。代码也很简单&…