- UID
 - 37950
 
 注册时间2007-12-1
阅读权限30
最后登录1970-1-1
龙战于野 
  
 
 
 
TA的每日心情  | 难过 2022-2-6 09:25 | 
|---|
 
  签到天数: 6 天 [LV.2]偶尔看看I  
 | 
 
【破文标题】Smart PC Suite算法分析+dll类型破解通用方法+源码 
【破文作者】Playboysen 
【作者邮箱】[email protected] 
【破解工具】PEiD,OD 
【破解平台】Windows XP 
【软件名称】Smart PC Suite 
【软件大小】10 MB 
【软件授权】共享版($59.95) 
【软件语言】英文 
【原版下载】http://smartpctools.com/products/ 
【保护方式】用户名、注册码 
【软件简介】使您的电脑运行速度更快,保护您的安全和恢复丢失的数据的唯一软件套件您最需要的!修复您的计算机自己并使其加载和运行速度更快。清理注册表错误和照顾病毒和间谍软件,确保您的个人隐私,并恢复已删除的档案 
【破解声明】一点心得,愿与大家分享o(∩_∩)o 版权所有,转载注明作者! 
【破解内容】 
  自从上次写完“MP3 WAV OGG WMA AC3 to CD Burner算法分析+简单逆向汇编”至今已经快两个月了,临近毕业,每天为生计奔波,找份工作好难,前途未卜,也没心情搞分析,不过偶尔练习一下,不致手生而已,一点心得,与君分享。 
  今天我们来研究一个国外公司的几款商业是软件,入手点是Smart PC Suite(我专门挑选的售价较贵的o(∩_∩)o),总的感觉,这个公司的程序员很傻很天真,看完此文章你就明白我的话了~~~ 
 
   主程序查壳Armadillo 1.xx - 2.xx -> Silicon Realms Toolworks,用Arma Find Protected检测- <------- 05-11-2008 06:56:49 ------->
 
 - C:\Documents and Settings\Administrator\桌面\{app}\SmartPCSuite.exe
 
 - !- Protected Armadillo
 
 - Protection system (Basic)
 
 - !- <Protection Options>
 
 - Standard protection or Minimum protection
 
 - !- <Backup Key Options>
 
 - Fixed Backup Keys
 
 - !- <Compression Options>
 
 - Better/Slower Compression
 
 - !- <Other Options>
 
 - !- Version 4.48 14August2006
 
  复制代码 脱壳So easy,不多说,脚本搞定(Armadillo.V4.0-V5.X.eXe.Standard.Protection.By.fly[CUG].oSc),不过要提醒大家,虽然是标准壳但是不要用脱壳机,因为此程序加了双层壳,脱壳机太傻,搞不定的- 013FE001    60              pushad                      ; This is the OEP!  Found By: fly[CUG]
 
 - 013FE002    E8 03000000     call    013FE00A            ;看到没?脚本停在这里,Aspack,第二层             
 
 - 013FE007  - E9 EB045D45     jmp     469CE4F7
 
 - 013FE00C    55              push    ebp
 
 - 013FE00D    C3              retn
 
 - 013FE00E    E8 01000000     call    013FE014
 
 - 013FE013    EB 5D           jmp     short 013FE072
 
 - 013FE015    BB EDFFFFFF     mov     ebx, -13
 
  复制代码 ESP定律后dump,修复搞定,掠过~~~ 
 
  试运行注册有错误提示,OD加载脱壳程序搜索相关字符到这里- 004AF962    E8 6552F5FF     call    00404BCC
 
 - 004AF967    83F8 03         cmp     eax, 3
 
 - 004AF96A    7D 47           jge     short 004AF9B3
 
 - 004AF96C    68 18FC4A00     push    004AFC18                         ; name must have no less than three symbols!
 
 - 004AF971    8D45 F0         lea     eax, dword ptr [ebp-10]
 
 - 004AF974    50              push    eax
 
 - 004AF975    A1 2CDA4E00     mov     eax, dword ptr [4EDA2C]
 
 - 004AF97A    8B00            mov     eax, dword ptr [eax]
 
 - 004AF97C    B9 4CFC4A00     mov     ecx, 004AFC4C                    ; message9
 
 - 004AF981    BA 60FC4A00     mov     edx, 004AFC60                    ; evaluation
 
 - 004AF986    8B18            mov     ebx, dword ptr [eax]
 
 - 004AF988    FF13            call    dword ptr [ebx]
 
 - 004AF98A    8B55 F0         mov     edx, dword ptr [ebp-10]
 
 - 004AF98D    A1 04DB4E00     mov     eax, dword ptr [4EDB04]
 
 - 004AF992    8B00            mov     eax, dword ptr [eax]
 
 - 004AF994    8B80 04030000   mov     eax, dword ptr [eax+304]
 
 - 004AF99A    E8 3D2BFBFF     call    004624DC
 
 - 004AF99F    A1 04DB4E00     mov     eax, dword ptr [4EDB04]
 
 - 004AF9A4    8B00            mov     eax, dword ptr [eax]
 
 - 004AF9A6    8B10            mov     edx, dword ptr [eax]
 
 - 004AF9A8    FF92 EC000000   call    dword ptr [edx+EC]
 
 - 004AF9AE    E9 F0010000     jmp     004AFBA3
 
 - 004AF9B3    8D55 EC         lea     edx, dword ptr [ebp-14]
 
 - 004AF9B6    8B83 20030000   mov     eax, dword ptr [ebx+320]
 
 - 004AF9BC    E8 EB2AFBFF     call    004624AC
 
 - 004AF9C1    8B45 EC         mov     eax, dword ptr [ebp-14]
 
 - 004AF9C4    E8 0352F5FF     call    00404BCC
 
 - 004AF9C9    85C0            test    eax, eax
 
 - 004AF9CB    75 47           jnz     short 004AFA14
 
 - 004AF9CD    68 74FC4A00     push    004AFC74                         ; fields for license key must not be less three symbols!
 
 - 004AF9D2    8D45 E8         lea     eax, dword ptr [ebp-18]
 
 - 004AF9D5    50              push    eax
 
 - 004AF9D6    A1 2CDA4E00     mov     eax, dword ptr [4EDA2C]
 
 - 004AF9DB    8B00            mov     eax, dword ptr [eax]
 
 - 004AF9DD    B9 B4FC4A00     mov     ecx, 004AFCB4                    ; message10
 
 - 004AF9E2    BA 60FC4A00     mov     edx, 004AFC60                    ; evaluation
 
 - 004AF9E7    8B18            mov     ebx, dword ptr [eax]
 
 - 004AF9E9    FF13            call    dword ptr [ebx]
 
 - 004AF9EB    8B55 E8         mov     edx, dword ptr [ebp-18]
 
 - 004AF9EE    A1 04DB4E00     mov     eax, dword ptr [4EDB04]
 
 - 004AF9F3    8B00            mov     eax, dword ptr [eax]
 
 - 004AF9F5    8B80 04030000   mov     eax, dword ptr [eax+304]
 
 - 004AF9FB    E8 DC2AFBFF     call    004624DC
 
 - 004AFA00    A1 04DB4E00     mov     eax, dword ptr [4EDB04]
 
 - 004AFA05    8B00            mov     eax, dword ptr [eax]
 
 - 004AFA07    8B10            mov     edx, dword ptr [eax]
 
 - 004AFA09    FF92 EC000000   call    dword ptr [edx+EC]
 
 - 004AFA0F    E9 8F010000     jmp     004AFBA3
 
 - 004AFA14    8D55 E0         lea     edx, dword ptr [ebp-20]
 
 - 004AFA17    8B83 1C030000   mov     eax, dword ptr [ebx+31C]
 
 - 004AFA1D    E8 8A2AFBFF     call    004624AC
 
 - 004AFA22    8B45 E0         mov     eax, dword ptr [ebp-20]
 
 - 004AFA25    8D55 E4         lea     edx, dword ptr [ebp-1C]
 
 - 004AFA28    E8 AF9BF5FF     call    004095DC
 
 - 004AFA2D    8B55 E4         mov     edx, dword ptr [ebp-1C]
 
 - 004AFA30    A1 00D74E00     mov     eax, dword ptr [4ED700]
 
 - 004AFA35    E8 164FF5FF     call    00404950
 
 - 004AFA3A    8D55 D8         lea     edx, dword ptr [ebp-28]
 
 - 004AFA3D    8B83 20030000   mov     eax, dword ptr [ebx+320]
 
 - 004AFA43    E8 642AFBFF     call    004624AC
 
 - 004AFA48    8B45 D8         mov     eax, dword ptr [ebp-28]
 
 - 004AFA4B    8D55 DC         lea     edx, dword ptr [ebp-24]
 
 - 004AFA4E    E8 899BF5FF     call    004095DC
 
 - 004AFA53    8B55 DC         mov     edx, dword ptr [ebp-24]
 
 - 004AFA56    A1 4CD54E00     mov     eax, dword ptr [4ED54C]
 
 - 004AFA5B    E8 F04EF5FF     call    00404950
 
 - 004AFA60    A1 00D74E00     mov     eax, dword ptr [4ED700]
 
 - 004AFA65    8B00            mov     eax, dword ptr [eax]
 
 - 004AFA67    50              push    eax
 
 - 004AFA68    B9 C8FC4A00     mov     ecx, 004AFCC8                    ; licuser
 
 - 004AFA6D    BA D8FC4A00     mov     edx, 004AFCD8                    ; 
 
  
