xyzreg 网游木马防御技术漫谈

USB硬件 键盘鼠标控制器 V2.0 支持二次开发 USB硬件 控制键盘鼠标 V2.0 支持二次开发提供开发包     usb键盘鼠标控制器由来: 听说过"按键精灵"这个软件,就不难理解了;就是这个思路,做一个真正的硬件键盘鼠标,然后我们控制它.       主要目的: 一台电脑用串口给控制器发命令,控制器会模拟成usb键盘和鼠标,去控制另外一台电脑 (当然,同一台电脑分别插入usb和串口也是可以的) 工作原理: 串口输入命令 阅读详情
大家好!首先讲讲网游木马常用攻击技术。第二,讲讲从开发商的角度,以较低的成本实现防御网游木马的策略。首先是键盘记录,所谓的键盘记录是在在键盘输入的时候木马会把你的键盘输入的信息记录下来,网上流传最广、最通俗的方法就是安装全局消息钩子,从而窃取密码。原来消息钩子这种进入密码的方法用得比较多,但是从2006年起主动防御的流行这类方法会被行为监控拦截,比如卡巴斯基这种主动防御就防这个。后来逐步地有一些黑客发掘出以前使用的比较少的被厂商所忽视的一种方法,例如图片上举到的这些(图)。

前面几个安装全局消息钩子、GetKeyState、GetAsyncKeyState 、 DirtecX接口的方法是从用户态实现的。原始输出设备raw input用它来窃取密码,这也是属于用户态的。键盘过滤驱动以及挂钩键盘驱动的Dispatch例程等方法属于核心态实现的。 Ppt中后面提到的所谓的Inline Hook是广义的,就是我进行挂接的时候可以在Rin3上挂,也可以在Rin0下挂,我的hook可以挂在自己的游戏程序里面,从而获取密码,深入的话也可以深到话kbclass设备的回调函数。突破nPtotect保护也不难。

第二部分是内存读取。用户输入密码后,通常情况下密码没有经过处理的话,有一段时间用户输入的密码会以明文的形式存放在内存中,包括登录游戏后,游戏中人物装备等级等信息都可以从游戏进程的内存中读取。

第三是星号密码获取以及缓存密码,比如在QQ或MSN上输入密码的时候,可以选择记录密码的情况。 使用GetWindowText函数就可以获取常规的星号密码,当然对于具有密码属性的输入框在GetWindowText之前需要使用SendMessage取消其密码属性。

下面讲到浏览器插件,主要用于获取IE相关的信息,也可以用来突破HTPS。

来看张图片,小区域精确截图(图),这种方法可以应对许多种网游的保护措施,先安装一个全局鼠标钩子,对你鼠标点击的时候,比如鼠标点击这边,事先算一下你的按纽的像素,把边长除以二,以鼠标点击的点为正方形的中心,从而以这个点截取一个正方形,面积最大的就是我们所要的密码信息。小区域精确截图的方法和图象识别,从而可以把图象信息直接转化为字符。如果说比较复杂,图象识别不了的话,黑客们常使用的方法就是发邮件,因为发邮件是可以以HTML的方式,从而可以把图片嵌在里面,黑客收到信的时候,看密码就一目了然。虽然是截取的图,但是也能很清楚地看到。

除了刚才讲的这些,下面还有应用得比较广的,例如封包截取或者协议分析,从协议的角度分析人物信息、用户名、密码。现在还是有一些比较厉害的人可以通过调试,逆向工程,结合ARP欺骗,对于非对称密钥加密的话,传统的破解方法比较困难。但是在局域网里面可以结合ARP欺骗、伪造,实现相应的效果。基本上现在的木马在对付非对称密钥加密的时候基本上是采用欺骗的方法。

还有一些其他技术,比如一些猥琐方法,谈技术含量比较低,但还是有效果。举一个例子,很久之前人家想到QQ密码,他自己写一个界面和QQ基本上差不多的,然后输入之后,再把真正的QQ进程运行起来。这是被人鄙视的方法,要钻空子的话还是比较多的。几年前盛大对安全很重视,那时候推出的盛大密宝,但它那种对于真正想窃取的人也是形同虚设,但是那个可能比较困难,或者还需要入侵它的服务器,把相应的算法搞清楚。这是比较困难的,但是用得比较多的,现在很容易实现的就比如这张图(图),我们后面讲的解决方案也会碰到类似的问题,对于盛大密宝使用的这些方法,我先简单地把盛大密宝的使用过程讲一下。

