ARM Copy MEM II标准壳脱壳

五种Armadillo脱壳软件 五种Armadillo脱壳软件分享给大家。 立即下载
【目     标】:传奇外挂1.07
【工     具】:Olydbg1.1(diy版)、LORDPE、ImportREC1.6F
【任     务】: ARM 3.6或以下版本的COPYMEM II标准壳
【操作平台】:WinXP sp2
【作     者】: LOVEBOOM[DFCG][FCG][US]
【相关链接】: ……

【简要说明】: 这是一个ARM3.6或以下版本的COPYMEM II壳来的,壳没有乱序,也没有抽壳代码的。所以比较容易。
【详细过程】:
OD设置:忽略全部异常用修改过的OD(必须PATCH过OutputDebugStringA漏洞),隐藏OD,忽略LOCKX(C000001E),如下图:
脱壳过程分为四部分:找OEP、DUMP程序、修复IAT,修复优化主程序。
第一部分:找OEP
用OD载入目标程序:
0056E379 >/$  55            PUSH EBP                                 ;  壳入口
0056E37A  |.  8BEC          MOV EBP,ESP
……
因为3.7以下版本的ARM不会检测全部API的CC断点。所以可以直接下断BP。先下BP
WaitForDebugEvnet断点,然后F9运行,到这里停下:
7C85A268 >  8BFF            MOV EDI,EDI                              ; 第一次停这里,停下后注意观察堆栈.
7C85A26A    55              PUSH EBP
7C85A26B    8BEC            MOV EBP,ESP
……
 
 
 
 
停下后去除CC断点,看看堆栈的信息:
注意ESP+4处的地址,在dump窗口中显示该地址信息:
再下bp WaiteProcessMemory断点并运行,断下后看看我们刚才地DUMP窗口中就可以找到程序有OEP了。
OEP在1C处,这个程序的OEP也就是4014AC,记下先。到这里第一部分就算完成了。
第二部分:DUMP程序
知道OEP后,如果你现在直接去follow 4014AC的话,你将什么都得不到,看看刚才断下地方的堆栈信息,我们可以得到我们要用的东西:
先算出真正代码所在的位置,计算方法为:OEP减去堆栈ESP+8处的address 401000加上ESP+0C处的Buffer 003c64b8,(至于为什么,可以去参考相关的文章。)所以这个程序的OEP代码为:4014AC-401000+003C64B8=003C6964.
003C6964   /EB 10           JMP SHORT 003C6976                       ; 这里就是程序原OEP代码
003C6966   |66:623A         BOUND DI,DWORD PTR DS:[EDX]
003C6969   |43              INC EBX
003C696A   |2B2B            SUB EBP,DWORD PTR DS:[EBX]
003C696C   |48              DEC EAX
以前有关文章到这里后要再处理下再DUMP,不过这个程序不用处理的,附以前文章里说的处理地方,你也可以直接跳过这一步到NEXT1处。
下面以这个为例说说处理的情况.先看堆栈:
0012D98C   0056C421  /CALL to WriteProcessMemory from MLEx.0056C41B
0012D990   0000004C  |hProcess = 0000004C (window)
0012D994   00401000  |Address = 401000
0012D998   003C64B8  |Buffer = 003C64B8
0012D99C   00001000  |BytesToWrite = 1000 (4096.)
0012D9A0   0012DAA8  /pBytesWritten = 0012DAA8
0012D9A4   00000002
0012D9A8   00000002
0012D9AC   0012F5A4
0012D9B0   00000000
0012D9B4   00000000
0012D9B8   00000000
0012D9BC   00000000
0012D9C0   00000000
0012D9C4   00000000
0012D9C8   00000000
0012D9CC   00000000
0012D9D0   00000000
0012D9D4   00000000
0012D9D8   00000000
0012D9DC   00000000
0012D9E0   00000000
0012D9E4   00000000
0012D9E8   00000000
0012D9EC   00000000
0012D9F0   00000000
0012D9F4   00000000
0012D9F8   00000000
0012D9FC   00000000
0012DA00   00000000
0012DA04   0012BDA4
0012DA08   00000000
0012DA0C   7C9305C8  RETURN to ntdll.7C9305C8 from ntdll.7C922F2F
0012DA10   005EC790  MLEx.005EC790
0012DA14   0012BE70
0012DA18   7C930551  RETURN to ntdll.7C930551 from ntdll.7C9305A2
0012DA1C   00561378  MLEx.00561378
0012DA20   7C93056D  RETURN to ntdll.7C93056D from ntdll.7C92EE02
0012DA24   0012BEC4
0012DA28   00000000
0012DA2C   00000000
0012DA30   00000000
0012DA34   00000000
0012DA38   00000020
0012DA3C   0012C368
0012DA40   0012BDEC
0012DA44   004A6C1C  MLEx.004A6C1C
0012DA48   0012C7FC
0012DA4C   0012BE20
0012DA50   00000039
0012DA54   004C1AB5  MLEx.004C1AB5
0012DA58   0012BE20
0012DA5C   0012BE08
0012DA60   004A6E3B  MLEx.004A6E3B
0012DA64   0012BE20
0012DA68   00000039
0012DA6C   0012C368
0012DA70   00000001
0012DA74   00000000
0012DA78   0012C340
0012DA7C   004A77D8  MLEx.004A77D8
0012DA80   0012BE20
0012DA84   828BF055
0012DA88   003C74B8
0012DA8C   003C74B8
0012DA90   5C3A4431
0012DA94   75636F44
0012DA98   00000020
0012DA9C   00401000  MLEx.00401000
0012DAA0   00000020
0012DAA4   003C74B8
0012DAA8   00001000
0012DAAC   003C74B8
0012DAB0  /0012DAE4
0012DAB4  |0056B12E  RETURN to MLEx.0056B12E from MLEx.0056B475
0012DAB8  |00000000
在0012DAB4处右键跟随:
在代码窗口中到这里:
0056B129   .  E8 47030000   CALL 0056B475                            ;  这个CALL处理解码
0056B12E   >  83C4 0C       ADD ESP,0C                               ;  跟随到这里
……
到这里后CTRL+F查找命令:CALL 0056B475共会找到两处(如果ARM3.7或以上版本,会有好几个的),第二个地方为:
0056B3E4   .  E8 8C000000   CALL 0056B475                            ;  第二个地方
0056B3E9   .  83C4 0C       ADD ESP,0C
0056B3EC   .  9C            PUSHFD
0056B3ED   .  60            PUSHAD
……
第二地方NOP掉就行了:
0056B3E4      90            NOP                                      ;  第二个地方
0056B3E5      90            NOP
0056B3E6      90            NOP
0056B3E7      90            NOP
0056B3E8      90            NOP
0056B3E9   .  83C4 0C       ADD ESP,0C
处理完毕。
 
 
 
