[青少年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

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Jay 17

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

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

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

打赏作者

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

抵扣说明:

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

余额充值