应急响应实战笔记(续)

在上周,我发布了一个项目,我把它叫做应急响应实战笔记,收集和汇总了一些我经手处理的应急响应案例。

GitHub 地址:https://github.com/Bypass007/Emergency-Response-Notes

这个项目,也收到了不少童鞋的反馈,其中有一位让我印象深刻,第一次收到如此认真的反馈:

我马上写了一份邮件回复:感谢你这么详细的阅读并指正了几个问题,如果不介意,欢迎加个微信号交流。

这份笔记共计22篇文章组成,总字数约2W+,在脱敏的时候,去掉了一些描述,文章连贯性不够,也发现了不少问题,在此,感谢那些帮忙反馈的童鞋。

关于这份笔记,我将持续更新,希望能给那些从事安全/运维的童鞋带来一些帮助,

同时,希望小伙伴提供一些案例,你说案例我来写。

就像老领导给我的留言一样:把经验写下来,有益于他人,更精进了自己。

慢慢完善的方向,比如

站在数据取证的角度,熟悉各种日志分析技巧。

站在攻击者的角度, 熟悉常见的权限维持技术。

站在利益驱动的角度,熟悉各种黑帽灰产手法。

未知攻焉知防,以攻写防,我觉得这可能会比纯粹的攻击更有趣。

为此,我创建了一个星球,免费的小密圈,纯粹的技术交流,定位是应急响应,准备进入试营运阶段,诚邀大家加入

我的小密圈,一起分享知识。

 

转载于:https://www.cnblogs.com/xiaozi/p/10927985.html

一些应急响应教学视频笔记 检测webshell 通过文件属性检查 取证工具 恶意程序类型 各种单位遭受攻击的侧重点 踩坑 WEB入侵响应流程 常见服务的web日志存放位置 iis Windows Server 2003 iis6日志路径:C:\Windows\System32\LogFiles Windows Server 2008 R2、2012、2016、2019 iis7以上日志路径:C:\inetpub\logs\LogFiles apache Windows: <Apache安装目录>\logs 阅读详情

相关推荐

【应急响应】Windows应急响应 - 基础命令篇

在如今的数字化时代,Windows系统面对着越来越复杂的网络威胁和安全挑战。本文将深入探讨在Windows环境下的实战应急响应策略。我们将重点关注实际应急响应流程、关键工具的应用,以及如何快速准确地识别和应对安全事件。通过分享实际案例分析,旨在帮助网络安全从业者提升应急响应能力,有效保护关键资产和数据的安全。

网络安全从业者的学习笔记 5954

探索Emergency Response Notes:一款高效应急处理工具的技术解析

探索Emergency Response Notes:一款高效应急处理工具的技术解析 去发现同类优质开源项目:https://gitcode.com/ 项目简介 Emergency Response Notes 是一个开源项目,旨在提供一种快速、有效的记录和共享应急响应信息的方式。无论是在自然灾害、医疗紧急情况还是任何其他需要迅速响应的情境中,这个项目都能帮助你整理并传递关键信息。 技术分析 该应...

gitblog_00037的博客 562

如何做好应急响应工作?常见应急响应流程

1.应急响应的最终目标是保护客户的核心资产,所有行为必须围绕:保护、避害、不损害来进行。 2.在现在愈加复杂的攻击下,上述的常见场景一般会出现复合情况,需要应急人员根据经验去进行。 3.应急人员应有自己的方法论,对不同攻击的威胁建模,拥有威胁情报分析能力,结合工具的辅助进行现场响应与远程支撑。 4.工具和排查点大同小异,提升方法在于应急人员的是否熟悉该种攻击,利用特征和行为去排查更节省时间。 5.红蓝同源,应急响应属于蓝队,但必须具备一定的渗透能力。

HBohan的博客 6642

应急响应-PDCERF 方法03

PDCERF方法最早于1987年提出,该方法将应急响应流程分成准备阶段、检测阶段、抑制阶段、根除阶段、恢复阶段、总结阶段。根据应急响应总体策略为每个阶段定义适当的目的,明确响应顺序和过程。但是,PDCERF方法不是安全事件应急响应的唯一方法。在实际应急响应过程中,不一定严格存在这6个阶段,也不一定严格按照这6个阶段的顺序进行。但它是目前适用性较强的应急响应通用方法。 准备 —— 检测 —— 抑制 —— 根除 —— 恢复 —— 总结 1)准备阶段 准备阶段以预防为主。主要工作涉及识别机构、企业的风险..

战神/calmness的博客 7695

2020最新应急响应实战笔记全面解析

应急响应是组织在遭受网络攻击或安全事件时,为控制事态、减少损失并恢复业务所采取的系统化应对机制。随着高级持续性威胁(APT)、供应链攻击与内部泄露事件频发,应急响应已从“辅助手段”演变为网络安全防御体系的核心支柱。基于NIST SP 800-61标准,应急响应划分为准备、检测、遏制、恢复四个阶段,形成闭环生命周期。各阶段环环相扣:充分的预案准备提升检测效率,精准的分析支撑快速遏制,而彻底的恢复则依赖于全过程的证据保全与合规操作。其核心原则包括:最小化业务影响保持数字证据完整性。

