通过 PEB 改变进程名,实现“穿透”防火墙

修改程序的peb过某些防火墙 现在自己构造数据包进行发送已经不是很现实了,简单的数据还行,如果是大的数据,比如发送一个文件,比如不停的和外界的服务器保持联系,都是很不方便的,所以找到了一个方法,就是将程序的peb修改成和某些系统进程一样的peb,这样就在一定程度上伪装成了系统进程,这里以lsass.exe为例。有关peb的资料请自己查相关资料,或者是好好看看 windows核心编程,windows程序设计。首先声明相关的结 阅读详情
PEB(Process Environment Block)——进程环境块,存放进程信息,每个进程都有自己的 PEB 信息。在 Win 2000 下,进程环境块的地址对于每个进程来说是固定的,在 0x7FFDF000 处,这是用户区内存,所以程序能够直接访问。准确的 PEB 地址应从系统的 EPROCESS 结构的 1b0H 偏移处获得,但由于 EPROCESS 在进程的核心内存区,所以程序不能直接访问。还可以通过 TEB 结构的偏移 30H 处获得 PEB 的位置,代码如下:
mov eax,fs:[18]
mov eax,[eax+30]
PEB 及其相关结构如下:
typedef void (*PPEBLOCKROUTINE)(PVOID PebLock);

typedef struct _UNICODE_STRING {
USHORT Length;
USHORT MaximumLength;
PWSTR Buffer;
} UNICODE_STRING, *PUNICODE_STRING;

typedef struct _RTL_DRIVE_LETTER_CURDIR {
USHORT Flags;
USHORT Length;
ULONG TimeStamp;
UNICODE_STRING DosPath;
} RTL_DRIVE_LETTER_CURDIR, *PRTL_DRIVE_LETTER_CURDIR;

typedef struct _PEB_LDR_DATA {
ULONG Length;
BOOLEAN Initialized;
PVOID SsHandle;
LIST_ENTRY InLoadOrderModuleList;
LIST_ENTRY InMemoryOrderModuleList;
LIST_ENTRY InInitializationOrderModuleList;
} PEB_LDR_DATA, *PPEB_LDR_DATA;

typedef struct _LDR_MODULE {
LIST_ENTRY InLoadOrderModuleList;
LIST_ENTRY InMemoryOrderModuleList;
LIST_ENTRY InInitializationOrderModuleList;
PVOID BaseAddress;
PVOID EntryPoint;
ULONG SizeOfImage;
UNICODE_STRING FullDllName;
UNICODE_STRING BaseDllName;
ULONG Flags;
SHORT LoadCount;
SHORT TlsIndex;
LIST_ENTRY HashTableEntry;
ULONG TimeDateStamp;
} LDR_MODULE, *PLDR_MODULE;

typedef struct _RTL_USER_PROCESS_PARAMETERS {
ULONG MaximumLength;
ULONG Length;
ULONG Flags;
ULONG DebugFlags;
PVOID ConsoleHandle;
ULONG ConsoleFlags;
HANDLE StdInputHandle;
HANDLE StdOutputHandle;
HANDLE StdErrorHandle;
UNICODE_STRING CurrentDirectoryPath;
HANDLE CurrentDirectoryHandle;
UNICODE_STRING DllPath;
UNICODE_STRING ImagePathName;
UNICODE_STRING CommandLine;
PVOID Environment;
ULONG StartingPositionLeft;
ULONG StartingPositionTop;
ULONG Width;
ULONG Height;
ULONG CharWidth;
ULONG CharHeight;
ULONG ConsoleTextAttributes;
ULONG WindowFlags;
ULONG ShowWindowFlags;
UNICODE_STRING WindowTitle;
UNICODE_STRING DesktopName;
UNICODE_STRING ShellInfo;
UNICODE_STRING RuntimeData;
RTL_DRIVE_LETTER_CURDIR DLCurrentDirectory[0x20];
} RTL_USER_PROCESS_PARAMETERS, *PRTL_USER_PROCESS_PARAMETERS;

