[青少年CTF擂台挑战赛 2024 #Round] Misc 1ez_model

2024-03-05 05:12

本文主要是介绍[青少年CTF擂台挑战赛 2024 #Round] Misc 1ez_model,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

[青少年CTF擂台挑战赛 2024 #Round] Misc 1ez_model

题目描述:从Pytorch开始的AI之路

下载附件,是一个pth文件

image-20240304144324322

.pth 文件通常是 PyTorch 模型的权重文件,它包含了模型的参数。要还原(或加载)一个大模型,你需要进行以下几个步骤:

  1. 安装 PyTorch:确保你的环境中安装了 PyTorch。可以通过运行 pip install torch 来安装。

  2. 定义模型结构:在加载 .pth 文件之前,你需要定义与训练时相同的模型结构。这意味着你需要知道模型的架构,并在代码中定义它。

  3. 加载权重:一旦定义了模型结构,你可以使用 torch.load() 方法加载 .pth 文件中的权重,并使用 load_state_dict() 方法将权重应用到你定义的模型结构上。

示例代码:

import torch
import torch.nn as nn# 假设我们有一个简单的模型
class SimpleModel(nn.Module):def __init__(self):super(SimpleModel, self).__init__()self.conv1 = nn.Conv2d(1, 20, 5)self.pool = nn.MaxPool2d(2, 2)self.conv2 = nn.Conv2d(20, 50, 5)self.fc1 = nn.Linear(50 * 4 * 4, 500)self.fc2 = nn.Linear(500, 10)def forward(self, x):x = self.pool(F.relu(self.conv1(x)))x = self.pool(F.relu(self.conv2(x)))x = x.view(-1, 50 * 4 * 4)x = F.relu(self.fc1(x))x = self.fc2(x)return x# 创建模型实例
model = SimpleModel()# 加载预训练的权重
model.load_state_dict(torch.load('path_to_your_model.pth'))# 将模型设置为评估模式
model.eval()

这个例子展示了一个非常简单的模型结构。实际使用时,你需要根据你的 .pth 文件对应的模型架构来定义模型。

请注意,如果 .pth 文件是使用 torch.save() 保存的整个模型(而不仅仅是模型的 state_dict),则可以直接使用 torch.load() 来加载整个模型,无需先定义模型结构。但是,推荐的做法是仅保存和加载模型的 state_dict,因为这种方式更加灵活且与模型代码解耦。

开始做题,我们学彭总的做法,首先看键值

import torch
import torchvision.models as models#loaded_data = torch.load('easy.pth', torch.device('cpu'))    #设置在cpu环境下查询
loaded_data = torch.load('easy.pth')
print(loaded_data.keys())

键中有flag,想办法拿出来。

image-20240304151955751

import torch
import torchvision.models as models#loaded_data = torch.load('easy.pth', torch.device('cpu'))    #设置在cpu环境下查询
loaded_data = torch.load('easy.pth')
hint_value = loaded_data['hint']
print(hint_value)
flag_value = loaded_data['flag']
print(flag_value)

image-20240304152036673

应该是ASCII,直接gpt解码。

第一个tensor解码结果:ZzYyXxAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWw0123456789+/

第二个tensor解码结果:LidUJ3fQM2FVJoxpDwLvDyF3DwpPdwxOEgbQJoxnEgdnJgnojoZ5mF

应该是边表base64,第二个是加密字符串,第一个是表。

image-20240304152329327

这篇关于[青少年CTF擂台挑战赛 2024 #Round] Misc 1ez_model的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/775421

相关文章

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题是由安全生产模拟考试一点通提供,流动式起重机司机证模拟考试题库是根据流动式起重机司机最新版教材,流动式起重机司机大纲整理而成(含2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题参考答案和部分工种参考解析),掌握本资料和学校方法,考试容易。流动式起重机司机考试技

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

高效录音转文字:2024年四大工具精选!

在快节奏的工作生活中,能够快速将录音转换成文字是一项非常实用的能力。特别是在需要记录会议纪要、讲座内容或者是采访素材的时候,一款优秀的在线录音转文字工具能派上大用场。以下推荐几个好用的录音转文字工具! 365在线转文字 直达链接:https://www.pdf365.cn/ 365在线转文字是一款提供在线录音转文字服务的工具,它以其高效、便捷的特点受到用户的青睐。用户无需下载安装任何软件,只

2024网安周今日开幕,亚信安全亮相30城

2024年国家网络安全宣传周今天在广州拉开帷幕。今年网安周继续以“网络安全为人民,网络安全靠人民”为主题。2024年国家网络安全宣传周涵盖了1场开幕式、1场高峰论坛、5个重要活动、15场分论坛/座谈会/闭门会、6个主题日活动和网络安全“六进”活动。亚信安全出席2024年国家网络安全宣传周开幕式和主论坛,并将通过线下宣讲、创意科普、成果展示等多种形式,让广大民众看得懂、记得住安全知识,同时还

Codeforces Round #240 (Div. 2) E分治算法探究1

Codeforces Round #240 (Div. 2) E  http://codeforces.com/contest/415/problem/E 2^n个数,每次操作将其分成2^q份,对于每一份内部的数进行翻转(逆序),每次操作完后输出操作后新序列的逆序对数。 图一:  划分子问题。 图二: 分而治之,=>  合并 。 图三: 回溯:

Codeforces Round #261 (Div. 2)小记

A  XX注意最后输出满足条件,我也不知道为什么写的这么长。 #define X first#define Y secondvector<pair<int , int> > a ;int can(pair<int , int> c){return -1000 <= c.X && c.X <= 1000&& -1000 <= c.Y && c.Y <= 1000 ;}int m

Codeforces Beta Round #47 C凸包 (最终写法)

题意慢慢看。 typedef long long LL ;int cmp(double x){if(fabs(x) < 1e-8) return 0 ;return x > 0 ? 1 : -1 ;}struct point{double x , y ;point(){}point(double _x , double _y):x(_x) , y(_y){}point op

Codeforces Round #113 (Div. 2) B 判断多边形是否在凸包内

题目点击打开链接 凸多边形A, 多边形B, 判断B是否严格在A内。  注意AB有重点 。  将A,B上的点合在一起求凸包,如果凸包上的点是B的某个点,则B肯定不在A内。 或者说B上的某点在凸包的边上则也说明B不严格在A里面。 这个处理有个巧妙的方法,只需在求凸包的时候, <=  改成< 也就是说凸包一条边上的所有点都重复点都记录在凸包里面了。 另外不能去重点。 int

2024/9/8 c++ smart

1.通过自己编写的class来实现unique_ptr指针的功能 #include <iostream> using namespace std; template<class T> class unique_ptr { public:         //无参构造函数         unique_ptr();         //有参构造函数         unique_ptr(