在输入用户名、密码后,它会又出现一个对话框,盛大密宝是以1分钟为间隔。以一分钟为单位,有一个函数,那个函数有两个变量,盛大密宝的序列号做了变量,还有一个变量就是和时间相关的。以一分钟为单位,会随机生成六位数,但是登录之后游戏里面就会随机抽取三位,请你输入盛大密宝,所谓盛大密宝就像U盘大小,中间有一个写字屏,以一分钟为单位,按照它的算法随机生成六位数,游戏的程序比如说请输入第一位、第三位、第四位,从六位数里面选三位数,让你输入第几,这是游戏随机的。以我们常人的角度看来就很安全,安全性很高。但是还是能被破解,原理就是这样(图)。

比如这里有两台机器,这台机器上面已经感染了能够破解密宝的高级木马,攻击者已获取初次登录及的用户名、密码。攻击者用已获得受害者的用户名密码登录。当受害者登录游戏时输入的用户名和密码已被木马程序换掉,登录另外一个无关帐户。为什么木马要在受害者登录时把他的帐号密码换成其他帐号呢,因为一个帐号不能同时登录。这样受害者输入自己的用户名、密码的时候其实已经变成另外一个人的帐号了。他进去之后会出现一个框,要求输入盛大密宝随机生成的6位数中的3位数。而且3位数的序号是给定的,比如第一位、第三位、第四位的六位数。从六位里面选三位位置是随机的。攻击者登录后出现密宝信息输入框,比如说请输入六位数里面的第四位、五位、六位。如图,攻击者只需在木马控制端里输入四、五、六,点完发送。此时木马端收到信息后就会把受害者的第一位、第三位、第四位提示信息换成四、五、六位。这样受害者就会输入盛大密宝随机生成的6位数第4、5、6位数字,这正是攻击者登录游戏所需要的信息。所以攻击者就实现了破解盛大密宝保护的效果。

因为黑客进入游戏之后防止他再重新进入,发现帐号正在使用,可以在我们的木马端做一些手脚,拦截封包两三分钟内让他上不了网,等他看看是否有一些有价值的装备或者游戏币,等处理完之后再让他上线。或者暴力一点,就是直接终止进程。也可以挂钩NtCreateProcess/Ex、NtCreateSetion,在一定时间内禁止次进程创建。

从内存读取的方法在木马里面也是使用得非常广泛的。在QQ稍微老一点的版本也是同样存在内存里面。现在有一些网上银行及游戏,他可能采用软键盘,我刚才说的对付软件盘通常有两种,一种是截图的方法,还有就是挂钩TextOut函数,取得软件中的字符,类似于金山词霸的技术,也就是是屏幕取词,用户点击点密码时已经被屏幕取词获得密码的字符信息。我这里讲的是一些主流的,还有针对特定的情况有一些比较猥琐的方法。

刚才是从攻击的角度进行分析的。现在开始讲怎样防御。考虑防御站的角度不同,比如游戏开发商是从自己写游戏的角度。从第三方安全软件开发商,比如瑞星、卡巴斯基,或者从使用者、网络管理员,比如网络管理员怎么样从边界防火墙角度怎样进行相应的配置。现在我讲的主要侧重于游戏开发者的角度。从游戏开发商的角度和第三方安装软件的防御角度还是有区别的。因为如果是游戏开发商的话,他做防御是要小型化,主要针对我自身的特性。不像安全软件可以做的很全面很庞大。 从游戏开发商的角度是怎样做最少的事情取得自身游戏的安全性。