typedef struct _PEB_FREE_BLOCK {
struct _PEB_FREE_BLOCK *Next;
ULONG Size;
} PEB_FREE_BLOCK, *PPEB_FREE_BLOCK;

typedef struct _PEB {
BOOLEAN InheritedAddressSpace;
BOOLEAN ReadImageFileExecOptions;
BOOLEAN BeingDebugged;
BOOLEAN Spare;
HANDLE Mutant;
PVOID ImageBaseAddress;
PPEB_LDR_DATA LoaderData;
PRTL_USER_PROCESS_PARAMETERS ProcessParameters;
PVOID SubSystemData;
PVOID ProcessHeap;
PVOID FastPebLock;
PPEBLOCKROUTINE FastPebLockRoutine;
PPEBLOCKROUTINE FastPebUnlockRoutine;
ULONG EnvironmentUpdateCount;
PVOID *KernelCallbackTable;
PVOID EventLogSection;
PVOID EventLog;
PPEB_FREE_BLOCK FreeList;
ULONG TlsExpansionCounter;
PVOID TlsBitmap;
ULONG TlsBitmapBits[0x2];
PVOID ReadOnlySharedMemoryBase;
PVOID ReadOnlySharedMemoryHeap;
PVOID *ReadOnlyStaticServerData;
PVOID AnsiCodePageData;
PVOID OemCodePageData;
PVOID UnicodeCaseTableData;
ULONG NumberOfProcessors;
ULONG NtGlobalFlag;
BYTE Spare2[0x4];
LARGE_INTEGER CriticalSectionTimeout;
ULONG HeapSegmentReserve;
ULONG HeapSegmentCommit;
ULONG HeapDeCommitTotalFreeThreshold;
ULONG HeapDeCommitFreeBlockThreshold;
ULONG NumberOfHeaps;
ULONG MaximumNumberOfHeaps;
PVOID **ProcessHeaps;
PVOID GdiSharedHandleTable;
PVOID ProcessStarterHelper;
PVOID GdiDCAttributeList;
PVOID LoaderLock;
ULONG OSMajorVersion;
ULONG OSMinorVersion;
ULONG OSBuildNumber;
ULONG OSPlatformId;
ULONG ImageSubSystem;
ULONG ImageSubSystemMajorVersion;
ULONG ImageSubSystemMinorVersion;
ULONG GdiHandleBuffer[0x22];
ULONG PostProcessInitRoutine;
ULONG TlsExpansionBitmap;
BYTE TlsExpansionBitmapBits[0x80];
ULONG SessionId;
} PEB, *PPEB;

PEB 结构中的 PPEB_LDR_DATA 是一个指向 PEB_LDR_DATA 的指针,PEB_LDR_DATA 结构中有 3 个 LIST_ENTRY 的指针,分别是 InLoadOrderModuleList; InMemoryOrderModuleList; InInitializationOrderModuleList,如此循环。可以通过这三个 LIST_ENTRY 结构来遍历进程加载的模块。LDR_MODULE 结构中的 FullDllName 成员便是一个包含模块名信息的 UNICODE_STRIN 结构,它的成员 Buffer 即是指向存放模块名的 UNICODE 字符串指针。还有要注意的是,RTL_USER_PROCESS_PARAMETERS 结构中的 ImagePathName.Buffer 和 LoaderData->InLoadOrderModuleList.Flink->FullDllName.Buffer 指向的其实是同一内存。


在 Windows 2000 下,枚举系统进程的方法无外乎通过 Tool Help 函数,或是 PSAPI 函数。这两类函数虽然接口不同,但最后还是通过调用 NTDLL.DLL 中导出的 NtQuerySystemInformation 函数来实现的。这些函数最终是通过 LDR_MODULE 中指向的那些模块信息来实现进程和模块名字查询的。所以,只要修改 LDR_MODULE 指向的那些信息就能实现改变进程名或模块名。注意那些字符串都是 unicode 形式的,改的时候别忘了。

