Openwrt类路由器提取编程器固件

OpenWrt提取系统镜像 OpenWrt提取系统镜像 前言:在路由器中flash了openwrt系统,并安装了许多软件及相关配置,现想将整个系统的镜像提取出来,并flash到另一台相同的设备中。 方法 1.先查看fireware分区所对应的mtd设备 ## 输入命令 cat /proc/mtd ## 输出以下结果 dev: size erasesize name mtd0: 00030000 00001000... 阅读详情
AI摘要

本文介绍如何通过SSH登录蒲公英X1路由器,无需拆机即可获取路由器flash中的固件。步骤包括重启并读取log确定flash型号、使用dd命令导出分区文件,最终合并提取所需固件。

在能够ssh进入路由器的前提下,可以不用拆机,直接获取路由器flash中的固件。

蒲公英X1路由器为例。
1、先重启路由器,然后等待正常启动(此处是为了清除历史的log);
2、ssh登陆路由器,输入readlog,读取系统启动的整个log。
启动log
log中可以看到flash为GD25Q128B,其大小为16Byte,地址范围为
0x000000000000-0x000001000000
3、输出mtd中保存的系统磁盘区信息

从上边的分区信息可以看到,共有9个,结合启动log,可以看到firmware会包括kernel、rootfs等。整理后有用的信息
Wed Mar 3 21:45:34 2021 kern.notice kernel: [ 1.530000] 0x000000000000-0x000000030000 : “u-boot”
Wed Mar 3 21:45:34 2021 kern.notice kernel: [ 1.540000] 0x000000030000-0x000000040000 : “kpanic”
Wed Mar 3 21:45:34 2021 kern.notice kernel: [ 1.550000] 0x000000040000-0x000000050000 : “factory”
Wed Mar 3 21:45:34 2021 kern.notice kernel: [ 1.570000] 0x000000050000-0x000000fe0000 : “firmware”
Wed Mar 3 21:45:34 2021 kern.notice kernel: [ 1.550000] 0x000000fe0000-0x000000ff0000 : “bdinfo”
Wed Mar 3 21:45:34 2021 kern.notice kernel: [ 1.560000] 0x000000ff0000-0x000001000000 : “reserve”

4、dd命令导出有用的分区

dd if=/dev/mtd0 of=/tmp/uboot.bin
dd if=/dev/mtd1 of=/tmp/kpanic.bin
dd if=/dev/mtd2 of=/tmp/factory.bin
dd if=/dev/mtd5 of=/tmp/firmware.bin
dd if=/dev/mtd3 of=/tmp/bdinfo.bin
dd if=/dev/mtd4 of=/tmp/reserve.bin

5、sctp取出文件到本地,合并文件

通过路由器管理界面刷openwrt 要将路由器固件刷新为OpenWrt,即相当于OpenWrt 系统的安装,不同型号的路由器的安装方法可能也会不一样,但一般常用的有三种方法:a、Web上传固件更新b、PFTP上传固件更新c、编程器写入固件本文章主要讲述通过Web上传固件更新,即通过路由器管理界面刷固件:1.首先要获得固件,可以下载编译openwrt获取相应的固件,也可以到openwrt官网查询相应的openwrt固件,直接进行下载,... 阅读详情

相关推荐

全面掌握340+编程器固件更新与教程包

本文还有配套的精品资源,点击获取 简介:本资源包汇集了340+种编程器固件及教程,专为DIY爱好者和网络设备调试人员设计,涵盖从固件升级到编程器改造的全面指南。文档包含TP-LINK WR340G路由器的固件改造教程,介绍如何安装DD-WRT、OpenWrt及ubnt固件,提升设备功能与性能。还包括编程器使用说明、固件更新指南,以及特定型号路由器专用的DD-WRT和Open...

weixin_42610671的博客 1435

固件提取实战(附无损提取方案)

本文简要记述了博主的固件提取过程

阿尔泰野狼的博客 1万+

华硕TUF-AX3000路由器编程器固件备份与刷写实战

简介:华硕TUF-AX3000-MX30LF2G18AC-TI@256M是一款专为高性能网络需求设计的Wi-Fi 6路由器,搭载高通处理器和优化天线系统,支持MU-MIMO、OFDMA和AiProtection等先进技术。本文提供的“编程器固件”为该型号专用的.bin格式固件镜像,可用于固件恢复、升级或备份还原,确保设备稳定运行。通过详细介绍固件下载、备份、更新流程及关键特性配置,帮助用户掌握路由器底层维护技能,提升网络安全与性能管理能力。

weixin_42465332的博客 1657

openwrt固件提取方法

最近遇到一个问题,openwrt路由器网口无法联网。 通过WIFI进入到路由器系统后,逐个文件排查,并未发现异常,而且系统参数确实未检测到网线接入(但可用的网线确确实实是接入了的)。 cat /sys/class/net/eth0/operstate 返回值一直为down。 此时考虑是否是硬件问题,准备将路由器的固件提取出来,烧录到另外一台路由器。 如果按照目录一个个打包拿出来是...