我们先从基于主机的角度谈一谈。我们刚才已经粗略地了解了网游木马的密码获取常用手段,对应地我们要将缓存密码加密,自定义窗口类对相应读取密码内容的窗口消息进行处理,从而使它用传统的方法获取不到密码。第二是防范按键记录,虽然这只是简简单单几个字,我是把涉及到的面讲一讲,同样是一个防范按键进入,可以做得很浅,但同样也可以做得很深。越深入底层公开的资料越少,操作的系统提供的现成接口比较少,需要自己做的比较多,所以难度系数增大,从而会写的人就比较少,安全性就提高了。但是随着防御越往底层做,虽然安全性提高了,但是稳定性也下降了。从理论上说,只要原理正确的,也是可以做到稳定的。但是因为这些东西是人开发的,由于水平、经验,尤其是开发时间的限制,没有那么多时间去测试,没有时间经过多种客户环境的考验,所以想推出一个非常底层的产品级的、比较稳定的,时间会比较漫长。现在防范键盘记录的一个比较底层的比较稳定的方法是挂kbclass中的KeyboardClassServiceCallback,兼容性也较好,兼容USB、PS/2的。

原来QQ采用的是虚拟键盘,虚拟键盘其实也是一种成本较低效果较好的方法。但需要防御我刚才说那些密码窃取方法,比如挂钩TextOut的屏幕取词以及小区域精确截图。另外就是软键盘中按键的顺序要随机生成,还有就是软键盘在屏幕上出现的位置最好也要随机,如果大键盘位置固定的话还是很容易被盗取。还有就是最好不用字符,用比较复杂具有较强干扰性的图片,这样图象解析就比较困难,一般只能用截屏。我们现在已经知道的屏幕截取的方法通常是CreateDC和模拟鼠标按键PrintScreen键,所以只要挂钩相关函数就可以防止截取。从产品可用性的角度,在输入密码的一分钟之内对截屏功能禁用,这样对可用性也没有什么影响,而且避免了因交互式保护的烦琐带来的用户体验下降的弊端。

还有一种是在网吧里比较盛行的基于ARP欺骗窃取整个局域网内的游戏帐号信息。现在网吧基本上都是交换机的,基本上都是通过ARP欺骗的方法,就可以破取局域网里面其它机器的分包,如果能把网游的协议逆向分析出的话,就可以破解获取整个局域网里所有使用游戏用户的信息。对于网吧和局域网用户,防范ARP欺骗是很有必要的。

网游木马使用的各种密码窃取技术都会使用到相关的函数,从基于主机主动防御的角度,对相关函数挂钩实施行为监控即可防御相应密码防御技术,如 NtOpenProcess、NtReadVirtualMemory、NtUserSetWindowsHookEx、CreateDC等 。其中挂钩NtOpenProcess/NtReadVirtualMemory用来防范木马程序读取游戏程序进程空间中的密码,NtUserSetWindowsHookEx用来防范安装全局钩子。另外还可以枚举设备栈,对键盘过滤驱动进行检查。 通常安全软件中使用较多的是编写驱动程序挂钩SSDT,还有少部分inline hook。去年出现的比较多的安全软件的驱动漏洞不少是因为SSDT挂钩后的处理函数编写不完善,所以实现行为监控功能时我们自己的处理函数也要写得很健壮,防止漏洞的产生。

对于防御ARP欺骗,通常采取NDIS HOOK或者NDIS IMD技术,截取ARP包进行分析,丢弃伪造的欺骗包。另外实现还应建立一个可信的IP-MAC库,所谓的可信基就是在确保网络没有欺骗的情况下,确保其他机器尤其是网关的IP-MAC映射关系,先把它存起来,然后截取到ARP封包时与事先建立的可信IP-MAC关系进行比较判断。还有一个是比较简单的,就是用系统自带arp命令实现IP/MAC绑定的,但是对于Windows2000应该是没有用的,这点网上几乎没有披露,印象中只有flashsky以前提及过。因为Windows2000没有检查IP-MAC绑定是静态的还是动态的,虽然进行了绑定,但只要有ARP请求/应答包,WIindows系统还是会把伪造的IP-MAC对应关系添加到自身的ARP缓存表中。ARP的绑定功能在Windows2000里面形同虚设。所以通用有效的还是使用驱动利用NDIS HOOK/NDIS IMD技术拦截ARP包分析过滤。