weixin_35755434的博客 901

Emergency-Response-Notes:应急响应实战笔记,一个安全工程师的自我修养

GitHub地址: : GitBook地址: ://bypass007.github.io/Emergency-Response-Notes/ 项目介绍 面对各种各样的安全事件,我们该怎么处理? 这是一个关于安全事件应急响应的项目​​,从系统入侵到事件处理,收集和整理了一些案例进行分析。 我将持续更新这份笔记,希望能帮到有需要的人。 如果你看到好的案例,欢迎通过issue提交。 项目目录 [第一章:入侵排查篇] 第1篇:窗户入侵排查 第2篇:Linux入侵排查 第3篇:常见的Webshel​​l查杀工具 第4篇:如何发现隐藏的Webshel​​l后门 第5篇:勒索病毒自救指南 [第二章:日志分析篇] 第1篇:窗口日志分析 第2篇:Linux日志分析 第3篇:Web日志分析 第4篇:MSSQL日志分析 第5篇:MySQL日志分析 [第三章:权限维持篇] 第1篇:Windows权限维护

windows入侵排查学习思维导图

最近在看bypass大佬的windows应急响应入侵排查思路,终于头脑算是有个清晰的思路,虽然具体细节还要琢磨,但避免以后忘记了,整理了一份思维导图,方便自己以后的学习。 参考资料:https://github.com/Bypass007/Emergency-Response-Notes https://blog.youkuaiyun.com/qq_23936389/article/details/83511...

来到了学渣的博客 1408

基于任务的后勤智能体:三段构建与演进设计探究

这是系统智能化的核心难点。例如,对于一个“加强连级滩头阵地防御”子任务,系统会根据防御时长、预期敌军攻击强度、地形等因素,计算出所需的弹药(不同弹种的具体数量)、构筑工事的器材、人员的给养和饮水量、以及医疗救护的药品和血包数量。首先进行分词、词性标注等基础处理,然后利用在军事语料库上训练的命名实体识别(NER)模型,提取出关键实体,如任务类型(“夺控作战”)、作战对象(“Y岛”)、时间约束(“D日H时”、“24小时内”)、成功标准(“建立稳固滩头阵地”)、保障重点(“弹药充足”、“及时救治”)等。

weixin_49042442的博客 1088

应急响应实战

应急响应;网络安全

itboy_szjj的博客 2065

智驾系统分层架构:从传感器到执行器的全链路解析

本文深入解析了智能驾驶系统的分层架构,从传感器数据采集融合、应用层决策到车辆管理层执行,完整呈现了从感知到控制的全链路工作流程。文章重点阐述了架构设计的核心优势在于接口标准化与模块解耦,以ACC和LKA协同场景为例,说明了各层级如何通过清晰分工与高效协作,实现复杂系统的可靠、灵活与易于升级。

weixin_29219189的博客 399

RoCE Overlay

1. RoCE over vxlan 配置vxlan封装的RoCE流量,可以在PF switchdev模式下利用ovs bridge,或直接设置tc rules。下面将基于一对NIC互联的服务器介绍两种方式的使用,并分析封装后的数据包结构。 1.1. 基本配置 - VF与switchdev 首先创建VF,并为两个host设置PF的switchdev模式。使用ovs bridge或tc rules,...

sunshuying1010的博客 3058

收藏~应急响应实战笔记

从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。因为入门学习阶段知识点比较杂,所以我讲得比较笼统,大家如果有不懂的地方可以找我咨询,我保证知无不言言无不尽,需要相关资料也可以找我要,我的网盘里一大堆资料都在吃灰呢。干货主要有:①1000+CTF历届题库(主流和经典的应该都有了)②CTF技术文档(最全中文版)③项目源码(四五十个有趣且经典的练手项目及源码)

xnxqwzy的博客 516

深入解析AUTOSAR中IIC的MCAL实现与Vector配置实践

本文深入解析AUTOSAR架构中IIC总线的MCAL实现与Vector配置实践,探讨IIC在汽车电子中的特殊定位及Vector的折中方案。通过Channel与Sequence设计模式、Chain特性应用及DaVinci Configurator配置步骤,提供IIC驱动的优化与安全实现方法,助力开发者高效解决车载通信问题。

weixin_29172963的博客 407

应急响应-应急响应流程(各个阶段与实战)

做入侵检测时会有一些攻击告警,需要做应急响应。本文从流程规范角度来浅谈一下应急响应的步骤,介绍应急需要准备哪些知识,以及常见攻击流程示例。后面几章留坑,持续更新中…P(PreParation准备)D(Detection检测)C(Containment遏制)E(Eradication根除)R(Recovery恢复)F(follow-up跟踪总结)根据PDCERF模型进行优化,分为以下几个阶段。时间范围资产范围攻击路径攻击手法止损情况恢复情况待办。

关注网络安全、云原生安全 5134

MIPI DPHY接口(基于Xilinx FPGA实现)案例分析

