网络安全之CTF-Misc&取证&OSINT全解

5个4000比特大状态置换算法的设计与分析 下面是 5 个概念性、实验性的 4000 位可逆置换设计。它们都保证是双射,但未经过密码分析,不可直接用于生产系统。风格分别覆盖:三维 SPN、Feistel、可逆元胞自动机、ARX、宽轨迹/Keccak 式结构。 这 5 个设计分别代表了 SPN、Feistel、元胞自动机、ARX、宽轨迹 Keccak 五种不同风格,覆盖了主流大状态置换的构造思路。再次强调:它们只是实验性概念,若要用于实际协议,必须经过严格安全性分析。 阅读详情

Misc

签到&签退

公众号发送信息获取flag

问卷

回答问卷得flag

芙宁娜的图片

随波逐流扫一下图片,在RGB通道发现key

key:H&N2025

看txt

+++++ +++[- >++++ ++++< ]>+++ +++++ +++++ ++.<+ +++++ [->-- ----< ]>--- --.<+ +++++ [->++ ++++< ]>+++ +.++. ++++. <+++[ ->--- <]>-- ---.< +++++ ++[-> +++++ ++<]> ++++. <++++ +[->- ----< ]>--- ----- -.<++ ++++[ ->--- ---<] >---- -.<++ +++++ +[->+ +++++ ++<]> +++++ .<+++ +[->- ---<] >---- --.<+ ++++[ ->+++ ++<]> +.<++ ++[-> ----< ]>--- -.<++ +[->+ ++<]> ++.-. ----- ---.+ +++++ +.--- --.<+ +++[- >++++ <]>+. <++++ [->-- --<]> ----- .<+++ [->++ +<]>+ ++.<+ +++[- >---- <]>-- .<+++ +[->+ +++<] >++++ +.<++ +[->- --<]> ---.- --.-- ----. <++++ +[->- ----< ]>--- .<+++ +++[- >++++ ++<]> +++++ +++.+ +++++ .---- -.--- ----- .<+++ [->++ +<]>+ +++.< +++++ +++[- >---- ----< ]>--- ----- ----- -.<++ +++++ +[->+ +++++ ++<]> +++++ +++++ ++.<+ +++[- >---- <]>-- --.<+ +++[- >++++ <]>+. +++.- ---.- ----- --.<+ +++++ +[->- ----- -<]>- ----- --.<+ +++++ ++[-> +++++ +++<] >++++ +++++ +++++ +.<

brainfuck解密