- software\microsoft\windows\currentversion\settings\smart pc suite
 
 - 004AFA72    B8 01000080     mov     eax, 80000001
 
 - 004AFA77    E8 BC46FFFF     call    004A4138
 
 - 004AFA7C    A1 4CD54E00     mov     eax, dword ptr [4ED54C]
 
 - 004AFA81    8B00            mov     eax, dword ptr [eax]
 
 - 004AFA83    50              push    eax
 
 - 004AFA84    BA D8FC4A00     mov     edx, 004AFCD8                    ; 
 
  
- software\microsoft\windows\currentversion\settings\smart pc suite
 
 - 004AFA89    B9 24FD4A00     mov     ecx, 004AFD24                    ; lickey
 
 - 004AFA8E    B8 01000080     mov     eax, 80000001
 
 - 004AFA93    E8 A046FFFF     call    004A4138
 
 - 004AFA98    E8 FB6BFFFF     call    004A6698                         ; 绝对是关键call啊!!!!!
 
 - 004AFA9D    8B15 CCD94E00   mov     edx, dword ptr [4ED9CC]        
 
 - 004AFAA3    8802            mov     byte ptr [edx], al
 
 - 004AFAA5    A1 CCD94E00     mov     eax, dword ptr [4ED9CC]
 
 - 004AFAAA    8038 00         cmp     byte ptr [eax], 0
 
 - 004AFAAD    74 75           je      short 004AFB24                   ; 关键跳!爆破点
 
 - 004AFAAF    E8 54C3F5FF     call    0040BE08
 
 - 004AFAB4    83C4 F8         add     esp, -8
 
 - 004AFAB7    DD1C24          fstp    qword ptr [esp]
 
 - 004AFABA    9B              wait
 
 - 004AFABB    BA D8FC4A00     mov     edx, 004AFCD8                    ; 
 
  