这样改过之后虽然能够骗过 EnumProcessModules 和 Module32First、Module32Next 函数,但若使用 Process32Next、Process32First 函数,PROCESSENTRY32 结构中的 szExeFile 还是会如实的返回 EXE 文件名,如此一来,在“windows 任务管理器”里就穿邦了,即便你改了 BaseDllName 也没用。别急,当然还是有办法改的。不知诸位有没有注意到,用 Delphi 编译出来的可执行文件,如果你没改工程名的话,无论你怎么改可执行文件的文件名,在“windows 任务管理器”中总是显示“project1.exe”,具体什么原理我也不清楚。哪位有兴趣可以反汇编一下,看看具体是如何实现的,我的汇编功底太差了。

不过这样就够了,你可以做个试验,用以上方法改变一个有上网请求的进程的 ImagePathName,然后看看防火墙有什么反映。果然,被骗过去了。用这个方法就可以“穿透”防火墙了。

那具体应该改为哪个程序名呢?在 windows 2000 下,C:/WINNT/system32/services.exe 负责DNS解析等任务,总是被允许上网的,所以改成“C:/WINNT/system32/services.exe”就可以了。
Windows/Linux双平台Shellcode生成与加载实战指南 Shellcode作为一段可独立执行的机器码,是漏洞利用与安全测试中的核心技术组件。其原理在于绕过高级语言运行时依赖,直接与操作系统内核交互,实现精准控制。掌握Shellcode生成与加载技术,对于理解内存攻击、构建自定义安全工具链具有重要价值,广泛应用于渗透测试、漏洞研究及逆向工程等领域。本文聚焦于使用Metasploit Framework的msfvenom工具,详细解析跨平台Shellcode生成、编码与格式转换,并深入探讨通过C语言加载器在内存中分配可执行区域、复制并跳转执行Shellcode的完整 阅读详情

相关推荐

Windows用户态程序高效排错实战指南:WinDbg/ProcMon/API Monitor协同诊断

Windows用户态程序调试是桌面应用与中间件开发的核心能力,其本质是在受限权限、无源码、缺符号的生产环境中,快速定位崩溃、卡顿、泄漏等异常根因。原理上依赖对EIP/ESP/EBP寄存器语义、堆栈帧结构、ALPC/LPC通信机制及符号加载链路的精准理解;技术价值在于将模糊现象(如‘程序无响应’)转化为确定性事实(如‘线程阻塞在NtRequestWaitReplyPort,依赖服务已停止’),显著压缩平均故障修复时间。典型应用场景涵盖minidump分析、GDI资源泄漏追踪、Release版逆向定位及客户现场

天下无双 428

枚举windows进程模块的几种方法—PEB内核结构详解

1. 引言 在诸多的场景中(例如软件测试,软件安全研究等领域)经常需要分析在目标进程中具体加载了哪些模块(DLL),以及所加载的模块的信息(如模块基地址,映射文件大小等)。获取这windows进程加载的模块信息,曾经有一个行之有效又很便捷的方法,使用windows提供PSAPI(psapi.dll,windows进程状态信息接口)提供的相关的接口就可以快捷的获取进程及进程加载的模块信息。有关PSAPI接口可以参考psapi.h或者微软的官方文档Psapi.h heade...

阔野的专栏 5738

Shannon框架下自定义Payload的五大实战技巧:从规避检测到持久化

在网络安全领域,漏洞利用与攻击载荷(Payload)是渗透测试的核心技术。其原理在于通过精心构造的代码,在目标系统上执行特定操作,从而验证或利用安全漏洞。这项技术的价值在于帮助安全人员模拟真实攻击,评估防御体系的有效性。在实际应用中,Payload需要适应复杂的网络环境,绕过杀毒软件、入侵检测系统等安全防护。本文聚焦于Shannon框架,深入探讨如何通过内存规避、多层编码、环境感知、持久化机制和流量混淆等实战技巧,打造高度定制化的攻击载荷。这些方法能有效提升Payload的隐蔽性和适应性,满足内网渗透、红队

weixin_30832405的博客 366

进程结构体和线程结构体