l         NEXT1:
到这里后,修改一下代码就要DUMP了,让程序挂起来才能DUMP出来,用和SICE的方法一样改EIP为JMP EIP就行了。
修改003C6964:
003C6964   /EB 10           JMP SHORT 003C6976
003C6966   |66:623A         BOUND DI,DWORD PTR DS:[EDX]
003C6969   |43              INC EBX
003C696A   |2B2B            SUB EBP,DWORD PTR DS:[EBX]
修改为:
003C6964  - EB FE           JMP SHORT 003C6964
003C6966    66:623A         BOUND DI,DWORD PTR DS:[EDX]
003C6969    43              INC EBX
003C696A    2B2B            SUB EBP,DWORD PTR DS:[EBX]
003C696C    48              DEC EAX
这然后让程序“挂起来”,打开LORDPE选择第二个进程,然后选择ARMDUMP的插件,
选择好后就可以dump full程序。第二部分完毕。
 
第三部分:修复IAT
代码已经DUMP下来了,我们现在要修复IAT。关闭前面打开的OD,然后用OD载入刚才DUMP的程序,在OEP附件找到一下IAT的地起位置。比较简单的找到的地址533000(起始位置前一点不用担心搞错J)。记得地址后,用OD再次载入目标,下断:bp DebugActiveProcess,运行后断下,就可以看到PROCESS ID了。到这里后,再开一个OD来附加这个PROCESS。附加后中断在系统中,按F9运行,运行中按F12停止就可以到壳代码处,因为那里的代码是死循环的:-)
0056E379 >- EB FE           JMP SHORT <ModuleEntryPoint>                停在这里
0056E37B    EC              IN AL,DX                                 ; I/O command
暂停后把EP代码改回去,改成558B(push ebp,mov ebp,esp),其实到了这里壳就像是一个双进程标准壳了,按双进程标准壳的方法就可以获取到IAT。具体方法:
改回代码后直接下断BP OpenMutexA,F9运行后中断然后清除断点记下ESP+C的内容。
在一空白处写入以下代码:
00401000    60              PUSHAD
00401001    9C              PUSHFD
00401002    68 F0FB1200     PUSH 12FBF0                              ; ASCII "168::DAC4C6C5E3"
00401007    33C0            XOR EAX,EAX
00401009    50              PUSH EAX
0040100A    50              PUSH EAX
0040100B    E8 2FDB407C     CALL kernel32.CreateMutexA
00401010    9D              POPFD
00401011    61              POPAD
00401012  - E9 04DC407C     JMP kernel32.OpenMutexA
把EIP定位到代码处(Ctrl+*),写完代码后更改OD异常设置:
打开内存访问错误异常。然后F9运行程序,内存异常断下后,忽略全部的异常并下断Bp GetModuleHandleA+5,Shit+f9忽略异常继续运行,API断下后,取消断点,ALT+F9执行返回到用户代码:
00CA532B    FF15 A450CC00   CALL DWORD PTR DS:[CC50A4]               ; kernel32.GetModuleHandleA
00CA5331    8B0D 60D8CC00   MOV ECX,DWORD PTR DS:[CCD860]            ; 返回到这里
00CA5337    89040E          MOV DWORD PTR DS:[ESI+ECX],EAX
00CA533A    A1 60D8CC00     MOV EAX,DWORD PTR DS:[CCD860]
00CA533F    393C06          CMP DWORD PTR DS:[ESI+EAX],EDI
00CA5342    75 16           JNZ SHORT 00CA535A
00CA5344    8D85 B4FEFFFF   LEA EAX,DWORD PTR SS:[EBP-14C]
00CA534A    50              PUSH EAX
00CA534B    FF15 B850CC00   CALL DWORD PTR DS:[CC50B8]               ; kernel32.LoadLibraryA
00CA5351    8B0D 60D8CC00   MOV ECX,DWORD PTR DS:[CCD860]
00CA5357    89040E          MOV DWORD PTR DS:[ESI+ECX],EAX
00CA535A    A1 60D8CC00     MOV EAX,DWORD PTR DS:[CCD860]
00CA535F    393C06          CMP DWORD PTR DS:[ESI+EAX],EDI
00CA5362    0F84 AD000000   JE 00CA5415                              ; 这里Magic jmp 改为JMP
;改为JMP 00CA5415
00CA5368    33C9            XOR ECX,ECX
00CA536A    8B03            MOV EAX,DWORD PTR DS:[EBX]
修改完后ALT+M打开内存页面,在text段下断:
下断完毕F9就到OEP处:
004014AC    6D              INS DWORD PTR ES:[EDI],DX                ; 中断在这里,虽然到这里代码不能用,但可以获取到正确的IAT
004014AD    66:16           PUSH SS
……
断下后用ImportREC对PROCESS进行IAT修复操作,IAT的开始地址用我们上面记下的533000-400000=133000,大小可以写大一点(当然你也可以计算的).cut无效的指针再FIXDUMP就行了。附图:
修复IAT完毕(注:如果是3.7X或以上版本还有乱序,操作多一点)。
 
 
 
