NewStarCTF2023 Week3 Reverse方向 题目STL WP

分析

在这里插入图片描述

在这里插入图片描述

代码不多,逻辑挺清楚的。

先用Z3解出V7:

from z3 import *

s = Solver()
v1, v2, v3, v4, v5, v6 = BitVecs('v1 v2 v3 v4 v5 v6', 32)
v7, v8, v9, v10, v11 = BitVecs('v7 v8 v9 v10 v11', 32)

s.add((v1 << 15) ^ v1 == 0x2882D802120E)
s.add((v2 << 15) ^ v2 == 0x28529A05954)
s.add((v3 << 15) ^ v3 == 0x486088C03)
s.add((v4 << 15) ^ v4 == 0xC0FB3B55754)
s.add((v5 << 15) ^ v5 == 0xC2B9B7F8651)
s.add((v6 << 15) ^ v6 == 0xAE83FB054C)
s.add((v7 << 15) ^ v7 == 0x29ABF6DDCB15)
s.add((v8 << 15) ^ v8 == 0x10E261FC807)
s.add((v9 << 15) ^ v9 == 0x2A82FE86D707)
s.add((v10 << 15) ^ v10 == 0xE0CB79A5706)
s.add((v11 << 15) ^ v11 == 0x330560890D06)
if s.check() == sat:
    result = s.model()
    print(result)

可以得到:

enc = [1359286798,84564308,592899,404707156,408356433,22873420,1398229781,35407879,1426413319, 471422726,1711934726]

这里手动调整了一下顺序。

再将数据换成16进制,并分割成44的长度。


enc = [1359286798,84564308,592899,404707156,408356433,22873420,1398229781,35407879,
       1426413319, 471422726,1711934726]
enc2 = []
for i in range(11):
    hex_value = hex(enc[i])[2:]
    padded_hex_value = hex_value.rjust(8, '0')  # 填充到长度为8,左侧补0
    enc2 += [padded_hex_value[k:k+2] for k in range(0,8,2)]
print(enc2)

这里会得到:

[‘51’, ‘05’, ‘12’, ‘0e’, ‘05’, ‘0a’, ‘59’, ‘54’, ‘00’, ‘09’, ‘0c’, ‘03’, ‘18’, ‘1f’, ‘57’, ‘54’, ‘18’, ‘57’, ‘06’, ‘51’, ‘01’, ‘5d’, ‘05’, ‘4c’, ‘53’, ‘57’, ‘4b’, ‘15’, ‘02’, ‘1c’, ‘48’, ‘07’, ‘55’, ‘05’, ‘57’, ‘07’, ‘1c’, ‘19’, ‘57’, ‘06’, ‘66’, ‘0a’, ‘0d’, ‘06’]

因为0x66的ascii是f,结合要做的逆序,0x66应该是在最后一位。

所以再对分割出的每四位做一个逆序

# 将列表分割成长度为4的子列表
sublists = [enc2[i:i+4] for i in range(0, len(enc2), 4)]
# 对每个子列表进行逆序操作
reversed_sublists = [list(reversed(sublist)) for sublist in sublists]
# 将逆序后的子列表合并为一个列表
result_list = [item for sublist in reversed_sublists for item in sublist]
print(result_list)
hex_list = [int(x, 16) for x in result_list]
print(hex_list)

# ['0e', '12', '05', '51', '54', '59', '0a', '05', '03', '0c', '09', '00', '54', '57', '1f', '18', '51', '06', '57', '18', '4c', '05', '5d', '01', '15', '4b', '57', '53', '07', '48', '1c', '02', '07', '57', '05', '55', '06', '57', '19', '1c', '06', '0d', '0a', '66']
# [14, 18, 5, 81, 84, 89, 10, 5, 3, 12, 9, 0, 84, 87, 31, 24, 81, 6, 87, 24, 76, 5, 93, 1, 21, 75, 87, 83, 7, 72, 28, 2, 7, 87, 5, 85, 6, 87, 25, 28, 6, 13, 10, 102]

这样就可以开始异或了。

flag = [0]*44
for i in range(len(hex_list)-1,-1,-1):
    if i == 43:
        flag[i] = 102
    else:
        flag[i] = hex_list[i] ^ flag[i+1]