首先说明这分析的是XP系统,WIN7每个单元偏移略有差距 进程结构体EPROCESS 每个windows进程在0环都有一个对应的结构体:EPROCESS 这个结构体包含了进程所有重要的信息。 PEB在3环,EPROCESS在0环。 KPROCESS主要成员介绍 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23...

kernweak的博客 1397

XGao免杀工具技术解析:多层加密与反分析对抗原理

在网络安全领域,免杀技术是攻击者规避终端安全防护的核心手段,其本质是围绕加密、混淆和反分析展开的对抗。从技术原理上看,现代免杀通常采用多层纵深防御策略,例如结合AES-256强加密、多重XOR混淆以及Base64编码等组合技术,以对抗静态特征扫描和行为分析。这类技术的核心价值在于突破杀毒软件和EDR产品的多维度检测,包括静态签名、动态沙箱和机器学习模型。在实际应用场景中,此类技术常被用于授权渗透测试和红蓝对抗,以验证防御体系的有效性。本文以XGao工具为例,深入剖析了其可能采用的三层加密混淆架构及反调试、反

weixin_30522095的博客 328

客户端渗透攻击基础知识-渗透测试模拟环境(8)

客户端渗透攻击(Client-side Exploit)指的是攻击者构造畸形数据发送给目标主机用户在使用含有漏洞缺陷的客户端应用程序处理这些数据时,发生程序内部处理流程的错误,执行了内嵌于数据中的恶意代码,从而导致被渗透入侵。这类攻击针对的是应用软件处于客户端一侧的软件程序,最常见的是以浏览器、Ofice 为代表的流行应用软件。此类攻击威胁巨大,特别是由于用户安全意识的参差不齐以及电子商务的快速发展,直接针对用户个人主机的客户端渗透攻击,也越来越多地受到攻击者的青睐。

AI 989

驱动开发:内核遍历进程VAD结构体

树的每一个节点代表一段虚拟地址空间。程序中的代码段,数据段,堆段都会各种占用一个或多个。结构体,需要说明的是栈并不受VAD的管理。同样这是微软定义,如果想要的到最新的,自己下载WinDBG调试内核输入命令。内存块的属性,这个内存结构定义在WinDBG中可看到。结构的偏移值,每个系统都不一样,版本不同偏移值会不同。当需要得到该进程的VAD结构时,只需要使用。结构中可以找到VAD结构的相对偏移。可以看到在本系统中VAD的偏移是。头文件,并写入如下代码,此处的。来显示该进程的VAD树。结构树,这个结构通常在。

微软技术分享 2万+

PEBFake:PEBFake(修改PEB 伪装当前进程路径、参数等)

Fake process imagepath and name BTW 当然你可以去修改其他进程的PEB信息,参考: 测试效果

进程路径

转:https://www.pediy.com/kssd/pediy12/129136.html 有问题找看雪 进程完整路径获取方式详解 标 题:进程完整路径获取方式详解 作 者:zyhfut 时 间:2011-02-10 20:23:50  链 接:http://bbs.pediy.com/showthread.php?t=129136 标 题: 【原创】进程完整路径获取方式详解 作 者...

huanongying131的博客 1008

pb实现进程管理-实现进程列表并可指定Kill进程

PB9实现进管理-进程列表、结束进程,可查看所选进程包含的线程和模块

Android 性能之 Game Mode

本文的目的是介绍 AOSP Game Mode 功能。Game Mode 功能的核心是系统服务 GameManagerService,在本文中用 GMS 指代 GameManagerService。在 API 26 之后,应用开发者可以通过将应用的 category 属性设置为 "game",使系统(即 GMS)能够将该应用识别为 "游戏"。GMS 定义了 4 种 game mode,即 1|2|3|4|standard|performance|battery|custom;

专注于系统快稳省领域 3064

驱动开发:内核通过PEB得到进程参数