- software\microsoft\windows\currentversion\settings\smart pc suite
 
 - 004AFAC0    B9 34FD4A00     mov     ecx, 004AFD34                    ; timefactor1
 
 - 004AFAC5    B8 01000080     mov     eax, 80000001
 
 - 004AFACA    E8 4D48FFFF     call    004A431C
 
 - 004AFACF    E8 34C3F5FF     call    0040BE08
 
 - 004AFAD4    83C4 F8         add     esp, -8
 
 - 004AFAD7    DD1C24          fstp    qword ptr [esp]
 
 - 004AFADA    9B              wait
 
 - 004AFADB    BA D8FC4A00     mov     edx, 004AFCD8                    ; 
 
  
- software\microsoft\windows\currentversion\settings\smart pc suite
 
 - 004AFAE0    B9 48FD4A00     mov     ecx, 004AFD48                    ; timefactor2
 
 - 004AFAE5    B8 01000080     mov     eax, 80000001
 
 - 004AFAEA    E8 2D48FFFF     call    004A431C
 
 - 004AFAEF    68 5CFD4A00     push    004AFD5C                         ; thank you for registering smart pc suite!
 
 - 004AFAF4    8D45 D4         lea     eax, dword ptr [ebp-2C]
 
 - 004AFAF7    50              push    eax
 
 - 004AFAF8    A1 2CDA4E00     mov     eax, dword ptr [4EDA2C]
 
 - 004AFAFD    8B00            mov     eax, dword ptr [eax]
 
 - 004AFAFF    B9 90FD4A00     mov     ecx, 004AFD90                    ; message11
 
 - 004AFB04    BA 60FC4A00     mov     edx, 004AFC60                    ; evaluation
 
 - 004AFB09    8B30            mov     esi, dword ptr [eax]
 
 - 004AFB0B    FF16            call    dword ptr [esi]
 
 - 004AFB0D    8B55 D4         mov     edx, dword ptr [ebp-2C]
 
 - 004AFB10    A1 04DB4E00     mov     eax, dword ptr [4EDB04]
 
 - 004AFB15    8B00            mov     eax, dword ptr [eax]
 
 - 004AFB17    8B80 04030000   mov     eax, dword ptr [eax+304]
 
 - 004AFB1D    E8 BA29FBFF     call    004624DC
 
 - 004AFB22    EB 69           jmp     short 004AFB8D
 
 - 004AFB24    68 A4FD4A00     push    004AFDA4                         ; the registration info is incorrect!
 
 - 004AFB29    8D45 CC         lea     eax, dword ptr [ebp-34]
 
 - 004AFB2C    50              push    eax
 
  复制代码 毫无疑问,关键跳和关键call精确定位,进入004AFA98的call分析算法- 004A66A0    57              push    edi
 
 - 004A66A1    33C0            xor     eax, eax
 
 - 004A66A3    8945 F0         mov     dword ptr [ebp-10], eax
 
 - 004A66A6    8945 F4         mov     dword ptr [ebp-C], eax
 
 - 004A66A9    33C0            xor     eax, eax
 
 - 004A66AB    55              push    ebp
 
 - 004A66AC    68 14684A00     push    004A6814
 
 - 004A66B1    64:FF30         push    dword ptr fs:[eax]
 
 - 004A66B4    64:8920         mov     dword ptr fs:[eax], esp
 
 - 004A66B7    33DB            xor     ebx, ebx
 
 - 004A66B9    A1 E0F24E00     mov     eax, dword ptr [4EF2E0]
 
 - 004A66BE    E8 09E5F5FF     call    00404BCC                         ; 用户名长度和4比较
 
 - 004A66C3    83F8 04         cmp     eax, 4
 
 - 004A66C6    0F8C 2D010000   jl      004A67F9
 
 - 004A66CC    A1 E4F24E00     mov     eax, dword ptr [4EF2E4]
 
 - 004A66D1    E8 F6E4F5FF     call    00404BCC                         ; 假码长度和4比较
 
 - 004A66D6    83F8 04         cmp     eax, 4
 
 - 004A66D9    0F8C 1A010000   jl      004A67F9
 
 - 004A66DF    8D45 F4         lea     eax, dword ptr [ebp-C]
 
 - 004A66E2    B9 2C684A00     mov     ecx, 004A682C                    ; ASCII "SmartPCSuite.dll"
 
 - 004A66E7    8B15 54F24E00   mov     edx, dword ptr [4EF254]          ; 软件根目录地址放入
 
 - 004A66ED    E8 26E5F5FF     call    00404C18
 
 - 004A66F2    8B45 F4         mov     eax, dword ptr [ebp-C]           ; 得到SmartPCSrute.dll的绝对路径
 
 - 004A66F5    E8 4E38F6FF     call    00409F48
 
 - 004A66FA    84C0            test    al, al
 
 - 004A66FC    0F84 F7000000   je      004A67F9
 
 - 004A6702    B9 48684A00     mov     ecx, 004A6848                    ; ASCII "TimeFactor2"
 
 - 004A6707    BA 5C684A00     mov     edx, 004A685C                    ; ASCII 
 
  