第四部分:修复程序/优化
程序现在已经基本搞完了,现在做一点收尾的工作。关掉两个OD,用lordpe改回OEP的代码。把没有用的段清除掉然后用LordPE FIXDUMP一下:
 
Finished!J .
 
Greetz:
 Fly.Jingulong,yock,tDasm.David.hexer,hmimys,ahao.UFO(brother).alan(sister).all of my friends and you!
 
By loveboom[DFCG][FCG][US]
Email:loveboom#163.com
Date:2006-3-27 16:57
 
ARM 4.X脱壳机.可以支持双进程的.听说不错.保存一个. 立即下载

相关推荐

Win11下Android模拟器报HAXM未安装?三步搞定虚拟化配置(附终端命令)

本文详细解析了Win11下Android模拟器HAXM报错的解决方案,从虚拟化配置到终端命令实战。通过检查BIOS设置、调整Windows功能及执行PowerShell命令,三步搞定虚拟化配置问题,有效提升模拟器性能。特别针对Win11与HAXM的兼容性问题提供了专业指导。

weixin_29215815的博客 144

Armpro脱壳软件搭建教程附源代码

1.配置注册机文件,打开将arm.zip/res目录下,mt管理器搜索将其全部修改为你自己的域名或者是服务器IP。requirepass armadillo666 redis密码,留空代表没有设置密码。arm.zip修改完毕后(第一步)上传到www目录。4.配置Redis,宝塔应用商店搜索Redis。bind 127.0.0.1 绑定IP。5.然后将资源文件全部下载到服务器上。PHP8.0版本,数据库8.0版本。然后将jar包上传至root目录。port 555 绑定端口。