窗前明月光,李白睡得香 4372

最新OpenWRT-nss稳定版固件 路由器型号:AX3600 及 TTL救砖

由于initramfs版本完全运行在RAM中,不会在闪存中存储任何设置,因此不适合用于操作性使用。固件默认没有开启Wifi,不保留设置更新固件需要网线连接电脑设置Wifi开启。有软件的,有硬件的。factory:用于替换厂商的原厂固件,兼容原厂的安装包格式。固件默认没有开启Wifi,不保留设置更新固件需要网线连接电脑设置Wifi开启。固件默认没有开启Wifi,不保留设置更新固件需要网线连接电脑设置Wifi开启。sysupgrade:用于升级替换已有的OpenWrt版本,这是最常用的镜像。

qq_44338578的博客 8172

蒲公英X1-2111固件包刷机求砖

自己的X1盒子突然启动不了了,不能进入配置,发现固件升级提示。自己用过了,很好,按操作手册成功刷回来了!

小米路由器4A千兆版 CH341A 编程器刷机教程

通过 CH341A 编程器刷机的步骤最多只有两步: 1. 刷入 Breed 或者直接刷入第三方路由器固件 2. 通过 Breed Web 恢复控制台刷入第三方路由器固件

极客点儿 2万+

openwrt知识总结 (刷固件,备份固件方法)

openwrt知识总结 (刷固件,备份固件方法)

OpenWrt固件刷入及相关实验

MIS OpenWrt固件刷入及相关实验 曲折的学习笔记 实验目的 为路由器刷入openwrt系统 在openwrt上安装软件,开通ssh,AP服务等; 在openwrt上安装auditord,配置相关文件,抓取ftp、telnet和无线网卡wifi信号嗅探的内容,发送到外置服务器,并接收。 在openwrt上安装privoxy,完成配置文件,实现对http协议的js代码注入功能。 实验环境 所用硬件:TP-LINK WR840N v10.1 TP-LINK WR841N v8 小米路由器

weixin_51194266的博客 1万+

蒲公英X1-2111 救砖固件包4.1.0

当升级时断电或者其它原因导致蒲公英路由器死机以至于无法使用的,可使用恢复模式恢复正常。具体操作步骤如下: ①、断开蒲公英电源,按住reset键后接上电源,通电10秒后松开; ②、使用网线连接PC和蒲公英LAN口,设置PC的IP为自动获取或手动设置为192.168.2.88;(推荐自动获取IP) ③、在浏览器输入192.168.2.1,选择下载的固件,点击更新按钮(Update firmware)后开始升级; ④、约5分钟后即可更新完成。

长上下文技术的底层逻辑:Attention、压缩、缓存与跨页推理

如果把模型的参数视为“固化智能”,动态智能(Dynamic Intelligence)——模型不必依赖训练时的记忆,而是可以随时调用外部信息。这一点正在改变大模型的范式:Prompt 不再是输入,而是“操作系统事件”文档不再是知识,而是“模型的临时记忆”模型不再是一段神经网络,而是一个“具备阅读循环的推理引擎”当我们把上下文从 128K 拉到百万级,我们做的不是扩容,而是让模型第一次拥有阅读、回溯、定位、跨页分析的能力。这是一种新的智能。

aifs2025的博客 996

【免费下载】 红米AX6S编程器固件资源介绍:路由器固件升级与恢复

在智能家居领域,路由器作为连接互联网的核心设备,其固件的稳定性和功能多样性至关重要。红米AX6S编程器固件资源项目,为红米AX6S路由器用户提供了全面的固件升级和恢复解决方案。该项目包含多种固件版本和类型,旨在满足用户在固件定制、升级和维护方面的多样化需求。 ## 项目技术分析 红米AX6S编程器固件资源项目,从技术层面来看,主要涉及到以下几个方面: 1. **固件文件格式**:项目包含不同...

gitblog_06750的博客 1283

大宗农产品交易知识图谱推理引擎的构建--需求分析

大宗农产品交易知识图谱推理引擎的构建 一、项目概述 ​ 进入信息时代,全球产生的数据量爆炸式增长,一方面数据产生的方式发生改变,由手工产生越来越多地转为自动化生成,另一方面,人类的活动也越来越依赖数据;民以食为天,粮食方面的信息数据对人类来说至关重要,而当前繁杂的数据已经超出了人工处理的范围,这就对数据采集和数据处理提出了新的要求。 知识图谱是将大量收集的数据整理成机器能处理的知识库,并实现可视化的展示。知识图谱本质上是一种大规模的语义网络,其主要目的是对真实世界里的实体或概念之间的关联关系进行描述;构造

qq_40583949的博客 2585

蚂蚁帮路由器Antbang A3s V2.0刷入OpenWrt/LEDE

蚂蚁帮路由器Antbang A3s V2.0刷入OpenWrt/LEDE

weixin_41973774的博客 3100

ComfyUI的G-Dino模型加载器报错解决方案:从崩溃到重生