print(flag)
flag1=[]
for i in range(len(flag)):
    flag1.append(chr(flag[i]))
flag1 = flag1[::-1]
print("".join(flag1))

# flag{b53fc431-eb1f-89da-5bd5-2e1184728a5das}

感觉写的很繁琐。。
看了官方的WP。。
在这里插入图片描述

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

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

相关文章

Linux_安装docker

安装包管理工具yum-utils&#xff0c;并设置docker储存库&#xff08;如果已有&#xff0c;不用安装&#xff09; # 安装包管理工具 sudo yum install -y yum-utils # 安装docker储存库 sudo yum-config-manager \--add-repo \http://mirrors.aliyun.com/docker-ce/linux/cen…

ERP管理系统为何成为制造业的必备工具

ERP管理系统为何成为制造业的必备工具&#xff1f; 全球化和数字化快速发展&#xff0c;制造业面临着越来越多的挑战和机遇。为了提高生产效率、降低成本、优化资源配置&#xff0c;许多制造业企业开始引入ERP管理系统。那么&#xff0c;为何ERP管理系统成为制造业的必备工具呢…

109. 有序链表转化为二叉搜索树

题目 题解 分治。 class Solution:def getMedian(self, left: ListNode, right: ListNode) -> ListNode:找到链表的中间节点slow fast leftwhile fast ! right and fast.next ! right:slow slow.nextfast fast.next.nextreturn slowdef buildTree(self, left: ListNod…

Python爬虫实战(进阶篇)—7获取每日菜价(附完整代码)

文章目录 专栏导读背景前期准备1、网址&#xff1a;2、分析&#xff1a; 请求url、请求方法、请求参数测试一个完整代码写入Excel视频展示不足&#xff1a;结尾 专栏导读 &#x1f525;&#x1f525;本文已收录于《Python基础篇爬虫》 &#x1f251;&#x1f251;本专栏专门针…

问题汇总20231103

文章目录 前言问题汇总1.所有操作系统在CPU层面上是不是都为时间片轮转的形式处理程序&#xff1f;只是任务调度的调度算法不同&#xff1f;那多线程的本质也是时间片吗&#xff1f;只不过很小&#xff1f;2.Mcu和mpu的本质区别3.下载HAL库步骤4.RAM,ROM,SRAM,SDRAM,DDR内存5.编…

Spring事务和事务的传播机制

目录 Spring中事务的实现 MySQL中的事务使用 Spring 编程式事务 TransactionTemplate 编程式事务 TransactionManager编程式事务 Spring声明式事务 Transactional 参数说明 事务因为程序异常捕获不会自动回滚的解决方案 Transactional 原理 Spring 事务隔离级别 Spring…

Apipost 推出IDEA插件一键生成API文档

今天给大家推荐一款IDEA插件&#xff1a;Apipost-Helper-2.0&#xff0c;写完代码IDEA内一键生成API文档&#xff0c;无需安装、打开任何其他软件&#xff1b;写完代码IDEA内一键调试&#xff0c;无需安装、打开任何其他软件&#xff1b;生成API目录树&#xff0c;双击即可快速…

单片机编程原则

多任务编程的概念 方式一&#xff1a;实时操作系统&#xff08;不建议新手使用&#xff09; 方式二 &#xff1a;裸机多任务模型 逻辑多任务的基本原理 把三个任务分别分为一个一个的片段 然后先执行任务一的第一个切片 执行第二个任务的第一个片段 执行第三个任务的第一个片…

How to design a database storage model for water network information system

How to design a database storage model for water network information system 1、领域划分2、基础域2.1、概述2.2、E-R图2.3、SQL脚本 1、领域划分 序号中文名称英文名称代号备注1基础域basea012资产域assertsa023监测域monitora034水权域quotaa045灌溉域irrigationa056排涝…

JVM bash:jmap:未找到命令 解决

如果我们在使用JVM的jmap命令时遇到了"bash: jmap: 未找到命令"的错误&#xff0c;这可能是因为jmap命令没有在系统的可执行路径中。 要解决这个问题&#xff0c;可以尝试以下几种方法&#xff1a; 1. 检查Java安装&#xff1a;确保您已正确安装了Java Development …

数字孪生技术能够为旅游业带来什么新变化?

随着科技的不断发展&#xff0c;数字孪生技术逐渐融入各个行业&#xff0c;为旅游业的高质量发展提供了新的动力和可能性。数字孪生&#xff0c;即对现实世界的精确数字建模&#xff0c;通过实时数据同步、模拟分析&#xff0c;为旅游业带来了诸多创新和改变。 在数字孪生的理…

ES Kibana 简介

ES & Kibana 简介 来源&#xff1a;微信公众号《鲜枣课堂》 1998年9月4日&#xff0c;Google公司在美国硅谷成立。正如大家所知&#xff0c;它是一家做搜索引擎起家的公司。 无独有偶&#xff0c;一位名叫Doug?Cutting的美国工程师&#xff0c;也迷上了搜索引擎。他做了…

3. hdfs概述与高可用原理

简述 HDFS&#xff08;Hadoop Distributed File System&#xff09;是一种Hadoop分布式文件系统&#xff0c;具备高度容错特性&#xff0c;支持高吞吐量数据访问&#xff0c;可以在处理海量数据&#xff08;TB或PB级别以上&#xff09;的同时最大可能的降低成本。 HDFS适用于…

0门槛!用ChatGPT只花1天批量生成300个爆火TikTok视频

目录 1 2让天下没有难做的开发和运维&#xff0c;DevOps终于有了专属大模型 3关于 DevOpsGPT 1 不露脸&#xff0c;不怕视频也能从TikTok赚到钱?在过去30天&#xff0c;有人通过这个方式预计至少获得了超过1万美金的广告分成收益。这些成功账号的共同特点是&#xff0c;所有…

探究多态的原理与实现:虚函数表、动态绑定与抽象类

文章目录 一、多态概念二、多态实现&#xff08;具体&#xff09;2.1 虚函数2.2 虚函数 重写2.3 override关键字 与 final关键字2.4 重载、重写&#xff08;覆盖&#xff09;、重定义&#xff08;隐藏&#xff09;的区别 三、抽象类3.1 概念3.2 实现继承 && 接口继承 四…

通过使用阿里云服务器,搭建Java程序的运行环境

&#x1f4da;&#x1f4da; &#x1f3c5;我是默&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; ​​ &#x1f31f;在这里&#xff0c;我要推荐给大家我的专栏《Linux》。&#x1f3af;&#x1f3af; &#x1f680;无论你是编程小白&#xff0c;还是有一…

ACM练习——第四天

ok&#xff0c;今天又是三节课的一天。 刚刚吃完饭的我一刻也不敢耽误&#xff0c;直接开干&#xff01;&#xff01;&#xff01; 这些题和力扣上的&#xff0c;为了练习数据结构的题是不一样的。 直接上嘴脸 题目 第一次放学 (nowcoder.com)来自牛客网 思路 先看他的输入…

8086与8088

一、8086与8088概述 8088/8086都是16位微处理器&#xff0c;内部运算器和寄存器都是16位的&#xff0c;同样具有20位地址线8088/8086都是由执行单元(EU)和总线接口部件(BIU)两大部分构成指令系统和寻址能力都相同&#xff0c;两种CPU是兼容的8088被称作准十六位的、是紧继8086…

【文件上传】upload-labs 通关

环境准备 靶场upload-labs-env-win-0.1环境windows 靶场描述 靶场攻略 Pass-01 1.上传一句话木马 发现有类型限制 2.上传图片木马 抓包 3.修改后缀 将png修改为php. 成功上传&#xff0c; 4.查找文件地址 5.中国蚁剑连接 6.成功 7.源码分析 function checkFile() {var fi…

深入理解锁

目录 常用锁策略 1.乐观锁 VS 悲观锁 2.轻量级锁 VS 重量级锁 3.自旋锁 VS 挂起等待锁 4.互斥锁 VS 读写锁 5.公平锁 VS 非公平锁 6.可重入锁 VS 可重入锁 CAS ABA问题 Synchronized原理 1. 锁升级/锁膨胀 2.锁消除 3.锁粗化 常用锁策略 1.乐观锁 VS 悲观锁 站在…