1820

基于Arduino UNO的OLED显示器使用方法x2(Arduino系列五)

Arduino使用OLED显示模块可以实现串口数据显示,还可以与其他模块联合使用,实现实时显示开发板实时数据。

LNN0212的博客 4174

ARM全套源码带脱壳

Arm开发源码(未编译)https://www.123pan.com/s/2XMiVv-ubF0.html。Arm脱壳源码(全套)https://www.123pan.com/s/2XMiVv-KbF0.html。自写arm后台https://www.123pan.com/s/2XMiVv-0bF0.html。这个圈子乱糟糟的 不玩了 开源学习吧 纸片源我这也有 等后续看情况开不开源。

m0_74035321的博客 1931

可微编程:当深度学习遇见物理定律,重塑科学计算新范式

本文探讨了可微编程如何将深度学习与物理定律相结合,重塑科学计算范式。通过自动微分技术,它将物理方程融入可微计算图,使模型在数据驱动的同时遵守物理约束。文章以神经常微分方程为例,阐述了其在连续系统建模、科学模拟器优化等领域的应用,并分析了当前面临的挑战与最佳实践路径。

weixin_29056145的博客 135

逆向实战:基于内存态匿名段分析的 DexProtector 检测绕过策略

本文深入探讨了针对DexProtector加固方案的Frida检测绕过策略。通过分析运行时动态加载到匿名内存段的核心检测逻辑,提出了一套基于内存态分析、定位并转储匿名可执行段,进而通过精准Hook与“等式化替换”等技术实现稳定绕过的实战方法。该方法不仅适用于DexProtector,也对采用类似内存隐藏技术的加固方案具有参考价值。

ik678901的博客 516

ARM单进程脱壳之FtpRush v1.0

ARM单进程脱壳之FtpRush v1.0【目    标】:FTPRush v1.0【工    具】:Olydbg1.1(diy版)、LORDPE、ImportREC1.6F【任    务】简单的脱一下壳【操作平台】:Windows Xp sp1【作    者】:loveboom[DFCG][FCG][US]【简要说明】:因为程序和其它的ARM的加的程序有所不同,程序的部分代码跑到壳内去了.。所以

loveboom's Reverse Enginering 2126

开关电源设计实战:如何用AP值快速选型磁芯(附计算公式推导)

本文为开关电源工程师提供了基于AP值的磁芯快速选型实战指南。文章深入解析了AP值作为磁芯‘功率吞吐量’指标的核心物理意义,并通过详细的公式推导和24W反激电源设计实例,手把手演示如何利用AP值计算公式,结合电流密度、窗口利用率等关键参数,从众多磁芯型号中高效筛选出合适型号,同时强调了选型后的关键校验步骤与常见误区。