- "SOFTWARE\Microsoft\Windows\CurrentVersion\Settings\Smart PC Suite"
 
 - 004A670C    B8 01000080     mov     eax, 80000001
 
 - 004A6711    E8 B2DDFFFF     call    004A44C8                         ; 上面这里在检测软件是否已注册,爆破点
 
 - 004A6716    84C0            test    al, al
 
 - 004A6718    74 3E           je      short 004A6758
 
 - 004A671A    BA 5C684A00     mov     edx, 004A685C                    ; ASCII 
 
  
- "SOFTWARE\Microsoft\Windows\CurrentVersion\Settings\Smart PC Suite"
 
 - 004A671F    B9 48684A00     mov     ecx, 004A6848                    ; ASCII "TimeFactor2"
 
 - 004A6724    B8 01000080     mov     eax, 80000001
 
 - 004A6729    E8 42D9FFFF     call    004A4070
 
 - 004A672E    DD5D F8         fstp    qword ptr [ebp-8]
 
 - 004A6731    9B              wait
 
 - 004A6732    FF75 FC         push    dword ptr [ebp-4]
 
 - 004A6735    FF75 F8         push    dword ptr [ebp-8]
 
 - 004A6738    FF35 F0F24E00   push    dword ptr [4EF2F0]
 
 - 004A673E    FF35 ECF24E00   push    dword ptr [4EF2EC]
 
 - 004A6744    E8 F3CBFEFF     call    0049333C
 
 - 004A6749    85C0            test    eax, eax
 
 - 004A674B    0F8C A8000000   jl      004A67F9
 
 - 004A6751    B3 01           mov     bl, 1
 
 - 004A6753    E9 A1000000     jmp     004A67F9
 
 - 004A6758    8D45 F0         lea     eax, dword ptr [ebp-10]
 
 - 004A675B    B9 2C684A00     mov     ecx, 004A682C                    ; ASCII "SmartPCSuite.dll"
 
 - 004A6760    8B15 54F24E00   mov     edx, dword ptr [4EF254]
 
 - 004A6766    E8 ADE4F5FF     call    00404C18
 
 - 004A676B    8B45 F0         mov     eax, dword ptr [ebp-10]          ; 得到SmartPCSrute.dll的绝对路径
 
 - 004A676E    E8 59E6F5FF     call    00404DCC
 
 - 004A6773    50              push    eax
 
 - 004A6774    E8 970CF6FF     call    <jmp.&kernel32.LoadLibraryA>     ; 加载SmartPCSrute.dll
 
 - 004A6779    8BF8            mov     edi, eax                         
 
 - 004A677B    68 F4010000     push    1F4
 
 - 004A6780    E8 178BF6FF     call    <jmp.&kernel32.Sleep>
 
 - 004A6785    85FF            test    edi, edi
 
 - 004A6787    74 70           je      short 004A67F9
 
 - 004A6789    68 A0684A00     push    004A68A0                         ; ASCII "InstallKey"
 
 - 004A678E    57              push    edi
 
 - 004A678F    E8 C40BF6FF     call    <jmp.&kernel32.GetProcAddress>   ; 得到函数地址
 
 - 004A6794    89C6            mov     esi, eax
 
 - 004A6796    68 F4010000     push    1F4
 
 - 004A679B    E8 FC8AF6FF     call    <jmp.&kernel32.Sleep>
 
 - 004A67A0    85F6            test    esi, esi
 
 - 004A67A2    74 1A           je      short 004A67BE
 
 - 004A67A4    A1 E4F24E00     mov     eax, dword ptr [4EF2E4]          ; 假码的存放地址
 
 - 004A67A9    E8 1EE6F5FF     call    00404DCC
 
 - 004A67AE    50              push    eax
 
 - 004A67AF    A1 E0F24E00     mov     eax, dword ptr [4EF2E0]          ; 用户名的存放地址
 
 - 004A67B4    E8 13E6F5FF     call    00404DCC
 
 - 004A67B9    50              push    eax
 
 - 004A67BA    FFD6            call    esi                              ; 调用Installkey函数
 
 - 004A67BC    8BD8            mov     ebx, eax
 
 - 004A67BE    68 AC684A00     push    004A68AC                         ; ASCII "CheckCode"
 
 - 004A67C3    57              push    edi
 
 - 004A67C4    E8 8F0BF6FF     call    <jmp.&kernel32.GetProcAddress>   ; 得到函数地址
 
 - 004A67C9    89C6            mov     esi, eax
 
 - 004A67CB    68 F4010000     push    1F4
 
 - 004A67D0    E8 C78AF6FF     call    <jmp.&kernel32.Sleep>
 
 - 004A67D5    85F6            test    esi, esi
 
 - 004A67D7    74 1A           je      short 004A67F3
 
 - 004A67D9    A1 E4F24E00     mov     eax, dword ptr [4EF2E4]          ; 假码的存放地址
 
 - 004A67DE    E8 E9E5F5FF     call    00404DCC
 
 - 004A67E3    50              push    eax
 
 - 004A67E4    A1 E0F24E00     mov     eax, dword ptr [4EF2E0]          ; 用户名的存放地址
 
 - 004A67E9    E8 DEE5F5FF     call    00404DCC
 
 - 004A67EE    50              push    eax
 
 - 004A67EF    FFD6            call    esi                              ; 调用CheckCode函数
 
 - 004A67F1    8BD8            mov     ebx, eax                         ; 如果错误则eax返回0
 
 - 004A67F3    57              push    edi
 
 - 004A67F4    E8 7F0AF6FF     call    <jmp.&kernel32.FreeLibrary>      ; 释放SmartPCSuite.dll
 
 - 004A67F9    33C0            xor     eax, eax
 
 - 004A67FB    5A              pop     edx
 
 - 004A67FC    59              pop     ecx
 
 - 004A67FD    59              pop     ecx
 
 - 004A67FE    64:8910         mov     dword ptr fs:[eax], edx
 
 - 004A6801    68 1B684A00     push    004A681B
 
 - 004A6806    8D45 F0         lea     eax, dword ptr [ebp-10]
 
 - 004A6809    BA 02000000     mov     edx, 2
 
 - 004A680E    E8 0DE1F5FF     call    00404920
 
 - 004A6813    C3              retn
 
 - 004A6814  ^ E9 27DAF5FF     jmp     00404240
 
 - 004A6819  ^ EB EB           jmp     short 004A6806
 
 - 004A681B    8BC3            mov     eax, ebx                         ;经典爆破点
 
 - 004A681D    5F              pop     edi
 
 - 004A681E    5E              pop     esi
 
 - 004A681F    5B              pop     ebx
 
 - 004A6820    8BE5            mov     esp, ebp
 
 - 004A6822    5D              pop     ebp
 
 - 004A6823    C3              retn
 
  复制代码 OK,分析完毕,总结一下 