其中文名是进程环境块信息,进程环境块内部包含了进程运行的详细参数信息,每一个进程在运行后都会存在一个特有的PEB结构,通过附加进程并遍历这段结构即可得到非常多的有用信息。,如果在内核层想要得到应用层进程的PEB信息我们需要调用特定的内核函数来获取,如下案例将教大家如何在内核层取到应用层进程的PEB结构。这个内核函数,因为该内核函数没有被公开所以调用之前需要头部导出,该函数需要传入用户进程的。附加到应用层进程上,即可直接输出进程的PEB结构信息,如下代码。进程环境快结构体,用于对内存指针解析,新建。

微软技术分享 1万+

AI Agent在营销领域的实战策略

本文从第一性原理出发,系统性拆解AI Agent在营销领域的落地逻辑、技术架构、实现方案与实战策略。全文覆盖从基础概念到高级优化的全层级知识:底层理论层面推导营销Agent的效用函数与决策框架;技术架构层面提出"感知-记忆-规划-行动-反思"五组件可落地架构;实践层面提供生产级代码实现、多行业案例与ROI提升方法论;前沿层面探讨多Agent协同、世界模型仿真等下一代技术方向。

操作系统内核探秘的博客 227

关于进程路径的获取---防火墙普遍存在的设计缺陷

防火墙普遍存在的设计缺陷--关于进程路径的获取     当程序访问网络时,一般情况下防火墙都会获取到程序的路径,并提示用户。问题就出在获取程序路径的方法,一般的防火墙程序都是直接在ring3下获取这些信息,也就是说防火墙程序获取的这些信息,基本上是程序的PEB中存放的信息。如果我们修改了程序的PEB中相关的路径的信息的话,把程序修改伪装为系统进程的路径的话,防火墙就无法正确识别了。DEMO

653

S32K3双核实战:手把手教你用EB配置CAN与CANFD(附中断/轮询代码对比)

本文详细解析了NXP S32K3双核处理器在CAN/CANFD通信开发中的实战应用。通过Elektrobit配置工具链,从双核通信架构设计到EB tresos Studio配置全流程,再到中断与轮询模式的代码实现对比,全面指导开发者优化S32K3 FlexCAN模块性能,提升汽车电子系统的通信效率与可靠性。

weixin_30955617的博客 440

《计算机网络》课程大作业- 《小区局域网的设计和规划》

8.1首先,在满足用户需求方面,通过详细的需求分析,充分考虑了居民和物业管理的不同业务需求。对于居民,无论是日常的高清视频播放、在线游戏、远程办公还是智能家居设备的连接,网络都能提供稳定的高速带宽支持。从有线网络的千兆以太网技术保障稳定的有线连接,到无线网络采用 Wi - Fi 6 技术确保无线覆盖区域的高速和低延迟,满足了居民多样化的娱乐和生活需求。对于物业管理,安防监控系统的实时数据传输、物业办公自动化系统的流畅运行以及社区信息的及时发布等业务,都有针对性的网络设计。

lisangsimida的博客 2598

远程控制编程之反弹端口模式

 远程控制软件的上线模式主要有两种:正向直连模式与反弹端口模式。正向直连模式远控需要输入对方的IP地址和端口(图1),比如Radmin就是正向连接。当被控端是ADSL拨号这种动态IP或者需要监控的机器比较多的话,一个个输入IP和端口是繁琐和不准确的。这时,聪明的远程控制软件开发者们设计了反弹端口模式(图2),比如常见的灰鸽子,PcShare等远控都使用了这个模式。这个模式主要用于两个目的,一是解决

2660

TI DSP的 FFT与IFFT库函数的使用测试