weixin_29234239的博客 877

一款惊艳的Android脱壳工具

今天给大家带来的项目是:dumpDex-Android脱壳有加密就有解密,Android的App也是如此。市面上有很多加壳工具,比如梆梆、爱加密、乐固等,有收费的也有免费的,还有就是公司自己研发的给公司内部App使用的加密工具。我们今天介绍的是怎么给加了壳的App脱壳,这里用到的工具是dumpDex。插件需要在xposed环境中使用,支持市面上大多数加密壳,软件仅供学习用,请勿用于其他用途,项目不是成品,可能会引起软件崩溃.

2401_84004024的博客 6248

用 ADT 连接 SAP S/4HANA Public Cloud 开发租户的完整落地指南

摘要:在SAP S/4HANA公有云中进行ABAP开发时,必须使用Development Tenant(客户端080)而非Customizing Tenant(客户端100)连接ADT工具。开发用户需具备SAP_BR_DEVELOPER角色且写权限不受限,开发对象应创建在结构包的子包中。连接前需确认正确的ABAP服务URL(通常为Launchpad URL去掉"/ui"),并通过运行控制台程序验证全链路功能。典型开发场景如通过BAdI实现业务校验时,需遵循Clean Core原则在指定包

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 342

ANSYS——模态分析的理论基础

ANSYS模态分析理论基础

python_AI_fans的博客 9098

常见App加固厂商脱壳方法研究

目录 简述(脱壳前学习的知识、壳的历史、脱壳方法)第一代壳第二代壳第三代壳第N代壳 简述 Apk文件结构Dex文件结构壳史壳的识别 Apk文件结构 Dex文件结构 壳史 第一代壳 Dex加密 Dex字符串加密资源加密对抗反编译反调试自定义DexClassLoader 第二代壳 Dex抽取与So加固 对抗第一代壳常见

煜铭2011 5481

基于STM32的录音机设计(STM32F103+VS1053B)

本项目设计并实现了一款基于STM32微控制器的便携式录音机。该录音机采用STM32F103C8T6作为主控芯片,结合VS1053B音频编解码模块、SD卡存储、OLED显示屏以及按键模块,提供了手动录音、自动录音和录音回放等多种功能。

1万+

2024ARM网络验证 支持一键云注入引流弹窗注册机 一键脱壳APP加固搭建程序源码及教程

此套源码功能强大,支持APK脱壳、注入、网络验证、注册机、引流弹窗、更新弹窗和公告等功能,并具有强大的系统应用管理端,可轻松管理用户数量和卡密状态等数据统计。armpro脱壳软件可在线修改手机文件和游戏数据,并可添加会员功能、卡密验证和公告弹窗等,自由设置会员到期时间,并可对接自动发卡平台和注入任意APP实现卡密和会员功能。来源https://www.anlu1314.com/2024/11/17/6000/将全部dex里的 改成服务器IP或者域名 修改为你的域名(或者ip)

wing_77的博客 5015

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

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

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

ARM指令教程【copy】

原文:ARM汇编指令 - huhu0013 - 博客园https://www.cnblogs.com/huhu0013/p/4103024.html ARM汇编程序特点: l所有运算处理都是发生通用寄存器(一般是R0~R14)的之中.所有存储器空间(如C语言变量的本质就是一个存储器空间上的几个BYTE).的值的处理,都是要传送到通用寄存器来完成.因此代码中大量看到LDR,STR指令来传送值. lARM汇编语句中.当前语句很多时候要隐含的使用上一句的执行结果.而且上一...

loveboon1的专栏 1217

计算机控制技术及应用

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

发现一个安卓万能脱壳方法

可以一键无ROOT脱,在犹豫要不要放出来,放出来那些加壳公司都没法玩了,会不会找麻烦啊。 关键字:运行时 ClassLoaderdexFindClass 重点:别管dex进入内存的事了,加壳的原理也就是让你搞不清楚的情况下把dex文件加载到内存中,想想ClassLoader是怎么查找类的,Activity这些类是从哪里读的呢 关键函数: Dalvik模式下基于Androi...