在Xilinx FPGA实现MIPI DPHY接口的案例(包括CIS协议层)。截止目前为止,Xilinx仅在Ultrascale+及其以上版本的FPGA IO可直接支持MIPI 电平输入,其他的,都需要转换成LVDS来接收。

ONEFPGA的博客 5624

VOF模型求解方法:从SIMPLEC到PISO的稳定性优化策略

本文深入探讨了VOF模型求解方法中SIMPLEC与PISO算法的稳定性优化策略,重点分析了两种算法在稳态和瞬态问题中的应用差异。通过对比PRESTO离散化方法与其他格式的优劣,提供了针对多相流模拟的实用设置建议和稳定性优化技巧,帮助工程师有效提升计算效率和精度。

yellow的专栏 1153

应急响应实战笔记

导语 我在GitHub上看到了这大佬的笔记。考虑到GitHub在某些地区访问速度慢或者无法打开的问题,我决定转载这些笔记,以便更方便地获取。 原项目地址 GitHub 地址:https://github.com/Bypass007/Emergency-Response-Notes GitBook 地址:https://bypass007.github.io/Emergency-Response-Notes/ 项目介绍 面对各种各样的安全事件,我们该怎么处理? 这是一

weixin_43263566的博客 826

离线反激转换器反馈环路设计:从理论到实践的Type II补偿器详解

在开关电源设计中,反馈环路稳定性是决定电源性能与可靠性的核心。其本质是通过补偿网络对功率级的小信号特性进行校正,以构建一个具有足够相位裕度和增益裕度的闭环系统。反激转换器作为一种广泛应用的隔离拓扑,其功率级在连续导通模式(CCM)和非连续导通模式(DCM)下呈现不同的零极点特性,这直接决定了补偿器的选型。Type II补偿器因其传递函数中固有的积分环节、低频零点与高频极点,恰好能与反激功率级的1P2Z(一个极点、两个零点)特性形成互补,有效塑造理想的回路增益曲线,实现快速稳定的动态响应。本文聚焦于采用TL4

weixin_30162121的博客 501

2020应急响应实战指南

攻防攻防,有攻就有防,我们常说“未知攻焉知防”,所以一般来说,在安服团队里,应急响应是由有经验的渗透测试人员来承担;而在企业里面,应急响应则是由比较有经验的运维人员来承担。早在17年的时...

2万+

基于STM32L4XX、HAL库的TESEO-LIV4FTR定位模块驱动程序设计

支持多星座系统:GPS、GLONASS、Galileo和北斗。支持NMEA 0183协议和ST专有协议。高灵敏度:-167dBm跟踪灵敏度。低功耗设计,适合物联网和便携设备。内置LNA和SAW滤波器。

zhusl6688的博客 237

深度学习工具包 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")

应急响应实战笔记01入侵排查篇(5)

经常会有一些小伙伴问:中了勒索病毒,该怎么办,可以解密吗?第一次遇到勒索病毒是在早几年的时候,客户因网站访问异常,进而远程协助进行排查。登录服务器,在站点目录下发现所有的脚本文件及附件后缀名被篡改,每个文件夹下都有一个文件打开后显示勒索提示信息,这便是勒索病毒的特征。出于职业习惯,我打包了部分加密文件样本和勒索病毒提示信息用于留档,就在今天,我又重新上传了样本,至今依然无法解密。作为一个安全工程师,而非一个专业的病毒分析师,我们可以借助各大安全公司的能力,寻找勒索病毒的解密工具。

qq_59468567的博客 1118

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

应急响应笔记

应急响应实战笔记:第一章:应急响应 · 应急响应实战笔记

2403_89164531的博客 151

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【亲测免费】 《应急响应实战笔记_2020最新版》:网络安全实战指南

《应急响应实战笔记_2020最新版》:网络安全实战指南 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 《应急响应实战笔记_2020最新版》是一本专为网络安全专业人员打造的实战指南,旨在帮助一线安全应急响应专家和信息安全爱好者提升实战能力。本书通过精心编排的六章内容,全面覆盖了从基础技能到高级攻防技术的各个方面,确保读者能够在网络攻防战线上游刃有余。 项目技术分析 本书...

gitblog_06682的博客 468

2025三掌柜赠书活动第二十五期 网络安全应急响应实战

在当今数字化时代,网络安全已经成为企业和个人都无法忽视的重要问题。随着网络技术的飞速发展,网络攻击手段也日益复杂多样,从简单的恶意软件到复杂的高级持续性威胁(APT),网络安全威胁无处不在。企业和组织面临着前所未有的挑战,如何在复杂的网络环境中快速响应并有效应对安全事件,已经成为网络安全领域的重要课题。那么本文就来简单唠唠网络安全相关的话题,欢迎大家在评论区留言交流。

全沾软贱开发攻城狮 1万+
上一篇: 不同系统下,复制文件时新文件的日期区别
下一篇: Window 远程桌面漏洞风险,各个厂家的扫描修复方案(CVE-2019-0708)
an0708
博客等级 码龄12年 30粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值