1.程序启动检测注册表相关键值或者调用SmartPCSuite.dll来判断注册与否 
2.调用软件根目录的SmartPCSuite.dll,使用其中的InstallKey和CheckCode函数进行注册验证 
3.如果注册正确InstallKey和CheckCode返回1 
 
我们见招拆招,几种方法: 
1.爆破.相关爆破点已经明确标出,此法是小鸟所为,对其提高分析能力不利,不提倡,不多说; 
2.修改004AFAAD关键跳,生成注册信息后,将相关键值提取出来,需要时在别机导入即可; 
3.程序需要SmartPCSuite.dll,我们伪造一个SmartPCSuite.dll,此方法用处多多,是破解dll文件注册验证类型的经典狠招,推荐! 
  用Delphi 7构建一个dll文件,源码如下- library Project2;
 
 - uses
 
 -   SysUtils,
 
 -   Classes;
 
  
- {$R *.res}
 
  
- function InstallKey(str1,str2:PChar):Boolean;Stdcall;
 
 - begin
 
 -   result:=True;
 
 - end;
 
  
- function CheckCode(str1,str2:PChar):Boolean;Stdcall;
 
 - begin
 
 -   result:=True;
 
 - end;
 
  
- exports
 
 -    InstallKey,CheckCode;
 
  
- begin
 
 - end.
 
  复制代码 然后把生成的dll改名为SmartPCSuite.dll替换软件根目录的SmartPCSuite.dll,发现程序正常运行,已注册!! 
 
最后再说一下这个程序的几点不足,但愿其它程序员能引以为戒: 
1.Armadillo当压缩壳用,几乎没有发挥强壳的任何作用,还使得主程序体积暴增,不智! 
2.出现注册错误提示,而且相关字符并未加密,给别人以可乘之机,大大缩减了程序破解时间,大愚! 
3.注册名和注册码没什么用,修改关键跳后生成的两个键值的注册信息才是关键,而注册名可以随便改,汗~~ 
4.没有重启验证,没有在关键函数处验证注册信息 
5.没有自校验主程序和关键dll 
6.过于看重软件界面,功能一般,启动缓慢,有些华而不实~~ 
7.…… 
再说下去,程序员就哭了,算了,只是给软件公司提点改进建议而已,没别的意思~~ |   
 
评分
- 
查看全部评分
 
 
 
 
 
 |