zhangmiaoping23的专栏 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

一到四代壳解决方案

第一代加固 DEX加密 proguard等混淆、其他弱加密 DEX字符串加密 静态DEX文件整体加密解密 资源加密(xml与arsc文件加密及十六进制加密) 对抗反编译(添加垃圾类) 反调试 自定义DexClassLoader 第二代加固 DEX抽取与SO加固 DEX动态加载(分为利用jni和自定义jni即自定义底层函数) DEX代码抽取到外部(类抽取加密按需解密和动态方法修改替换) SO加密 第三代加固DEX动态解密与SO混淆 Dex代码动态解密 SO代码膨胀混淆 .

Codeooo 博客 1万+

FART彻底搞定函数抽取型壳

FART原理剖析 一、App启动流程 这里以一张图说明App进程的创建流程: 通过Zygote进程到最终进入到app进程世界,我们可以看到ActivityThread.main()是进入App世界的大门,下面对该函数体进行简要的分析,具体分析请看文末的参考链接。 1 2 3 4 5 6 7 8 9 ...

u014753748的博客 9617

【转】脱壳工具

脱壳工具http://www.pediy.com/tools/unpacker.htm 文件类型侦测工具 peid 0.94

学习........ 4393

Android Apk脱壳(360加固)

工具下载:https://github.com/home-hwt/android/tree/master/decode_apkgenymotion模拟器下载http://www.genymotion.net/ FDex2通过Hook ClassLoader的loadClass方法,反射调用getDex方法取得Dex(com.android.dex.Dex类对象),在将里面的dex写出 dex2ja...

weixin_34004576的博客 7294

安卓常见脱壳方法

安卓常见脱壳方法 之前了解过一些加固方法,像360,乐固,爱加密,梆梆等。很多apk包都经过加壳处理,因此想了解更多内容就需要对加壳的APP进行脱壳处理。 drizzleDumper 1.下载文件 https://www.lanzous.com/i7qbkva 2.将对应系统架构的drizzleDumper移动到根目录/data/local/tmp下,赋予读写执行权限 3.cmd进入到该目录下 执...

多多酱的csdn 6199

FRIDA 安卓快速脱壳

脱壳主要解决什么问题:1 针对在渗透测试中,如果遇到数据包被加密,证书被加密,则需要分析源代码,分析加密算法等 2 在红蓝对抗中,搜索一些秘钥信息以及或者遗漏的资产信息 0x01 下载某apk发现有壳 通过上图可以发现,com包下代码量比较少,有ApplicationWrapper,一般是有防护的表现 0x02 脱壳准备 注意:这种方法虽然比较好用,但是并不代表所有的壳都可以拖 需要一部root手机,frida环...

问题很多的小明 8630

android逆向 arm,脱壳视频打包集android逆向手册arm逆向分析.pdf

ARM 逆向ARM 中基于 PC 的寻址最近看 ARM 的反汇编,计算地址时搞得有点头晕,总结了两天,把总结的结果记录下来。还是那句话,网上的资料很零碎,多不可信。在 ARM 的代码中,经常会用到相对偏移,换句话说就是基于PC 的寻址,以PC 为基准,加上偏移后找到相对地址。听起来似乎是个很简单的事情,但由于 ARM 指令的多样性,从 ARM 的指令机器码推算出偏移地址并不是一件简单的事情。今天...

weixin_32579395的博客 287

ASPROTECT 2.x 脱壳系列(一)

ASPROTECT 2.x 脱壳系列(一)【目    标】:DVD Fab Gold 2.9.4.2【工    具】:Olydbg1.1(diy版)、LORDPE、ImportREC1.6F【任    务】:简单的脱壳【操作平台】:Windows XP sp2【作    者】: LOVEBOOM[DFCG][FCG][US]【相关链接】: 自己搜索下【简要说明】: 时间在不断的减少,人越靠近死亡的

loveboom's Reverse Enginering 1万+
上一篇: ASPROTECT 2.0 脱壳示例
下一篇: PESpin v1.1完全外壳分析
bmd2chen
博客等级 码龄23年 34粉丝 45原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值