2024蓝桥杯CTF--逆向

蓝桥杯付费CT--逆向

    • 题目:RC4
    • 题目:happytime
    • 总结:

题目:RC4

  1. 先查壳,无壳,并且是32位:

  2. 用32位的ida打开,直接定位到main函数:

  3. 重点关注sub_401005函数,这个应该就是加密函数无疑:

  4. 典型的RC4加密无疑,这里有两种方法进行逆向,第一种:可以在main函数中第52行打上断点,运行到这里后直接查看内存中的V5,即位flag。第二种:将需要的信息提取出来key=gamelab@,使用脚本进行解密:

  5. 第一种:

  6. 第二种:

#RC4加密
def rc4(key, ciphertext):# 初始化S盒sbox = list(range(256))j = 0for i in range(256):j = (j + sbox[i] + key[i % len(key)]) % 256sbox[i], sbox[j] = sbox[j], sbox[i]# 生成密钥流i = 0j = 0keystream = []for _ in range(len(ciphertext)):i = (i + 1) % 256j = (j + sbox[i]) % 256sbox[i], sbox[j] = sbox[j], sbox[i]k = sbox[(sbox[i] + sbox[j]) % 256]keystream.append(k)# print(keystream)# 解密密文plaintext = []for i in range(len(ciphertext)):m = ciphertext[i] ^ keystream[i]plaintext.append(m)print(plaintext)# 将明文转换为字符串return ''.join([chr(p) for p in plaintext])# 测试
key = b"gamelab@"
ciphertext =[0xB6,0x42,0xB7,0xFC,0xF0,0xA2,0x5E,0xA9,0x3D,0x29,0x36,0x1F,0x54,0x29,
0x72,0xA8,0x63,0x32,0xF2,0x44,0x8B,0x85,0xEC,0xD,0xAD,0x3F,0x93,0xA3,0x92,
0x74,0x81,0x65,0x69,0xEC,0xE4,0x39,0x85,0xA9,0xCA,0xAF,0xB2,0xC6]
# for i in ciphertext:
#     print(chr(i),end="")
plaintext = rc4(key, ciphertext)
print(plaintext)
#flag{12601b2b-2f1e-468a-ae43-92391ff76ef3}
  1. 两个flag一样,说明正确。

题目:happytime

  1. 同样的流程,查壳无,64位的.elf程序,使用ida打开,直接进入main函数:

  2. printf输出提示信息Let’s have a drink,pay your answer(flag):,read在键盘读取flag输入,重要的关键函数是cry加密函数,接受v5和输入的flag,这里的11应该是flag被分割成了11组,最后一个循环比较加密后的flag和V6,刚好和上面v6数组对应:

  3. 根据函数的特征,可以判定这是XXTEA加密无疑,找到其中的DELTA,密文(main函数中的v6),和key(前面main函数的V5),即可编写脚本解密(输出的时候注意大小端序):

#include <stdbool.h>
#include <stdio.h>
#define MX (((z >> 5) ^ (y << 2)) + ((y >> 3) ^ (z << 4)) ^ (sum ^ y) + (k[(p & 3) ^ e] ^ z))
bool btea(unsigned int *v, int n, unsigned int *k)
{unsigned int z = v[n - 1], y = v[0], sum = 0, e, DELTA = 0x61C88647;unsigned int p, q;if (n > 1){ /* enCoding Part */q = 415 / n + 114;while (q-- > 0){sum += DELTA;e = (sum >> 2) & 3;for (p = 0; p < (n - 1); p++){y = v[p + 1];z = v[p] += MX;}y = v[0];z = v[n - 1] += MX;}return 0;}else if (n < -1){ /* Decoding Part */n = -n;q = 415 / n + 114;sum = -q * DELTA;while (sum != 0){e = (sum >> 2) & 3;for (p = n - 1; p > 0; p--){z = v[p - 1];y = v[p] -= MX;}z = v[n - 1];y = v[0] -= MX;sum += DELTA;}return 0;}return 1;
}int main()
{unsigned int v[11] = {0x480AC20C, 0xCE9037F2, 0x8C212018, 0xE92A18D, 0xA4035274, 0x2473AAB1, 0xA9EFDB58, 0xA52CC5C8, 0xE432CB51, 0xD04E9223, 0x6FD07093}, key[4] = {0x79696755, 0x67346F6C, 0x69231231, 0x5F674231};int n = 11;       // n为要加密的数据个数btea(v, -n, key); // 取正为加密,取负为解密char *p = (char *)v;for (int i = 0; i < 44; i++){printf("%c", *p);p++;}return 0;
}
//flag{efccf8f0-0c97-12ec-82e0-0c9d9242e335}
  1. 最后输入验证flag成功!!!