遇到G-Dino模型加载器报错不要慌,按照本文的步骤操作,99%的问题都能解决。模型文件正确下载到指定位置segment_anything节点安装完整且无冲突需要补充更多细节或故障排除方法吗?可以随时告诉我。

2301_78150483的博客 4020

/lib//libclntsh.so: file format not recognized; treating as linker script

centos7.7+oracle19.3 建库过程报错:预检查都是通过的 /oracle/product/19.3.0/db_1/lib/libasmperl19.a -Wl,--no-whole-archive -lclntsh -lclntshcore -lasmclntsh19 -lhasgen19 -lskgxp19 -locr19 -lcell19 -lirc INFO: /usr/bin/ld:/home/app/oracle/product/19.3.0/db_1/li...

sqlora的专栏 9913

从零开始编译OpenWrt固件

从零开始编译OpenWrt固件 前言 进来阅读这篇文章的相信都是对OpenWrt有一定的了解的,对于OpenWrt的介绍这里就不再赘述,可以自行查找相关百科了解。 OpenWrt是适合于嵌入式设备的一个Linux发行版,可以通过其提供的相关工具,选择适合自己设备(路由器等)的参数,进行镜像文件编译。 本文以TP-Link TL-WR703R路由器为例,进行OpenWrt 固件编译讲解。 转载请注明...

XinAncao_的博客 1万+

OTN设备核心知识速记

本文章为工作笔记,若有错误,还需大家指正。不定期更新。

Hiddengold的博客 2648

openwrt 编程器固件制作方法

使用winhex自建编程器固件(我的是TP-WR941N v2) 1:使用winhex新建一个8M,16M的文件,编辑-全选,填充选块,填充十六进制数值 FF ; 2:打开4M的原厂编程器固件(或者自己备份的,包含uboot和art分区的),定义选块,从0到0001FFFF ,复制,然后打开新建的8M,16M文件, 写入,偏移量为0. 3:打开一个自己下载的8M open

GodSpeed513的专栏 6221

【推荐100个unity插件】皮毛shader着色器 实现可以用动的毛茸茸毛绒绒效果

Unity内置渲染管线毛发着色器实现 摘要:本文介绍了Unity内置渲染管线下的毛发着色器实现方案。该方案通过多层渲染技术模拟毛发效果,支持基础光照模型(环境光、漫反射和镜面反射),提供毛发长度调节功能。主要包含10个渲染通道,采用逐步增加的FURSTEP参数(0.05-0.55)分层渲染毛发,每层使用相同的着色器代码但不同参数值。该实现仅适用于内置渲染管线,不支持毛发动态效果,代码结构简洁,通过FurHelper.cginc包含核心着色逻辑。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2675

【局部路径规划模块地图算法】基于势场地图的VFH、VFH+、VFH*算法(附C++代码)

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对基于地图的方法–VFH、VFH+、VFH*算法做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。

qq_35635374的博客 1686

京东云一代刷入Breed(不死)固件,再任意刷老毛子padavan,openwrt,爱快等路由器固件

老毛子padavan的易用性和功能丰富性甩原厂固件好几条街。千兆网络轻轻松松跑起来。而且插件功能丰富,还能远程控制呢,还有app可以远程管理老毛子的路由器哦,我们下一集介绍下功能强大的插件!二手京东云路由器闲鱼上只卖15元一个,虽然没有emmc储存芯片了,但本来那玩意就没啥用,真要用插个U盘或者移动硬盘也行。性价比太高了,15元的千兆路由器,黑科技功能强大。

yantaohk的博客 8012

JavaFX 表视图

我们可以使用来自 JavaFX API 的 TableView,TableColumn 和 TableCell 类以表格形式表示数据。通过实现数据模型和应用单元工厂来填充表中的数据。表类可以按列排序数据,并在必要时调整列大小。

2012年开始工作,全栈开发老兵,目前已是一个老师,分享这么多年的心得体会 404

小米路由器4A千兆版刷openWRT保姆级教程

小米路由器4a千兆版刷openwrt保姆级教程

u013488276的博客 3万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

小米路由器编程器强刷breed,可用于救砖,恢复官方系统,恢复SN

小米路由器编程器强刷breed,刷openwrt,恢复官方系统前言一、CH341编程器准备二、使用步骤1.引入库2.读入数据总结 前言 记录个人刷路由器折腾的过程,如有缺点请指正 一、CH341编程器准备 小米路由器的闪存芯片好像是25系列,这里放出一张编程器跟芯片的接线图 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns

m0_46556953的博客 1万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

小米路由器Pro(R3P)刷OpenWRT固件成功刷成砖

最近翻出来一个路由器:小米路由器Pro(R3P),还是官方的固件,不过官方已经停止更新了,所以准备拿来折腾一下,刷入immortalwrt系统,过程中发现不少坑,这里记录一下,先说结果:刷成砖了。。。

chengpei147的博客 2046

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: 手机模拟门禁卡 — 加密门禁卡模拟教程
下一篇: 昇思25天学习打卡营第01天|mfan
AHappySpringA
博客等级 码龄14年 7粉丝 5原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值