O&NPTF{Y0u_yepognizeq_the_Couphu's_psog.}

维吉尼亚解密

H&NCTF{Y0u_recognised_the_Chuchu's_plot.}

星辉骑士

解压docx文件

在星辉骑士\word\media目录下找到flag.zip文件,解压出来

垃圾邮件解密

spammimic - hide a message in spam

999.txt为flag

H&NCTF{0231265452-you-kn*w-spanmimic}

乱成一锅粥了

下载流量包,导出所有zip

对zip中的txt文件名字进行解密

经过几个尝试发现命名规则为01-50每个数的MD5加密

我重新还原原本的txt序列名称

import os
import hashlib

def generate_md5_dict():
    """生成数字01-50到其MD5值的映射字典"""
    md5_dict = {}
    for i in range(1, 51):
        # 格式化为两位数,前面补零
        num_str = f"{i:02d}"
        # 计算MD5值
        md5_hash = hashlib.md5(num_str.encode('utf-8')).hexdigest()
        md5_dict[md5_hash] = num_str
    return md5_dict

def rename_files(folder_path):
    """重命名文件从MD5值回数字"""
    md5_dict = generate_md5_dict()
    
    # 遍历文件夹中的所有文件
    for filename in os.listdir(folder_path):
        if filename.endswith('.txt'):
            # 去掉.txt后缀获取MD5部分
            md5_part = os.path.splitext(filename)[0]
            
            if md5_part in md5_dict:
                original_num = md5_dict[md5_part]
                new_filename = f"{original_num}.txt"
                old_path = os.path.join(folder_path, filename)
                new_path = os.path.join(folder_path, new_filename)
                
                # 重命名文件
                os.rename(old_path, new_path)
                print(f"重命名: {filename} -> {new_filename}")
            else:
                print(f"跳过: {filename} (未找到对应的数字)")

# 使用示例
folder_path = ""  # 替换为你的文件夹路径
rename_files(folder_path)

发现为iV开头的base64,即png图片的base64的形式

继续还原

import os
import base64

def read_and_combine_txt_to_image(folder_path, output_image_path):
    # 初始化空字符串用于存储拼接内容
    combined_content = ""
    
    # 按顺序读取01.txt到50.txt
    for i in range(1, 51):
        # 生成文件名,保证两位数字格式
        filename = f"{i:02d}.txt"
        file_path = os.path.join(folder_path, filename)
        
        try:
            with open(file_path, 'r', encoding='utf-8') as file:
                combined_content += file.read()
        except FileNotFoundError:
            print(f"警告: 文件 {filename} 未找到,已跳过")
        except Exception as e:
            print(f"读取文件 {filename} 时出错: {str(e)}")
    
    if not combined_content:
        print("错误: 没有读取到任何文件内容")
        return False
    
    try:
        # 将拼接后的内容解码为二进制数据
        image_data = base64.b64decode(combined_content)
        
        # 将二进制数据写入图片文件
        with open(output_image_path, 'wb') as image_file:
            image_file.write(image_data)
        
        print(f"成功将拼接内容转换为图片并保存到: {output_image_path}")
        return True
    except base64.binascii.Error:
        print("错误: 拼接的内容不是有效的Base64编码")
    except Exception as e:
        print(f"转换或保存图片时出错: {str(e)}")
    
    return False

# 使用示例
folder_path = ""  # 替换为你的txt文件所在文件夹路径
output_image_path = "output_image.png"  # 输出的图片路径

read_and_combine_txt_to_image(folder_path, output_image_path)

得到二维码碎片

拼个图片扫码即可

H&NCTF{This_wont_be_difficult_for_you}

谁动了黑线?

查看csv

最后一列tx_hash是base58,解密一下

import csv
import base58

def decode_and_replace_base58_in_csv(csv_file_path, output_file_path=None):
    """
    读取CSV文件,对最后一列(除第一行外)进行Base58解密,并用解密结果替换原始数据
    
    参数:
        csv_file_path (str): 原始CSV文件路径
        output_file_path (str): 输出文件路径(如果为None则覆盖原文件)
        
    返回:
        list: 包含所有行的列表,每行最后一列已被解密(如果成功)
    """
    all_rows = []
    
    try:
        with open(csv_file_path, mode='r', encoding='utf-8') as file:
            reader = csv.reader(file)
            
            # 读取标题行
            headers = next(reader, None)
            if headers is not None:
                all_rows.append(headers)
            
            for row in reader:
                if not row:  # 跳过空行
                    continue
                    
                original_value = row[-1].strip()  # 获取最后一列数据并去除空白
                
                try:
                    # 尝试Base58解码
                    decoded = base58.b58decode(original_value).decode('utf-8')
                    row[-1] = decoded  # 用解密结果替换原始数据
                    print(f"行 {reader.line_num}: 解密成功 {original_value} -> {decoded}")
                except Exception as e:
                    print(f"行 {reader.line_num}: 解密失败 - {original_value} - 错误: {str(e)}")
                    # 解密失败则保留原始数据
                
                all_rows.append(row)
                
        # 确定输出文件路径
        output_path = output_file_path if output_file_path else csv_file_path
        
        # 写入更新后的数据
        with open(output_path, mode='w', encoding='utf-8', newline='') as file:
            writer = csv.writer(file)
            writer.writerows(all_rows)
            
        print(f"\n文件已保存到: {output_path}")
                    
    except FileNotFoundError:
        print(f"错误: 文件 {csv_file_path} 未找到")
    except Exception as e:
        print(f"处理文件时发生错误: {str(e)}")
    
    return all_rows

# 使用示例
if __name__ == "__main__":
    # 替换为你的CSV文件路径
    input_csv = "your_file.csv"
    output_csv = "decoded_file.csv"  # 设为None则会覆盖原文件
    
    # 调用函数处理CSV文件
    updated_data = decode_and_replace_base58_in_csv(input_csv, output_csv)
    
    # 打印前几行结果作为示例
    print("\n前几行解密结果示例:")
    for i, row in enumerate(updated_data[:5]):
        print(f"行 {i+1}: {row}")

排序发现类似明文格式

我们编写代码,读取csv表的最后一列(除了第一行),读取第9位到第12位帮我把带有小写字母或者下划线_数据提取出来,最后全部拼起来

import csv

def process_csv(filename):
    result = []
    
    with open(filename, 'r', newline='', encoding='utf-8') as csvfile:
        reader = csv.reader(csvfile)
        
        # 跳过第一行(标题行)
        next(reader, None)
        
        for row in reader:
            if not row:  # 跳过空行
                continue
                
            # 获取最后一列
            last_column = row[-1]
            
            # 检查长度是否足够
            if len(last_column) >= 12:
                # 提取第9到12位(Python中索引从0开始,所以是8:12)
                substring = last_column[8:12]
                
                # 检查是否包含小写字母或下划线
                if any(c.islower() or c == '_' for c in substring):
                    result.append(substring)
    
    # 将所有符合条件的子字符串拼接起来
    final_string = ''.join(result)
    return final_string

# 使用示例
filename = 'decoded_file.csv'  # 替换为你的CSV文件名
output = process_csv(filename)
print("拼接结果:", output)

#拼接结果: little_dog_is_Aomr!!
H&NCTF{little_dog_is_Aomr!!}

Forensics

ez_game

下载镜像,火眼挂载

有个readme.txt

这次是个简单的取证小游戏
1.我藏了一个电脑,它的密码是很简单的弱密码,但是你找的到吗
2.图片没有隐写,但是它凭什么可以成为key,好难猜啊
3.如果你找的了flag,注意flag的内容全部大写

藏了一个电脑,我索引到一个hhh文件

有分别找到key.jpg和一个加密zip

全部导出

根据提示:图片没有隐写,但是它凭什么可以成为key

参考西湖论剑2025,图片可以作为密钥文件进行VC镜像挂载

我们挂载hhh文件

得到一个虚拟机

我们继续挂载vmdk

查看历史命令

有个hhh文件,且最近访问过

导出

010查看存在额外字符,猜测为零宽隐写

shift

类似上述历史命令

echo "key(shift):`1234567890-=" >> hhh.txt

根据提示1:密码是很简单的弱密码

题目给了

·123456789-=

通过shift反转得到

~!@#$%^&*()_+     //即为zip密码

解压之前得到的zip,得到flag.drawio文件

加载文件

H&NCTF{YOU_R_SSSO_COOL}

OSINT

Chasing Freedom 1

图片属性得到时间0503

图片定位到蓝眼泪观景台,开始对周围一通爆搜一个一个试

H&NCTF{0503-丁鼻垄}

Chasing Freedom 2

因为我是先写第3题,后写第二题的,发现时间差不多,而且是一个灯塔,那就试试去搜索东庠岛灯塔,还真找到一模一样的

H&NCTF{0504-东庠岛灯塔}

Chasing Freedom 3

拖进随波逐流找到时间

查看图片发现岚庠渡,去搜索

然后发现岚庠渡只有1,2,3号,去试试H&NCTF{0504-东庠码头-岚庠渡1号},全都试过了,发现不对,

H&NCTF{0504-流水码头-岚庠渡3号}

猜猜我在哪儿?

提示从太原出发到西安lm研发中心的路途

拍摄取景,应该是在高铁上

差不多定位到这

根据朝向,和四周地形进一步定位

试一下周围地点最终得到

flag{永济市张营镇下吴村}
详解大模型微调数据集构建方法(持续更新) 本文详细介绍了大模型微调数据集构建方法,希望能对学习大模型的同学们有所帮助。 文章目录 1. 前言 2. 微调数据集构建方法 2.1 方法一 2.2 方法二 2.3 方法三 2.4 方法四 2.5 方法五 阅读详情

相关推荐

Simulink机电仿真避坑指南:如何用MATLAB解决液压系统建模的3大典型问题

本文针对液压系统建模在Simulink动态仿真中常见的三大难题——参数物理意义缺失、模型收敛性差及性能优化瓶颈,提供了专业的MATLAB解决方案。文章详细阐述了如何从物理参数推导仿真模型、破解代数环与刚性系统问题,并分享了模型降阶与加速技巧,旨在帮助工程师构建精确高效的机电系统仿真模型。

o9p0q1的博客 295

Bugku CTF [+-<>](Crypto)

0、查看题目描述: +++++ +++++ [->++ +++++ +++<] >++.+ +++++ .<+++ [->-- -<]>- -.+++ +++.< ++++[ ->+++ +<]>+ +++.< +++++ +++[- >---- ----< ]>--- ----- ---.< +++++ ++[-> +++++ ++<]> +++.< +++++ +[->- --

ChaoYue_miku的博客 704

拆解维修指南:当你的大扭矩电动扳手‘罢工’,如何自己动手排查行星齿轮与谐波传动故障?

本文详细解析了大扭矩电动扳手行星齿轮与谐波传动故障的排查与修复方法。从故障初判、拆解工艺到行星齿轮系统检测、谐波传动维护,提供了一套完整的维修指南,帮助用户快速诊断和解决常见问题,延长工具使用寿命。

weixin_42525582的博客 435

python中 d是什么意思,{:02d}在Python中是什么意思

it's very hard to find information about {:} onlineI saw some code below:def dateformat(date):day, month, year=date.split('/')return "{:4d}{:02d}{:02d}".format(int(year),int(month),int(day))I kinda of...

weixin_31800911的博客 2294

Halcon频域滤波实战:5分钟搞定傅里叶变换与功率谱分析(附完整代码)

本文提供Halcon频域滤波的实战指南,重点讲解如何利用傅里叶变换与功率谱分析快速解决图像处理难题。通过核心算子fft_image和power_real,演示了从空间域转换到频域、分析功率谱以定位周期性噪声,并构造滤波器进行精准去除的完整流程,附有可直接运行的代码示例。

docker8compose的博客 215

Windows 10 下 Nacos 3.0.2 单机版保姆级安装教程(含JDK 17配置与MySQL 8.0连接避坑)

本文提供Windows 10下Nacos 3.0.2单机版的详细安装教程,涵盖JDK 17配置、MySQL 8.0连接优化及生产级安全设置。通过步骤详解和常见问题解决方案,帮助开发者快速完成Nacos的安装与配置,确保服务发现与配置管理的高效运行。

weixin_29237635的博客 320

python中%d %2d %02d %-2d% %.2d的区别

先简单解释一下: %d就是普通的输出了整形数 %2d是将数字按宽度为2,采用右对齐方式输出,若数据位数不到2位,则左边补空格。 %02d,和%2d差不多,只不过左边补0 %-2d将数字按宽度为2,采用左对齐方式输出,若数据位数不到2位,则右边补空格 %.2d 输出整形时最少输出2位,如不够前面以0占位。如输出2时变成02,200时只输出200;输出浮点型时(%.2f)小数点后强制2位输出 下面是直观结果: num = 5 print("d结果为:%d" % (num)) print("2d结

好想上浙工大啊 6070

Benchmark系列——UnixBench测试项深度解析与性能优化指南

本文深度解析UnixBench基准测试套件的各项测试原理,包括Dhrystone、Whetstone、系统调用、进程管理、IPC及文件I/O等核心测试项。通过详细的测试项分析,指导用户解读测试报告,并提供针对性的内核参数调整、编译优化及系统配置实战指南,帮助用户精准定位并优化系统性能瓶颈。

weixin_29230901的博客 276

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 218

攻防世界-Reverse-Game

攻防世界,game,逆向

wuh2333的博客 775

永磁同步电机定子槽型设计实战:从梨形槽到矩形槽的NVH优化之路

本文深入探讨了永磁同步电机定子槽型设计在NVH优化中的关键作用,对比了梨形槽与矩形槽的性能差异。通过Ansys Maxwell仿真和实际案例,揭示了矩形槽在提升槽满率、降低电磁噪声方面的优势,并总结了五大设计黄金法则,为电机设计工程师提供了实用指导。

weixin_28740299的博客 493

【算法拾光】链表 哈希表|K个一组翻转链表 + 两数之和

K个一组翻转链表需分段反转,借助哑节点与前驱指针维护连接,避免断链;两数之和利用哈希表实现O(1)查找,空间换时间,高效定位目标组合。前者考察链表指针操作,后者聚焦映射关系构建,均为面试高频题。

wuqingyigexiaoba的博客 314

ICM20948 DMP代码详解(54)

ICM20948 DMP代码详解(54)

phmatthaus的专栏 424

排序算法深度笔记(下):非比较类排序的线性突破与工程边界

排序算法时间复杂度额外空间复杂度稳定性是否基于比较选择排序O(N^2)(O(1))不稳定是冒泡排序O(N^2)(O(1))稳定是插入排序O(N^2)(O(1))稳定是归并排序O(N\log N)(O(N))稳定是快速排序O(N\log N)O(log N)不稳定是堆排序O(N\log N)O(1)不稳定是计数排序(O(N + M))O(M))稳定否基数排序O(N)稳定否桶排序平均O(N) / 最坏O(N^2)

2401_87069538的博客 590

精雕软件(JDpaint) 5.5 绿色版

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

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

算法日常・每日刷题--<动态规划>42

本题为“不相交的线”,与最长公共子序列问题相似。使用动态规划求解:定义 dp[i][j] 表示 nums1[0:i] 与 nums2[0:j] 的最大不相交连线数。若元素相等,则继承左上值加1;否则取上方或左方最大值。最终返回 dp[m][n],即两数组的最大不相交连线数。时间复杂度 O(mn),空间复杂度 O(mn)。

2503_92261635的博客 20

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

C语言程序设计题|有序数组插入数字冒泡排序

题目要求将一个数插入有序数组末尾,并用冒泡排序实现整体升序。代码先将输入数存入数组最后位置,再通过双重循环进行冒泡排序,每轮将较大元素向后移动,最终输出11个升序元素。该方法虽时间复杂度为O(n²),但符合题目要求,逻辑清晰,适合初学者理解排序原理。

2301_81429079的博客 750

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【算法拾光】模拟|外观数列 + 数青蛙

本文总结两道模拟题解法:外观数列通过迭代统计连续数字个数生成下一项,关键在于处理末尾字符;数青蛙则模拟青蛙叫声“croak”状态转移,维护各阶段青蛙数量,记录最大并发数并确保全部完成。共性在于严格遵循流程、细致处理边界与非法情况,锻炼字符串遍历与状态管理能力。

wuqingyigexiaoba的博客 371

牛客周赛165C题(前后缀性质,递推,排序,枚举)

题目大意:给定长度为 `n` 的数组,选择 `k ∈ [1,n]`,将前 `k` 个元素整体翻转,后面的元素不变。要求操作后的整个数组非递减,统计满足条件的 `k` 的数量。题目链接:https://ac.nowcoder.com/acm/contest/141721/C。时间复杂度:O(nlogn)

2501_94316951的博客 171

408 算法 04|主元素与三元组最小距离:两种“扫描时做决定“的思路

2013(41) 的主元素用摩尔投票一遍选出候选,但真正的考点是"选完必须验票";2020(41) 的三元组最小距离,三指针每次只挪最小的那个,靠的是 D=2×(max−min) 这个恒等式。两套完整 C 代码加真实输出,附官方评分档位表。

m0_56226131的博客 410

【数据结构-3】算法美学之降复杂度

在while循环的循环体内,首先用临时变量保存最后一个位置的数据,再通过for循环把所有元素往后移动一位,最后把tmp中保存的值放到下标为0的位置上去。方法二的思路是:创建新数组,让原数组中后k个数据移动到新数组中前面的位置,让原数组中前numsSize-k个数据移动到新数组中后面的位置,这。这段代码的思路是:三次逆置,第一次逆置前numsSize-k个数据,第二次逆置后k个数据,最后整体逆置。这篇博文分享一道解法不一的算法题,求解过程的目的在于降低算法的时间复杂度,题源力扣。,属于空间换时间的操作。

weixin_44218929的博客 85

算法61,判定是否为字符重排

两字符串能互为重排 ⇔。

sheshibenniaodan的博客 218

算法日常・每日刷题--<动态规划>32

给定严格递增的正整数数组,求最长斐波那契子序列长度。使用二维DP,dp[i][j]表示以arr[i]、arr[j]为最后两项的序列长度,初始化均为2。通过哈希表快速查找前一项target = arr[j] - arr[i],若存在且下标小于i,则状态转移:dp[i][j] = dp[k][i] + 1。遍历更新全局最大长度,最终若结果小于3则返回0。时间复杂度O(n²),空间复杂度O(n²)。

2503_92261635的博客 178

算法札记:几何分布在算法题UVA1262的运用

集卡问题求解核心:将集齐n种优惠券的过程分为n个阶段,每个阶段期望购买次数为 $ \frac{n}{k} $(k为剩余种类数),总期望为 $ n \cdot H_n $(调和数)。通过自洽方程推导单阶段期望,无需几何分布或无穷级数,逻辑清晰且适用于大一水平。例如,n=5时期望约11.42,非5。题目要求以带分数形式输出精确结果,算法上需累加分数并化简。

Keven_11的博客 353

SSL证书选RSA还是ECDSA:公钥算法、CA签名与兼容性怎么核对

申请SSL证书时,RSA和ECDSA该怎么选?先分清站点公钥算法、CA签名算法和TLS实际兼容性,再用隔离OpenSSL实验读取两类材料,核对申请、续期和部署交接,避免只看Signature Algorithm就选错。

谁呀!的博客 399

考拉兹猜想 - 7

本文通过引入虚数单位重构Collatz猜想的迭代逻辑,指出偶数减半与奇数“乘3加1”的过程在虚数坐标下等价于归结操作。关键在于:乘3加1使奇数跃升至偶数,随后持续减半,而虚数单位代表“无限减1”,实现无限向有限的转化。无论初始值如何,减半始终主导,最终归结为4-2-1循环。该视角消解了正向思维中的速度竞争疑虑,证明归结是必然结果。

杨铸人的博客 43

从曲线到储层:Techlog/KAPPA 全流程算法、UltraLAB 选型与本地 AI 部署实战

以高频 CPU 保证交互,以充足内存承载多井与多任务,以 NVMe 打通项目和知识库 I/O,再按本地模型、上下文与并发配置 GPU。对 UltraLAB 用户而言,更合理的采购方式是带着真实项目做选型:一组典型井、一套完整解释模板、一个目标大模型、一次多人并发测试。用实测结果确定配置,才能把预算转化为解释效率,而不是闲置算力。软件模块、操作系统与许可条件以厂商当前正式说明为准;硬件建议需结合项目实测。AI 输出只能作为辅助证据,不能替代岩石物理与油藏工程专业审核。

wdf8088的博客 181
上一篇: 网络安全之内核初级对抗技术分析
下一篇: 网络安全之防病毒系统
安全系统学习
博客等级 码龄2年 1215粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值