总结:

  1. 蓝桥杯CTF(付费CTF),逆向题难度签到题难度,题目质量。。。。,也难怪圈。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SDM模型——建模用户长短期兴趣的Match模型

1. 引言 SDM模型(Sequential Deep Matching Model)是阿里团队在2019年CIKM的一篇paper。模型属于序列召回模型&#xff0c;研究的是如何通过用户的历史行为序列去学习到用户的丰富兴趣。 SDM模型把用户的历史序列根据交互的时间分成了短期和长期两类&#xff0c;然后从短期会…

构建NodeJS库--前端项目的打包发布

1. 前言 学习如何打包发布前端项目&#xff0c;需要学习以下相关知识&#xff1a; package.json 如何初始化配置&#xff0c;以及学习npm配置项&#xff1b; 模块类型type配置&#xff0c; 这是nodejs的package.json的配置main 入口文件的配置 webpack 是一个用于现代 JavaSc…

基于java+springboot+vue实现的个人博客系统(文末源码+Lw)200

摘 要 随着国内市场经济这几十年来的蓬勃发展&#xff0c;突然遇到了从国外传入国内的互联网技术&#xff0c;互联网产业从开始的群众不信任&#xff0c;到现在的离不开&#xff0c;中间经历了很多挫折。本次开发的个人博客系统&#xff0c;有管理员&#xff0c;用户&#xf…

excel一列同乘同一个数

excel一列同乘同一个数 第一种方法&#xff08;excel本身功能&#xff09; 在空白区域输入要乘以的数&#xff0c;比如0.5 右键选择复制 选中需要乘以的单元格&#xff0c;选择性粘贴 点击乘&#xff0c;选择确定 删除0.5后也不会改变值 第二种方法&#xff08;方方格子…

HODL、FUD、FOMO 等其他比特币俚语是什么意思?

作者&#xff1a;Paxful Team 1、FOMO&#xff08;惧怕错失机会&#xff09; FOMO 是惧怕错失机会的缩写&#xff0c;可用于日常生活。它指的是当其他人都在谈论比特币时&#xff0c;产生的购买比特币的紧迫感。 2、Shill&#xff08;不断推广吹捧&#xff09; Shilling 是指…

上传jar到github仓库,作为maven依赖存储库

记录上传maven依赖包到github仓库问题 利用GitHubPackages作为依赖的存储库踩坑1 仓库地址问题踩坑2 Personal access tokens正确姿势一、创建一个普通仓库&#xff0c;比如我这里是fork的腾讯Shadow到本地。地址是&#xff1a;https://github.com/dhs964057117/Shadow二、生成…

[C++ QT项目实战]----C++ QT系统实现多线程通信

前言 在C QT中&#xff0c;多线程通信原理主要涉及到信号与槽机制和事件循环机制。 1、信号与槽机制&#xff1a; 在QT中&#xff0c;信号与槽是一种用于对象间通信的机制。对象可以通过发送信号来通知其他对象&#xff0c;其他对象通过连接槽来接收信号并进行相应的处…

39岁TVB靓仔小生自曝恋情,曾沦为洗车工如今半年赚足7位数

39岁高钧贤自从2005年参加香港先生选举夺冠后&#xff0c;之后加入TVB拍摄过多套电视剧集&#xff0c;最近更有份参与《逆天奇案2》&#xff0c;日前他回到TVB电视城一厂与冯盈盈宣传剧集&#xff0c;更随即拍摄短片纪录放在网上分享&#xff0c;意外曝光TVB餐厅餐单&#xff0…

MFRC50001T 封装SOP-32 高性能非接触式读写芯片