有些情况下要获取游戏密码以及人物信息的话,最好到它的进程空间里面去,所以有很多木马就把自己的dll先注入到你的游戏进程里面。但是现在许多安全软件比如卡巴7、江民2008都采用的主动防御技术,而已防范常规的诸如CreateRemoteThread、SetThreadContext等注入技术。为了绕过主动防御以及实现自启动,某些木马利用了Windows一个简单的系统机制,就是目录的优先级, 具体讲如果当没有写绝对路径只是相对路径,调用dll时,优先加载同目录下的,然后才是系统目录。比如在网游目录下释放一个kernel32.dll,kernel32.dll所有Ring3程序都需要用到的吧,所以只要你的游戏程序运行起来了,木马释放的kernel32.dll也就注入到了游戏进程里面。 所以防止其他程序在游戏目录中创建相关文件也是比较重要的。关于具体的实现技术可以采用文件过滤驱动,甚至是Ring3下的全局钩子。另外,Ppt中提到的辅助方案:“游戏主进程检查自身模块中除了自身dll模块以及已签名文件有没其他dll模块,有则强行卸载”,与刚才说的互补的,还是比较有效的。

还有就是保护自身程序不被修改,因为当安全软件越来越严格,可能盗号木马无路可走时就以修改你自身的程序实现密码窃取以及自启动,所以对游戏自身的保护也很重要。

刚才说的主动防御行为监控的方法可以在不需要特征码的情况下实现通用的防护,但是和传统的特征码的方法相结合的话,往往可以取得更好的效果。而且自动更新也很重要,万一出现一个从来没有出现过的比较强的破解方法的话,应急小组知道这个情况,可以立马对程序进行更新。所以Office文件格式的漏洞为什么比PDF漏洞利用效果好,指的是非0day,因为PDF会强行自动更新,Office的是手动更新的(正版用户Office2003以及以后也会自动更新了)。

我们刚才是从游戏开发商的角度讲,所以他不可能就像卡巴斯基从安全软件的角度那样实施纵深立体防御,面面俱到。无论你怎么防,虽然说能够很大程度地防御,但是还是有漏过的地方。安全防护和黑客技术没有谁最厉害,你这个安全方案出现的话他完全可以钻你的空子,尤其做产品不是纯粹从技术角度出发,往往因为从程序的稳定性以及使用友好型的角度都会牺牲一些安全强度。 所以很难做到百分之百的安全,所以我们不妨换一角度,找一个可信基。比如现在因为手机的普及,可以将帐号与手机关联,登录以及修改密码时需要绑定的手机回复短信确认。有些游戏现在与MAC地址绑定,我认为绑定的话最好绑定PC以外的,因为木马程序已在机器当中,运用广义Hook的这一强大思想机型伪造,都能搞定。所以我们从另外一个角度,不应绑定pc上的,脱离它,比如和手机绑定,如果修改密码的话,它就会收到一条短消息,如果确认修改密码请回复Y等类似途径。对于虚拟物品的操作发短信通知用户并询问。当然对于虚拟物品操作可以尝试采用T+1方式,预先登记然后审核确认。
再就是动态口令卡,就像工商银行的网上银行。还有移动证书/Usbkey等。相对而言比较安全。但对于动态口令卡以及类似盛大密宝的保护措施,需要防御我刚才介绍的破解盛大密宝的那种思路。可以和基于主机的防御方法相结合。另外动态口令卡算法健壮性和验证服务器安全性也很重要。 

 
三轴加速度传感器计步算法优化:动态阈值与滤波技术的实践应用 本文深入探讨了三轴加速度传感器计步算法的优化实践,重点分析了动态阈值调整与高效滤波技术如何协同提升计步精度与鲁棒性。通过对比均值滤波的局限,引入向量模长计算、多级自适应阈值以及状态机判决逻辑,并结合代码示例,为嵌入式及移动应用开发者提供了应对复杂运动场景的实用解决方案 阅读详情

相关推荐

组态王的日历时间控件脚本

日期时间控件中的脚本中在小于10的月份和天数前必须要加上0,这是由首字符对比机制规定的,首字母相同,就不再不做对比了,比如1和11,是一样的。首字母不同,再比较下一位。 float Ayear1; float Amonth1; float Aday1; string temp1; Ayear1=sd.Year; Amonth1=sd.Month; Aday1=sd.Day; temp1=StrFromInt( Ayear1, 10 ); if(Amonth1<10) temp1=temp1+"-0"+

逍遥子的博客 5686

