攻防世界GFSJ1229 Three

新手小白----攻防世界--难度3----challenge_how_many_Vigenère 本题的难点在于需要通过维基利亚的密文来暴力破解秘钥从而才能进行下步操作,对于密钥破解这块之后会写一篇博客总结的。 阅读详情
AI摘要

该博客围绕攻防世界GFSJ1229 Three题目展开,介绍解题过程。先下载三个压缩包和python程序,解压A.zip,根据Three.py破解C.zip密码,再用密码解压C.zip。利用A.txt和C.txt中的A0、X0、Y0等相关值,依据公式A0*X0+B0=Y0逆向计算出B0,最终得出flag。还解释了多方加密原理。

​

题目编号:GFSJ1229

解题过程

1. 附件下载是三个压缩包A.zip B.zip C.zip和一个python程序Three.py


2. A.zip可以直接解压出来,内容如下:

```
'2022-08-27 20:16:04.246131' Func A0*X0+B0
'2022-08-27 20:16:05.116859' Read_Data A0.txt->A0(28829613228241459)
'2022-08-27 20:16:06.097964' Secret_Share A0
'2022-08-27 20:16:07.022455' Get A00(200254991086689) A01(200241552690281)
'2022-08-27 20:16:07.925862' Get X00(200058430391504) X01(200401773940794)
'2022-08-27 20:16:09.077771' Mul_loc_compute A0,X0->C00
'2022-08-27 20:16:10.764928' RGet C02(924422050091355025836012334663090)
'2022-08-27 20:16:11.213530' ReShare C00(random mask is 507412160912)
'2022-08-27 20:16:12.153062' Get B00(199957680670222) B01(200362172648094)
'2022-08-27 20:16:13.100727' Add_loc_compute C00,B00->Y00
'2022-08-27 20:16:13.281906' ReShare Y00(random mask is -1008362525723)
'2022-08-27 20:16:14.017485' RGet Y02(924422050091362838179268571917871)
'2022-08-27 20:16:17.000001' Open Y00
'2022-08-27 20:16:17.000101' RGet Y01(12163251699969281466186532960410)
'2022-08-27 20:16:17.000299' Cyberloafing!!
'2022-08-27 20:16:17.004194' ReBuild Y0
'2022-08-27 20:16:17.013270' Save_Data

```
3. B.zip 和C.zip有密码,查看Three.py,代码加了注释后如下:


```Python
import datetime

import numpy as np

  

# 协议类,用于处理多方参与的加密计算

class Protocol:

def __init__(self, party_num):

# 初始化协议类,指定当前参与方编号 (party_num: 0, 1, 或 2)

self.pn = party_num # 参与方编号 (party_num: 0, 1, 2)

  

def Read_Data(self, path):

# 读取数据文件中的内容,尝试将其转换为数值(整数或浮点数)

data = open(path).readline().strip() # 从文件中读取一行数据并去除首尾空格

try:

if '.' in data:

data = float(data) # 如果数据包含小数点,则转换为浮点数

else:

data = int(data) # 否则,转换为整数

except:

# 如果转换失败,打印错误信息并退出程序

print('No number')

exit(-1)

return data # 返回读取的数据

  

def Get(self, x1, x2):

# 获取两个秘密共享的值 (函数未实现)

pass

攻防世界 level3 1.题目 2.IDA分析 3.流程分析 流程很简单,直接输入一串字符,然后结束。从IDA反汇编成C程序代码看,read方法这里存在明显的栈溢出。但这道题的真正难点在于,程序本身没有可用的函数(system函数),也没有可用的函数参数(“/bin/sh”)。也没有更多的输入点给我们利用。但是题目给了我们一个动态库,意思很明显,就是利用动态库的方法和参数。 首先,使用 strings -at x libc_32.so.6 | grep bin/sh 查看动态库是否存在我们需要的字... 阅读详情

相关推荐

攻防世界———MISC 高手区题解

目录 1,base64stego 2,easycap 3,Avatar 4,What-is-this 5,签到题 6,Training-Stegano-1 7,Excaliflag 8,Get-the-key.txt 9,glance-50 10,4-2 11,misc1 12,embarrass 13,肥宅快乐题 14,小小的PDF 至此 我在攻防世界中已经 遇到...

小锤队长的博客 2万+

3天干完6个月的活,Claude把模型搬上AMD

一条挺刺激的消息:Anthropic 给投资人的材料里有一张幻灯片,写着它的 Claude Mythos Preview 只花了大约​,就摸清了怎么让另一个 Claude 模型在 AMD 的 MI355X 上跑起来。同一处还写了个对照数字:过去给一块新芯片做推理适配,通常要几十名工程师、​。3 天对 6 个月,这个比值太扎眼,当天中文互联网上就冒出一堆「英伟达的护城河塌了」的说法。我把能翻到的材料都翻了一遍,越看越觉得,塌掉的那一小块是真的,可塌的位置和很多人想的不一样。

DeepPing,日更,陪你聪明看世界。 438

【网络安全 | CTF】unserialize3解题详析(php序列化反序列化实例讲解)

在 PHP 中,可以使用 serialize() 函数将对象序列化为字符串,然后保存到文件或传输到其他应用程序中。在 PHP 中,可以使用 unserialize() 函数将序列化后的字符串还原为原始的对象或数据,然后进行处理。对象被序列化并存储为字符串后,如果再次反序列化该字符串并尝试重建相应的对象时,PHP 就会自动调用该对象的。则是将序列化后的数据重新转换为对象、数据结构或变量的过程,以便在程序中进行操作或处理。在反序列化对象时自动调用,用于初始化对象的属性等操作。的对象,该对象有一个属性。

等风来 6994

如何处理动态语言(Python / JS)的“隐形”调用链?

本文揭示动态语言(Python/JS)中静态AST解析导致调用链“断链”的核心问题,提出通过运行时追踪补全图谱的解决方案。基于Code-Graph-RAG的cgr trace机制,分别利用pytest插件与V8 Profiler捕获真实调用路径,将动态边合并至静态图谱,并在权重体系中提升动态边优先级。实践表明,该方法可显著提升图谱覆盖率,实现“结构+行为”双视角理解代码,为MCP与Rerank系统提供可靠支持。

xianyinsuifeng的博客 421

逆向拆解Android车机:VehicleHal如何通过HIDL与CarService通信?

本文深入剖析了Android Automotive OS中VehicleHal与CarService通过HIDL进行通信的底层机制。从逆向工程视角出发,详细介绍了如何捕获和分析HIDL调用日志,解析关键属性数据结构,并演示了利用SocketComm工具进行恶意属性注入攻击的实战路径,为车机系统安全评估提供了技术参考。

soda5的博客 722

开源实战 | 基于SolidWorks与Matlab的并联索驱机器人轨迹规划全流程

本文详细介绍了基于SolidWorks与Matlab的并联索驱机器人轨迹规划全流程,涵盖从基础概念到实战技巧的各个环节。通过SolidWorks建模、Matlab运动学实现及轨迹优化策略,展示了如何实现高精度轨迹规划,适用于摄影、医疗等领域的机器人应用。

weixin_28331555的博客 405

ICCV 2025 | 哈工大、清华等提出首个双曲学习框架:HLFormer,革新局部相关视频检索

离原点越远,代表的语义越具体(部分)。现有方法大多在传统的欧几里得空间中对视频和文本进行建模,但这往往会导致对视频内在层次结构的错误表示,从而影响检索的准确性。通过UMAP对学习到的帧嵌入进行可视化(如下图),可以观察到,来自同一时刻的视频帧在嵌入空间中聚集在一起,清晰地展示了模型对时序关系的捕捉能力。下图的双曲空间可视化进一步证实了模型的层次建模能力:离原点越近的点,代表的语义层级越高、粒度越粗糙,反之亦然。:既然文本查询描述的是视频的一部分,那么在几何表示上,文本的嵌入向量应该从属于视频的嵌入向量。

我爱计算机视觉 1084

RAGFlow + GraphRAG+ 知识图谱 + QwQ32B探索实践

RagFlow 是一款开源的 RAG(Retrieval-Augmented Generation)引擎,专注于深度文档理解,能够助力企业及个人构建高效的 RAG 工作流程。借助大语言模型(LLM),它可以精准处理各种复杂格式的数据,为用户提供可靠的问答服务,并附上详实的引用依据。

技术引领业务创新 8万+

达摩院高清人像美肤模型ABPN的深入解析及编程实现

本文深入解析了达摩院高清人像美肤模型ABPN的原理,并提供了相应的源代码实现。ABPN模型通过自适应的反投影网络,有效地实现了人像图像的美肤处理。通过进一步的研究和优化,ABPN模型有望在人像美肤领域发挥更大的作用。低频特征提取器用于提取输入图像的低频信息,而反投影网络则负责将低频信息与原始图像结合,生成美肤后的输出图像。通过将输入图像送入ABPN模型,即可得到经过美肤处理后的输出图像。通过对输入图像进行美肤处理,可以有效地去除皮肤上的瑕疵和噪点,提升图像质量和美感。

TechPulseZ的博客 712

八、ILI2511 初版调试

8.1 TP成品过程 TP厂在制造TP过程中会经过FPC、FOG和Model三个阶段。 FPC: 将IC做在FPC上面; FOG: 将FPC与sensor 绑定; Model:FOG阶段后,贴上CG(cover glass)。 经过上面三个阶段后,将会拿到没有烧录固件的TP模组。这个时候触摸TP,并不能上报触摸数据,需要对TP模组烧录固件(执行程序)后才会有TP有触摸数据。 8.2 源码编译固件与工具生成固件 我们可以通过以下两种方式获得固件 1)由奕力原厂直接通过源码,进行编...

qq_34343637的博客 3692

【AUTOSAR-IpduM】-2.2-创建并配置一个接收RX的(Multiplexed-I-PDU)多路复用

案列背景: 在CFG中配置一个发送TX的(Multiplexed-I-PDU)多路复用Frame。 目录 1 在Arxml中创建一个发送的多路复用Frame 2 CFG导入带多路复用Frame的ARXML 2.1 CFG中提示的错误Error 2.2 如何解决CFG中提示的错误Error 3 结尾 <--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> <--返回「个人博客」首页--&g..

「汽车电子助手」的博客 1571

【WorkBuddy专栏68】HY3绕路部署vsDS4直击根因——一次真实踩坑揭露两个AI模型的推理差距

【WorkBuddy专栏68】HY3绕路部署vsDS4直击根因——一次真实踩坑揭露两个AI模型的推理差距

AI人人懂 566

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: CTF-希尔加解密
下一篇: 攻防世界GFSJ1202 了不起的盖茨比
铭记北宸
博客等级 码龄18年 289粉丝 148原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铭记北宸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值