MFRC50001T是由NXP Semiconductors&#xff08;恩智浦半导体&#xff09;生产的一款高性能非接触式读写芯片。这款芯片主要针对13.56 MHz频段的RFID&#xff08;无线射频识别&#xff09;和MIFARE Classic协议&#xff0c;支持ISO/IEC 14443 Type A标准的多层应用。MFRC50001T芯…

pve(Proxmox VE)安装i225v网卡驱动

配置pve源 备份原来的源 mv /etc/apt/sources.list /etc/apt/sources.list.bak打开文件 vi /etc/apt/sources.list将以下内容粘贴进去 deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmwaredeb https://mirrors.tuna.tsing…

yolov5中的C3、yolov8中的C2f的【全称】和【代码】

文章目录 yolov5的C3全称yolov8的C2f全称 yolov5的C3全称 点击可找到C3模块然后查看全称&#xff1a;https://github.com/ultralytics/yolov5/blob/master/models/common.py全称为&#xff1a;CSP Bottleneck with 3 convolutions C3模块代码 class C3(nn.Module):# CSP Bott…

AI大模型探索之路-训练篇5:大语言模型预训练数据准备-词元化

系列文章目录&#x1f6a9; AI大模型探索之路-训练篇1&#xff1a;大语言模型微调基础认知 AI大模型探索之路-训练篇2&#xff1a;大语言模型预训练基础认知 AI大模型探索之路-训练篇3&#xff1a;大语言模型全景解读 AI大模型探索之路-训练篇4&#xff1a;大语言模型训练数据…

DML触发器的创建

目录 触发器的创建 DML触发器的创建 语句级 DML 触发器的创建 创建触发器&#xff0c;当对emp数据表进行添加记录、更新记录和删除记录的时候&#xff0c;判断是否是工作时间段&#xff0c;如果不是工作时间段&#xff0c;不允许执行 在数据表 dept 上创建触发器&#xff…

linux支持vGPU方案

1&#xff0c;查询gpu型号&#xff1a;lspci | grep "NVIDIA\|VGA" PCI Devices 2&#xff0c;下载驱动 官方驱动 | NVIDIA 3&#xff0c;安装 sudo sh NVIDIA-Linux-x86_64-440.118.02.run -no-x-check -no-nouveau-check -no-opengl-files参数说明&#xff1a; …

面试:finalize

一、概述 将资源释放和清理放在finalize方法中非常不好&#xff0c;非常影响性能&#xff0c;严重时甚至会引起OOM&#xff08;Out Of Memory&#xff09;&#xff0c;从Java9开始就被标注为Deprecated&#xff0c;不建议被使用了。 二、两个重要的队列 1、unfinalized 队列 当…

面向对象开发技术(第三周)

回顾 上一堂课主要学习了面向对象编程与非面向对象编程&#xff08;面向功能、过程编程&#xff09;&#xff0c;本节课就重点来看看面向对象编程中的一个具体思想——抽象 面向对象编程的特性&#xff1a;1、封装性 2、继承性 3、多态性 封装&#xff1a;意味着提供服务接口…

基于自注意力机制的长短期记忆神经网络(LSTM-SelfAttention)的回归预测

提示&#xff1a;MATLAB版本需要R2023a以上 基于自注意力机制的长短期记忆神经网络&#xff08;LSTM-SelfAttention&#xff09;是一种用于时序数据预测的模型。这个模型结合了两个不同的结构&#xff0c;即长短期记忆网络&#xff08;LSTM&#xff09;和自注意力机制&#xff…

备考2024年小学生古诗文大会:做做10道历年真题和知识点(持续)

根据往年的安排&#xff0c;2024年上海市小学生古诗文大会预计还有一个月就将启动。我们继续来随机看10道往年的上海小学生古诗文大会真题&#xff0c;这些题目来自我去重、合并后的1700在线题库&#xff0c;每道题我都提供了参考答案和独家解析。 根据往期的经验&#xff0c;只…

【C++】类和对象⑤(static成员 | 友元 | 内部类 | 匿名对象)

&#x1f525;个人主页&#xff1a;Forcible Bug Maker &#x1f525;专栏&#xff1a;C 目录 前言 static静态成员 友元 友元函数 友元类 内部类 匿名对象 结语 前言 本篇主要内容&#xff1a;类和对象的一些知识点补充&#xff0c;包括static静态成员&#xff0c;友…