木马的攻击手段与防御方法(大飞哥网络安全公开课程).mp4

大飞哥每周四公开课录播合集! 课程要点: 1.木马制作初体验; 2.木马隐藏与伪装方法; 3.如何防御木马攻击。


winio3.0+WinRing0_1_3_1a_驱动级端口访问

C++ Ring0级系统硬件和内存访问 访问硬件端口用来模拟按键什么都挡不住,模拟按键只是大材小用了 WinIO 和 Winring0 都非常强大 由于驱动的签名问题.WinIO在Win7 x64 上目前运行不能,也许我没找对方法 所以转而 Winring0。(注: Winring0 以前是开源项目,后来关闭.最后能找到的版本是1.3.1a) Winring0这个驱动有数字签名!!!能在64位WIN7下工作! WinIO 最新版本3.0 Winring0 最新版本 1.3.1a (只有二进制文件) Winring0 1.3.0 (源码+二进制文件+自带示例) 两个项目都有chm帮助文档(很简单的英语)

张翼:跳出PC局限用手机授权防御木马

 Windows底层和反木马方面专家张翼指出,随着信息的公开,木马的生成越加容易,越加泛滥,尽管企业做出最大努力还是很难保证系统不被攻克。如果企业可以跳出在不安全的PC上的局限,通过手机作为可信物,相关操作比如登录以及密码修改需要短信回复确认,或将可以解决木马泛滥的问题。以下是文字实录:张翼:大家好!首先讲讲网游木马常用攻击技术。第二,讲讲从开发商的角度,以较低的成本实现防御网游木马的策略。首先是

唯一谣|Airs|走尽天涯路|极地阳光 2472

【亲测免费】 Zygisk Assistant 使用指南

**Zygisk Assistant** 是一个基于 Zygisk 框架的 Android 开源模块,主要用于隐藏设备的 Root 权限以及 Zygisk 的存在。它适用于运行 Android 5.0 及以上版本的系统,旨在帮助用户通过KernelSU、Magisk 和 APatch 等工具实现安全的Root环境,同时也解决了如RCS(Rich Communication Services)与Me...

gitblog_00186的博客 3256

驱动中实现模拟键盘按键

标 题: 驱动中实现模拟键盘按键作 者: luocong在ring3中实现模拟键盘按键有N^N种方式,比如SendInput()、keybd_event()……但在驱动中要怎么模拟呢?1、写端口大法#define defI8042_DATA_PORT ((PUCHAR)0x60)#define defI8042

1万+

Hook KeyboardClassServiceCallback实现键盘 Logger

 用DeviceTree 可以看到PS/2键盘的端口驱动是i8042prt,USB键盘的端口驱动是Kbdhid。无论是PS/2 键盘还是USB键盘,在端口驱动处理完IRP之后都会调用上层处理的回调函数,即KbdClass 处理输入数据的函数。Hook 这个回调函数,不但可以实现兼容PS/2 键盘和USB 键盘的Logger,而且比分层驱动的方法更加隐蔽。Kbdclass的这个回调函数是未导出的

mergerly的专栏 9269

C# winIO32位,64位的使用

下载地址: http://www.internals.com/utilities/WinIo.zip 一个按键的消息产生流程如下: 1)硬件中断/硬件端口数据 WinIO能模拟,或者修改IDT是在这一层 2)键盘Port驱动(USB or PS/2) Filter驱动在此 KeyboardClassServiceCallback也在这一层被调用 3)kb

马农里奥 1万+

模拟键盘鼠标操作——IoAccessMap介绍

模拟键盘鼠标操作——IoAccessMap介绍  NetRoc  2007.06.25http://ww.DbgTech.net/关键词:I/O Permission Bit Map、按键精灵、模拟键盘鼠标今天又被恶心了,上班不想工作。来谈谈IoAccessMap相关的一些东西吧。我在上一篇XTrap驱动分析的文章里面提到过,现在的一些模拟键盘鼠标输入的程序使用

NetRoc的专栏 2375

鼠标键盘模拟 【转】

(1)SendMessage or PostMessage 指定hwnd后可以后台发送,这是相比后面2种方式的优势之一。 例如: 以当前程序的某个输入框为例: HWND tw2 = GetDlgItem(IDC_EDIT1)->m_hWnd; ::SendMessage(tw2,WM_CHAR,s[i],0); 单击按钮: HWND tw3 = GetDlgItem(IDOK)->

