免CD补丁制作.

U9二次开发之补丁制作 我把U9补丁制作的流程记录一下,供你参考。 阅读详情
免CD补丁制作.

By 全金属外壳

最近发现一款抗日游戏,叫"抗日-血战上海滩"来的,界面简洁,操作简单的一款射击游戏,很适合俺爹.于是帮他装上了.不想问题马上出现:这个游戏需要插入光盘才能玩,否则会弹出提示:

"请插入《血战上海滩》CD"

汗,太麻烦了,反正自己正在看汇编,于是决定自己做个免CD补丁.先用PEid看看有没有加壳:

"Microsoft Visual C++ 6.0 [Debug]"

很好,没有加那些猛壳,可以直接调试了.打开Ollydbg--伟大的Win32调试器(我的是:ODbyDYK v1.10 汉化修改版),下断点:

"bpx GetDriveType"

这是个kernel32.dll的导出函数,作用是判断分区的类型,是硬盘,是软盘,还是光盘等等.然后按下F9让程序运行吧,马上就断在调用的地方,下面贴出代码:

0040619E  |.  894424 14              mov dword ptr ss:[esp+14],eax

004061A2  |.  33FF                   xor edi,edi

004061A4  |>  856C24 14              /test dword ptr ss:[esp+14],ebp          ;可以看到,从这里到004061F4不断的循环,是为了枚举各个分区

004061A8  |.  74 42                  |je short shanghai.004061EC

004061AA  |.  0FBECB                 |movsx ecx,bl

004061AD  |.  33C0                   |xor eax,eax

004061AF  |.  51                     |push ecx                                ; /<%c>

004061B0  |.  8D5424 14              |lea edx,dword ptr ss:[esp+14]           ; |

004061B4  |.  66:894424 14           |mov word ptr ss:[esp+14],ax             ; |

004061B9  |.  68 8C7E5B00            |push shanghai.005B7E8C                  ; |format = "%c:"

004061BE  |.  52                     |push edx                                ; |s

004061BF  |.  884424 1E              |mov byte ptr ss:[esp+1E],al             ; |

004061C3  |.  FF15 C0B25800          |call dword ptr ds:[<&MSVCRT.sprintf>]   ; /sprintf

004061C9  |.  83C4 0C                |add esp,0C

004061CC  |.  8D4424 10              |lea eax,dword ptr ss:[esp+10]

004061D0  |.  50                     |push eax                                ; /RootPathName,GetDriveType函数的参数是一个指向字符串的指针,为盘的根目录名