/** * Copyright (C) 2013 Guangzhou Tronlong Electronic Technology Co., Ltd. - www.tronlong.com * * @file dsplib_fft.c * * @brief Example application main file. * This application will run FFT performance test. * * @author Tronlong <support@tron.

ToneChip的专栏,一个传统的嵌入式码农,裸机编程 2677

杀毒软件逆向工程:从核心引擎到插件系统的安全分析实践

在软件安全与系统防护领域,逆向工程是一项深入理解软件内部工作机制的关键技术。其核心原理在于通过静态与动态分析手段,解析程序的二进制代码、数据流与控制逻辑,从而穿透商业软件的黑盒。这项技术的价值在于,它使安全研究人员和开发者能够从设计者视角洞察复杂系统的架构哲学,精准定位性能瓶颈、诊断软件冲突,并评估其安全边界。典型的应用场景包括恶意软件分析、安全产品评估、以及为现有防护体系开发定制化检测插件。本文聚焦于杀毒软件这一特定目标,详细拆解其病毒扫描引擎的匹配算法与实时监控机制,并深入剖析其插件系统的可扩展性架构,

weixin_30564901的博客 382

低代码部署与管理——OpenClaw智能助手的应用部署与运维(2026技术版)

OpenClaw智能助手的低代码部署与管理平台采用分层架构设计,包含部署工具、环境管理、版本控制等核心模块,支持从开发到生产的全流程自动化部署。该系统通过Docker、Kubernetes等技术实现应用构建和部署,利用Terraform等工具管理多环境配置,并提供完善的监控运维能力。平台针对开发、测试、预生产和生产环境提供差异化配置,确保部署效率和运行可靠性。这种架构设计遵循自动化、可扩展性和安全性原则,显著提升了智能助手应用的部署效率和运维质量。

一键难忘的博客 319

SQL中的时间计算:员工每日工作时长

摘要:本文介绍了一个使用SQL查询计算员工每日工作时长的实用方法。通过分析包含员工打卡记录的数据库表,利用CTE(公共表表达式)将日期分组,计算最早和最晚打卡时间差,最终以"小时:分钟"格式输出工作时长。该方法适用于每日两次打卡的场景,并提示了处理漏打卡等特殊情况时的注意事项,为企业考勤管理提供了有效的数据支持方案。(148字)

m0_74337424的博客 412

C++ 修改指定进程 PEB 中路径和命令行信息实现进程伪装

背景 所谓的进程伪装,指的修改任意一个指定进程的信息,是它的信息在系统中的显示是另一个进程的信息,这样看来,指定的进程就像是被伪装的进程一样,因为进程信息相同,但实际上,它还是原来的进程,做着原来的进程操作。 函数介绍 NtQueryInformationProcess NTSTATUS WINAPI NtQueryInformationProcess( _In_ HANDLE ProcessHandle, // 要获取信息的进程的句柄。

LYSM 3424

【SA8155P】AIS Camera相关内容的简单介绍

【SA8155P】AIS Camera相关内容的简单介绍

静谧、淡雅 1700

Windows下反反调试技术汇总

Windows下反反调试技术汇总 Windows下反反调试技术汇总一、前言二、静态反调试技术2.1 进程状态检测2.2 调试环境检测三、动态反调试技术3.1 时钟检测3.2 异常处理3.3 0xCC探测3.4 硬件断点检测3.5 单步检测3.6自调试四、总结 一、前言 对于安全研究人员来说,调试过程中经常会碰到反调试技术,原因很简单:调试可以窥视程序的运行“秘密”,而程序作者想要通过反调试手段隐藏他们的“秘密”,普通程序需要防止核心代码被调试逆向,恶意代码需要隐藏自己的恶意行为防止被跟

qq138480084的博客 3661

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

windows核心编程-如何获取进程命令行信息

如何获取其他进程命令行信息 每一个进程都有一个PEB数据块(PEB:Process Environment Block),这个进程环境块信息(如下结构体), 每个PEB中有_RTL_USER_PROCESS_PARAMETERS   结构体,是一个指针,指向一个结构体,这个结构体里面有一个CommandLine 命令行参数。所以要获得其他进程的命令行参数CommandLine,首先要获得其他

qq_22423659的博客 4885

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

擦除模块痕迹

对于擦除模块痕迹,我实验了两种方法,下面一一阐述:1.修改PEB结构,用代码说话typedef struct _PEB_LDR_DATA ...{  ULONG               Length;  BOOLEAN             Initialized;  BYTE    reserved[3];  PVOID               SsHandle;  LIS

土星·北海若 1721

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: WINDOWS2003 查密码软件findpass2003.exe源程序
下一篇: afx good code
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值