Alsmile的专栏 5404

Windows鼠标键盘(PS2)驱动框架

常用的鼠标类型:串口鼠标、PS/2鼠标、USB鼠标(HID)常用的键盘类型:串口键盘、PS/2鼠标、USB键盘(HID)非HID鼠标键盘(PS/2鼠标键盘)物理配置方式上图左边展示了键盘鼠标设备通过独立的控制器连接到系统总线。一种典型的配置由通过i8042控制器操作的PS/2类型键盘,和通过串口操作的串口鼠标组成。上图右边展示了键盘鼠标设备通过集成的键盘鼠标控制器连接到系统总线。一种典型的配置由通...

xiejianjun417的专栏 9302

网络安全技术第六章——第三节木马的攻击与防治(中木马现象、木马病毒概念结构、木马实施攻击过程、配置传播运行连接木马、远程控制、木马伪装手段、更换图标改名换姓文件捆绑出错显示网页嫁衣自我销毁邮件附件)

木马的攻击与防治木马的攻击防治1.日常生活现象2.木马病毒的概念和由来3.木马病毒的结构4.木马实施攻击的过程5.木马的识别与防治方法总结个人防范技巧: 木马的攻击防治 1.日常生活现象 浏览器莫名其妙地自动打开了,并且进入某个网站 网上银行的钱不知不觉的被人盗走了 系统配置总是自动被更改 存储在计算机中的文件资料被泄露了 2.木马病毒的概念和由来 木马全称为“特洛伊木马”, 英文简称为Trojan,是来源于古希腊神话故事的一个词语。 木马病毒 在Internet上,木马(特洛伊木马)也称木马病毒,与一

ZSWAries的博客 6509

网络安全基础知识

1、什么是防火墙?什么是堡垒主机?什么是DMZ? 防火墙是在两个网络之间强制实施访问控制策略的一个系统或一组系统。 堡垒主机是一种配置了安全防范措施的网络上的计算机,堡垒主机为网络之间的通信提供了一个阻塞点,也可以说,如果没有堡垒主机,网络间将不能互相访问。 DMZ成为非军事区或者停火区,是在内部网络和外部网络之间增加的一个子网。   2、网络安全的本质是什么? 网络安全从其本质上来讲...

Amdy_amdy的博客 4万+

木马攻击与防御原理

一、 引言特洛伊木马是 Trojan Horse 的中译,是借自"木马屠城记"中那只木马的名字。古希腊有大军围攻特洛伊城,逾年无法攻下。有人献计制造一只高二丈的大木马假装作战马神,攻击数天后仍然无功,遂留下木马拔营而去。城中得到解围的消息,及得到"木马"这个奇异的战利品,全城饮酒狂欢。到午夜时份,全城军民尽入梦乡,匿于木马中的将士开秘门游绳而下,开启城门及四处纵火,城外伏兵涌入,焚屠特洛伊

immcss的专栏 4822

简单的USB鼠标驱动(1)

#include #include #include #include #include #include static int qt210_usb_mouse_probe(struct usb_interface *intf, const struct usb_device_id *id) { printk("qt210_usb_mouse_probe\n"); r

tangxuxiao1989的专栏 670

用程序模拟键盘和鼠标键盘

Windows大行其道的今天,windows界面程序受到广大用户的欢迎。对这些程序的操作不外乎两种,键盘输入控制和鼠标输入控制。有时,对于繁杂的,或重复性的操作,我们能否通过编制程序来代替手工输入,而用程序来模拟键盘及鼠标的输入呢?答案是肯定的。这主要是通过两个API函数来实现的。      下面以Delphi为例来介绍一下如何实现这两个功能。模拟键盘我们用Keybd_event这个a

ccx_john的专栏 1269

基于springboot+vue的流浪动物救助网站源码数据库.zip

基于springboot+vue的流浪动物救助网站源码数据库.zip

上一篇: 盗号木马Trojan-PSW.Win32.OLGame.vdh
下一篇: 多CPU的机器上在驱动中如何HOOK中断
iiprogram
博客等级 码龄25年 1066粉丝 1515原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值