004061D1  |.  FF15 4CB15800          |call dword ptr ds:[<&KERNEL32.GetDriveT>; /GetDriveTypeA,看,这个call就调用了GetDriveType函数

004061D7  |.  83F8 05                |cmp eax,5

004061DA  |.  75 10                  |jnz short shanghai.004061EC

004061DC  |.  8B4C24 1C              |mov ecx,dword ptr ss:[esp+1C]

004061E0  |.  8B4424 20              |mov eax,dword ptr ss:[esp+20]

004061E4  |.  881C0E                 |mov byte ptr ds:[esi+ecx],bl

004061E7  |.  46                     |inc esi

004061E8  |.  3BF0                   |cmp esi,eax

004061EA  |.  7D 0A                  |jge short shanghai.004061F6

004061EC  |>  D1E5                   |shl ebp,1

004061EE  |.  FEC3                   |inc bl

004061F0  |.  47                     |inc edi

004061F1  |.  83FF 20                |cmp edi,20

004061F4  |.^ 72 AE                  /jb short shanghai.004061A4

004061F6  |>  8BC6                   mov eax,esi                    ;循环很麻烦的,于是在出循环后--就是这个地方按下F2下断点,

004061F8  |.  5F                     pop edi                                  ;然后取消004061D1处的断点,它再运行一出循环就会断在这里了.

004061F9  |.  5E                     pop esi

004061FA  |.  5D                     pop ebp

004061FB  |.  5B                     pop ebx

004061FC  |.  83C4 08                add esp,8

004061FF  /.  C3                     retn

 

循环很麻烦的,于是在出循环后--就是004061F6这个地方按下F2下断点,然后取消004061D1处的断点,它再运行一出循环就会断在004061F6了.继续F8跟踪,离开这个call,来到这儿:

0040622E  |> /8B8C24 40010000        mov ecx,dword ptr ss:[esp+140]

00406235  |.  85C9                   test ecx,ecx

00406237  |.  7F 0B                  jg short shanghai.00406244

00406239  |.  C78424 40010000 800000>mov dword ptr ss:[esp+140],80

00406244  |>  8B8C24 40010000        mov ecx,dword ptr ss:[esp+140]

0040624B  |.  C74424 10 00000000     mov dword ptr ss:[esp+10],0

00406253  |.  85C9                   test ecx,ecx

00406255  |.  7E 76                  jle short shanghai.004062CD

00406257  |.  8BBC24 44010000        mov edi,dword ptr ss:[esp+144]

0040625E  |.  8B2D C0B25800          mov ebp,dword ptr ds:[<&MSVCRT.sprintf>] ;  MSVCRT.sprintf

00406264  |.  EB 04                  jmp short shanghai.0040626A

00406266  |>  8B4424 14              /mov eax,dword ptr ss:[esp+14]

0040626A  |>  833F 00                 cmp dword ptr ds:[edi],0

0040626D  |.  74 5E                  |je short shanghai.004062CD

0040626F  |.  32DB                   |xor bl,bl

00406271  |.  33F6                   |xor esi,esi

00406273  |.  85C0                   |test eax,eax

00406275  |.^ 7E AA                  |jle short shanghai.00406221

00406277  |>  84DB                   |/test bl,bl

00406279  |.  75 3B                  ||jnz short shanghai.004062B6

0040627B  |.  0FBE5434 18            ||movsx edx,byte ptr ss:[esp+esi+18]

00406280  |.  8B0F                   ||mov ecx,dword ptr ds:[edi]

00406282  |.  8D4424 38              ||lea eax,dword ptr ss:[esp+38]

00406286  |.  51                     ||push ecx

00406287  |.  52                     ||push edx

00406288  |.  68 907E5B00            ||push shanghai.005B7E90                 ;  ASCII "%c:/%s"

0040628D  |.  50                     ||push eax

0040628E  |.  FFD5                   ||call ebp

00406290  |.  8D4C24 48              ||lea ecx,dword ptr ss:[esp+48]

00406294  |.  6A 00                  ||push 0

00406296  |.  51                     ||push ecx

00406297  |.  E8 84FEFFFF            ||call shanghai.00406120

0040629C  |.  83C4 18                ||add esp,18

0040629F  |.  84C0                   ||test al,al

004062A1      74 02                  je short shanghai.004062A5

004062A3  |.  B3 01                  ||mov bl,1

004062A5  |>  8B4424 14              ||mov eax,dword ptr ss:[esp+14]

004062A9  |.  46                     ||inc esi

004062AA  |.  3BF0                   ||cmp esi,eax

004062AC  |.^ 7C C9                  |/jl short shanghai.00406277

004062AE  |.  84DB                   |test bl,bl

004062B0  |.^ 0F84 6BFFFFFF          |je shanghai.00406221

004062B6  |>  8B4424 10              |mov eax,dword ptr ss:[esp+10]

004062BA  |.  8B8C24 40010000        |mov ecx,dword ptr ss:[esp+140]

004062C1  |.  40                     |inc eax

004062C2  |.  83C7 04                |add edi,4

004062C5  |.  3BC1                   |cmp eax,ecx

004062C7  |.  894424 10              |mov dword ptr ss:[esp+10],eax

004062CB  |.^ 7C 99                  /jl short shanghai.00406266

004062CD  |>  5F                     pop edi

004062CE  |.  5E                     pop esi

004062CF  |.  5D                     pop ebp

004062D0  |.  B0 01                  mov al,1

004062D2  |.  5B                     pop ebx

004062D3  |.  81C4 2C010000          add esp,12C

004062D9  /.  C3                     retn

 

在,我们可以在堆栈中看到,这个游戏要判断光盘根目录下是否有"AutoRun.exe"这个文件,看见

00406297  |.  E8 84FEFFFF            ||call shanghai.00406120

吗?很像关键Call哦,F7跟进去看看:

00406120  /$  8B4424 04              mov eax,dword ptr ss:[esp+4]

00406124  |.  6A 00                  push 0                                   ; /amode = 0

00406126  |.  50                     push eax                                 ; |path

00406127  |.  FF15 D4B15800          call dword ptr ds:[<&MSVCRT._access>]    ; /_access

0040612D  |.  83C4 08                add esp,8

00406130      83F8 FF                cmp eax,-1

00406133  |.  0F95C0                 setne al

00406136  /.  C3                     retn

 

cmp eax,-1这句好像是比较是否错误呢,我们把-1改成0试试,然后保存文件,恢复成原状,继续跟踪,从这个call出来,回到:

00406297  |.  E8 84FEFFFF            ||call shanghai.00406120

0040629C  |.  83C4 18                ||add esp,18

0040629F  |.  84C0                   ||test al,al

004062A1      74 02                  je short shanghai.004062A5                ;主意!关键跳

004062A3  |.  B3 01                  ||mov bl,1

004062A5  |>  8B4424 14              ||mov eax,dword ptr ss:[esp+14]

004062A9  |.  46                     ||inc esi

004062AA  |.  3BF0                   ||cmp esi,eax

004062AC  |.^ 7C C9                  |/jl short shanghai.00406277

004062AE  |.  84DB                   |test bl,bl

004062B0  |.^ 0F84 6BFFFFFF          |je shanghai.00406221

004062B6  |>  8B4424 10              |mov eax,dword ptr ss:[esp+10]

004062BA  |.  8B8C24 40010000        |mov ecx,dword ptr ss:[esp+140]

004062C1  |.  40                     |inc eax

004062C2  |.  83C7 04                |add edi,4

004062C5  |.  3BC1                   |cmp eax,ecx

004062C7  |.  894424 10              |mov dword ptr ss:[esp+10],eax

004062CB  |.^ 7C 99                  /jl short shanghai.00406266

004062CD  |>  5F                     pop edi

004062CE  |.  5E                     pop esi

004062CF  |.  5D                     pop ebp

004062D0  |.  B0 01                  mov al,1

004062D2  |.  5B                     pop ebx

004062D3  |.  81C4 2C010000          add esp,12C

004062D9  /.  C3                     retn

看到je short shanghai.004062A5这句吗,就是关键跳转,如果跳转了,接着的mov bl,1这句就不能执行了,而mov bl,1这句就是把关键标识置位的!把je short shanghai.004062A5 改成je short shanghai.004062A3,嘿嘿,让他直接跳到下一条指令.然后保存文件,运行试试,成功!,没有要求插入CD了!最好善始善终嘛,做个免CD补丁,懒得编程了,打开KeyMaker,马上做好一个,需要的请留言!
Weevely图片木马制作:PHP后门免杀与文件上传漏洞实战 Web安全领域,文件上传漏洞是常见的攻击入口,攻击者常利用其上传恶意脚本获取服务器控制权。其核心原理在于服务器对用户上传文件的类型、内容校验不严,导致可执行文件被上传并解析。为绕过基础防护,免杀技术应运而生,通过代码混淆、隐写等手段,使恶意载荷规避静态特征检测。Weevely作为一款功能强大的PHP后门管理工具,其生成的载荷具备出色的混淆和编码特性,天然适用于免杀场景。本文将结合Weevely工具,详细演示如何将PHP后门嵌入图片文件,制作“图片木马”,并利用文件上传漏洞进行渗透测试,深入剖析其静态免杀原理 阅读详情

相关推荐

红警1懒人包技术解析:兼容层原理与安全运行指南

软件兼容性是计算机系统演进中的经典问题,尤其在操作系统和硬件架构发生代际更迭时尤为突出。其核心原理在于,老版本软件依赖的API接口、硬件访问方式和运行时环境,在新系统中可能已被移除或重构。从技术价值看,解决兼容性问题不仅能让经典软件焕发新生,更是对计算机发展历史的活态保存。在应用场景上,游戏、专业工具、企业遗留系统等都面临类似挑战。本文以《红色警戒1》为例,深入剖析了通过DDraw包装器、高分辨率补丁等**兼容层技术**构建的“懒人包”如何实现**解压即玩**,将复杂的底层适配封装成用户友好的解决方案,并提

weixin_30824599的博客 664

最近游戏更新 未整理 无图片 续3

1 点击下载-->《反恐精英1.5》免CD-KEY版 http://61.156.42.112/youxi/software/HLServer_match.rar 2 点击下载-->《反恐精英v1.5》 硬盘版 http://61.156.42.112/youxi/software/cscn15.exe 3 点击下载-->《武林群侠传》 http://61.156.42.112/youxi/sof

Penlee's Blog 6603

Siglus RealLive引擎通用一键解锁程序 - Build20120708 nodvd

Siglus RealLive引擎通用一键解锁程序 - Build20120708 nodvd游戏程序工具

妄想性仮想人格障害 汉化补丁(BUG修正)

YG剧情和主程序汉化经历了2个月有很多主观原因 和客观原因客观来说喜欢T社人很少这个没有什么疑义的感谢 椰子参加翻译感谢 血色玲珑 处理发音引擎.... 8/17修正某些剧情出错问题http://www.rapidshare.com/files/433774135/kasoucn.rar http://www.easy-share.com/1913138528/ 老规矩 先放界面...

编程资料大全 637

Ollydbg V1.10 正式汉化修改版+最新最全插件

Ollydbg V1.10 正式汉化修改版+最新最全插件

别再为数据发愁:5分钟理解事件相机原理,并自己动手生成事件图像

本文深入浅出地解析了事件相机的工作原理,并提供了从静态图像生成事件数据的实用方法。通过Python代码示例,读者可以快速掌握如何模拟事件相机的输出,应用于机器人导航、自动驾驶等领域,解决数据获取难题。

weixin_31458015的博客 298

运行sfc/scannow的时候弹出插入cd对话框

当通过网络安装,或者暂时没有光盘只有安装文件的时候可以通过如下方法让sfc找到安装文件用注册表打开HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Setup把ServicePackSourcePath和SourcePath修改为i386所在文件夹的路径,就是i386父目录的路径

597

STM32H743的ADC还能这么玩?定时器触发+DMA搬运,构建低CPU占用的数据流

本文深入探讨了STM32H743微控制器中ADC的高效使用方法,通过定时器触发和DMA搬运技术实现低CPU占用的数据流采集。详细解析了硬件架构、CubeMX配置步骤及高级优化技巧,包括双缓冲技术和多ADC同步采样,适用于电机控制、音频采集等高性能应用场景。

weixin_30698527的博客 647

debug命令_用DOS的Debug破解软件密码,当一回上个世纪的黑客

有一天在网上下载了一个上个世纪DOS年代的光盘ISO,里面有一个README.EXE的DOS可执行文件,在过去,这一般是光盘里面的软件说明。好奇想知道这光盘里面有一些什么软件,于是执行README.EXE,由于是虚拟机里面执行所以也不担心有病毒。执行的结果有点意外,文件竟然设置了访问密码。设置了访问密码的README.EXE这反而更好奇这个文件里面的内容了。疫情在家游戏玩多了,不妨把破解密码的过程...

weixin_39958631的博客 1130

pwm电机调速的原理介绍与代码实现

1、pwm实现调速的原理与介绍 PWM(Pulse Width Modulation)脉冲宽度调制。 1)占空比 pwm占空比就是一个脉冲周期内有效电平在整个周期所占的比例。 通过调节PWM的占空比就能调节IO口上电压的持续性变化,因此也能够控制外设的功率进行持续性变化,也就能控制直流电机的转速快慢。 那么重点就在于如何调节PWM波形的输出。如下图所示 图中的ARR是我们给定时器的一个预装载值,CCRx的上下变化是产生PWM波的关键。我们假设ARR大于CCRx的部分输出为高电平(即t1-t2、t3-t4

Clichong 7万+

JSAPI微信支付(小程序)V3版本JAVA代码实战源码

1.1、商户通过JSAPI/小程序下单接口获取到发起支付的必要参数prepay_id后,再通过微信小程序调起微信支付收银台JSAPI/小程序下单_JSAPI支付|微信支付商户文档中心1.3、微信H5发起类似,结合文档,细微调整,前端返回类似,参考文档修改为微信内置浏览器调起支付即可。

java web 704

刺客信条3免uplay破解补丁

这款THETA出品的补丁能够让玩家免去通过uplay启动《刺客信条3》游戏的麻烦。不需要注册账号,离线登陆等等一系列麻烦的操作,直接将crack目录下的文件复制到游戏目录下覆盖,即可直接启动游戏。 截图为乐游网实测截图,版本为单人模式的版本。 建议将游戏主程序加入防火墙,否则进入游戏后可能卡在登陆uplay很久(但是最后还是会跳过的)。 PS:覆盖前先备份。 下载地址:

missingu1314的专栏 4318

保姆级教程:用Docker快速部署mpromonet/webrtc-streamer实现WebRTC直播(附常见问题解决)

本文提供了一份详细的Docker部署mpromonet/webrtc-streamer的实战指南,帮助用户快速搭建WebRTC直播服务。内容涵盖从环境准备、基础部署到进阶配置与性能调优的全过程,并针对容器网络、视频流配置、跨网访问等常见问题提供了解决方案,旨在实现低延迟的流媒体传输。

dell8的博客 177

Windows系统安装SnapCameraPreservation完全教程:补丁制作与替换步骤

SnapCameraPreservation是一款帮助用户继续使用Snap Camera功能的开源项目,通过补丁制作与替换步骤,让你在Windows系统上轻松恢复Snap Camera的使用体验。本教程将详细介绍从环境准备到补丁应用的完整流程,即使是新手也能快速上手。 ## 一、准备工作:安装必要软件与获取文件 ### 1.1 安装Snap Camera 1.21.0版本 确保你的Window

gitblog_00711的博客 1010

EL6751实战指南:从协议解析到工业现场部署

本文详细介绍了EL6751网关在工业通信协议转换中的应用,从CANopen协议解析到EtherCAT系统部署的实战指南。通过协议栈位置、数据封装方式和通信模型差异的深入分析,帮助工程师高效实现EtherCAT主站与CANopen从站设备间的无缝对接,提升工业现场通信效率。

weixin_30338481的博客 546

基于Simulink的双PMSM差速驱动转矩同步控制建模示例

本文详细介绍了基于Simulink的双永磁同步电机(PMSM)差速驱动转矩同步控制建模方法。针对AGV/叉车等双电机独立驱动系统的转矩不同步问题,提出主从式+交叉耦合控制策略,在Simulink中实现直线行驶、90°转弯和单轮打滑恢复三种工况的仿真验证。通过动力学建模、参数差异设置、同步误差定义及控制律设计,最终实现同步误差<3%、转弯半径跟踪误差<5%、打滑后100ms内恢复的性能指标。文章特别强调了实际工程中的参数标定、通信同步和故障处理要点,并提供了完整的Simulink建模步骤和工具箱使

xiaoheshang_123的博客 203

YDWE 魔兽争霸III地图编辑器:免CD WorldEdit 二次开发,快速上手魔兽地图制作

如果你写过魔兽争霸III(Warcraft III,简称 War3)地图,大概率被这几件事卡过:官方 WorldEdit 功能太素、技能冷却改不动、触发器里想加点"超纲"的操作没入口、调试 JASS 脚本全靠猜。YDWE 就是为了解决这些痛点做的地图编辑器——它在 War3 自带 WorldEdit 基础上做了深度二次开发,兼容 1.20 和 1.24 两个版本,从编辑到调试一条龙。 ## 这是

gitblog_01021的博客 256

算法 | 基于MATLAB的增量式SVD技术综述:实现方法、代码示例与应用实践

效率提升:较传统SVD降低计算复杂度从On3O(n^3)On3至On2O(n^2)On2实时性:支持毫秒级动态数据更新资源友好:内存占用降低60%-80%[5]

尘世冰封的专栏 481

如何用 OpenCore Legacy Patcher 给老 Mac 升级 macOS:从制作启动盘到根补丁的完整操作

当更新弹窗提示"此 Mac 不再受最新版本 macOS 支持"时,OpenCore Legacy Patcher(老旧 Mac 系统升级工具)就是为这种处境准备的:它绕过苹果官方的机型限制,让不受支持的旧电脑引导并运行新版系统。这篇指南按三个执行阶段,带你完整走一遍给老 Mac 升级 macOS 的路径。 ## 动手前先判断老 Mac 是否适合升级 原理上它做了三件事:用 OpenCore 第

gitblog_00360的博客 329

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Deer Hunter 2005 光盘版补丁制作

atari公司的DeerHunter系列一直是我比较喜欢的游戏,射杀雄鹿并非这款游戏的乐趣所在。制作精美的大自然野外3D场景才是吸引我的地方。我玩的最新的版本是2005版,基于DriectX8的引擎。从最早下载到Demo,进入伊利诺斯州的树林,我就被茂密的树林惊诧了,因为相对于上一版2004版光秃秃的树木,这一版所有的林木,针叶的,阔叶的,棺木,还有蒿草,水草,材质制作的非常精美,已经看起来很有点

arkelee的专栏 1179

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

黑苹果硬件兼容性难题:如何用自动化工具告别ACPI补丁的手工制作?

你是否曾为黑苹果系统的硬件兼容性问题而苦恼?当USB端口无法正常工作、CPU电源管理异常、或者系统时钟出现问题时,传统解决方案往往需要深入理解复杂的ACPI规范,手动编写和调试DSDT/SSDT补丁。这个过程不仅技术门槛高,而且极易出错,让许多黑苹果爱好者望而却步。 现在,一个名为SSDTTime的开源工具正在改变这一现状。它通过自动化流程将复杂的ACPI补丁生成过程简化为几个简单的点击操作,让

gitblog_00473的博客 848

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

VMware里Windows7安装VMware Tools失败?跑去安装补丁也碰壁?看这一篇就够了

微软停止支持SHA-1签署的数字签名证书,要求改为使用SHA-2。但部分旧版微软系统本身并不支持SHA-2,这将导致在这些系统上,大量更新证书的软件无法正常使用。例如Vmware Tools,所以用户需要安装kb4474419补丁,建议下载官方补丁然后压缩成iso格式文件挂载...

xuxuxucq的博客 7346

OpenCore Legacy Patcher 让老款Mac升级最新macOS:3小时从制作启动U盘到根补丁

本文写给想在苹果官方已停止支持的老款Mac上安装 macOS Ventura、Sonoma 甚至 Sequoia,但从未制作过启动盘的用户。内容覆盖机型兼容判断、完整安装流程、工具内部机制与装完后的维护要点。 ## 先判断:这台Mac能不能升级 OpenCore Legacy Patcher 支持 2007–2017 年间的 Intel Mac,不支持 PowerPC 与 Apple Sili

gitblog_00340的博客 393

如何让一台十年以上的老 Mac 装上新版 macOS:OCLP 从 U 盘制作到根补丁的实操指南

苹果对老 Mac 结束系统支持,并不意味着这些机器只能报废。OpenCore Legacy Patcher(下称 OCLP)能让 2007 年起的 Intel Mac 安装 macOS Big Sur 11 至 Sequoia 15,装好之后系统还能继续接收常规更新。这篇文章把从环境准备、U 盘制作到根补丁落地的完整流程拆成三个阶段,并指出新手第一次操作时最容易踩的几个坑。 [![OpenCor

gitblog_00392的博客 292

MediaCreationTool.bat:一站式制作 Windows 10/11 安装介质(1507 到 23H2)

想做一张 Windows 11 安装介质,但官方工具只提供最新版、看不到企业版、旧电脑还会被 TPM 检查拦住。MediaCreationTool.bat 把微软官方工具包成脚本:覆盖 Windows 10 1507 到 11 23H2,产出三条路:刻 ISO、写 U 盘、原地升级。 ## 先搞清楚它能干什么 | 功能 | 具体做什么 | 适合谁 | | --- | --- | --- | |

gitblog_00138的博客 221
上一篇: [编程资源大集合]
下一篇: Welcome ! Please leave word here!
ShellEx
博客等级 码龄21年 4粉丝 43原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值