首页
社区
课程
招聘
Ultra Protect[终极保镖] V1.06脱壳+修复――UProtect.exe主程序
2004-5-13 01:16 21456

Ultra Protect[终极保镖] V1.06脱壳+修复――UProtect.exe主程序

fly 活跃值
85
2004-5-13 01:16
21456
               
               
               
软件大小:  440 KB
软件语言:  简体中文
软件类别:  国产软件 / 共享版 / 加密工具
应用平台:  Win9x/NT/2000/XP
推荐等级:  ***
开 发 商:  http://www.ultraprotect.com/
软件介绍:  软件保护系统,保护软件使用RSA1024位的注册码系统防止软件被写出注册机,可以设置内嵌的加密器(针对delphi &vc&BCB)使得脱壳之后无法运行,双向的API系统使得外壳顺利和被保护程序通讯。使用变形技术让每次加密生成的代码都不同。变形技术结合反跟踪防止程序跟踪和反汇编。
           
【作者声明】:只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
           
【调试环境】:WinXP、flyODBG、PEiD、LordPE、ImportREC
           
―――――――――――――――――――――――――――――――――
【脱壳过程】:
         
         
Ultra Protect[终极保镖]是risco先生的大作ACProtect壳以前的名字。现在PEiD侦测ACProtector加壳的程序显示“UltraProtect 1.x -> RISCO Software Inc.”而不是ACProtect就是这个原因啦,看来snaker先生应该修正一下这个壳名了。
           
―――――――――――――――――――――――――――――――――
一、脱壳
           
           
设置flyODBG忽略所有异常选项。老规矩:用IsDebug 1.4插件去掉Ollydbg的调试器标志。
      
     
004B6000     60                   pushad//进入OD后停在这
004B6001     EB 01                jmp short UProtect.004B6004

           
下断:BP Process32First+1         中断后取消断点,返回程序
           
77E9A595     55                   push ebp
77E9A596     8BEC                 mov ebp,esp//断在这里
77E9A598     81EC 2C020000        sub esp,22C
77E9A59E     56                   push esi
77E9A59F     8B75 0C              mov esi,dword ptr ss:[ebp+C]
77E9A5A2     85F6                 test esi,esi
77E9A5A4     0F84 94000000        je kernel32.77E9A63E
77E9A5AA     813E 28010000        cmp dword ptr ds:[esi],128
77E9A5B0     0F82 88000000        jb kernel32.77E9A63E
77E9A5B6     53                   push ebx
77E9A5B7     8D85 D4FDFFFF        lea eax,dword ptr ss:[ebp-22C]
77E9A5BD     50                   push eax
77E9A5BE     FF75 08              push dword ptr ss:[ebp+8]
77E9A5C1     C785 D4FDFFFF 2C0200 mov dword ptr ss:[ebp-22C],22C
77E9A5CB     E8 13FFFFFF          call kernel32.Process32FirstW
77E9A64C     C2 0800              retn 8//返回 004B7FD0

           
004B7FD0     0BC0                 or eax,eax
004B7FD2     0F84 86000000        je UProtect.004B805E
004B7FD8     8DB5 B91D4000        lea esi,dword ptr ss:[ebp+401DB9]
004B7FDE     8BFE                 mov edi,esi
004B7FE0     8A07                 mov al,byte ptr ds:[edi]
004B7FE2     0AC0                 or al,al
004B7FE4     74 12                je short UProtect.004B7FF8

           
使用ESP定律,在12FFAC处的4个字节上下“硬件访问->Word”断点,F9运行
           
004BBAA9     8BC5                 mov eax,ebp//中断在这里
004BBAAB     E8 25BBFFFF          call UProtect.004B75D5
004BBAB0     FFB5 F96D4000        push dword ptr ss:[ebp+406DF9]; UProtect.00487370//OEP值
004BBAB6     8BE8                 mov ebp,eax
004BBAB8     C3                   retn//飞向光明之巅

           
           
Ultra Protect 还是比较“善良”的,没有Stolen Code,而今ACProtect做了一大堆的Stolen Code。
           
00487370     55                   push ebp//在这儿用LordPE纠正ImageSize后完全DUMP这个进程
00487371     8BEC                 mov ebp,esp
00487373     83C4 F4              add esp,-0C
00487376     B8 18714800          mov eax,UProtect.00487118
0048737B     E8 80F1F7FF          call UProtect.00406500
00487380     A1 F0744900          mov eax,dword ptr ds:[4974F0]
00487385     8B00                 mov eax,dword ptr ds:[eax]
00487387     E8 18FDFBFF          call UProtect.004470A4

           
           
ACProtect的IAT加密一直没什么变化,弱了点。重新单独运行UProtect.exe,运行ImportREC,选择这个进程。把OEP改为00087370,点IT AutoSearch,点“Get Import”,有2个无效的函数:  
00406D4C     FF25 74B54900        jmp dword ptr ds:[49B574]; UProtect.004B7123
00401280     FF25 00B24900        jmp dword ptr ds:[49B200]; UProtect.004B7123

大家以前已经分析过了,这里使用了ACProtect的 EMbedded protector 技术,暂时把这2个函数修改为MessageBoxA,最后还要还原其004B7123值的,留待第三步一起处理吧。FixDump,现在可以在本系统上正常运行和加壳了!
           
           
―――――――――――――――――――――――――――――――――
二、去除加壳后的NAG
           
           
0047E320     8B45 B8              mov eax,dword ptr ss:[ebp-48]
0047E323     BA E0E64700          mov edx,UnPacked.0047E6E0
0047E328     E8 4F5BF8FF          call UnPacked.00403E7C
0047E32D     0F85 A8000000        jnz UnPacked.0047E3DB//NOP掉 ★
0047E333     6A 01                push 1
0047E335     A1 04754900          mov eax,dword ptr ds:[497504]
0047E33A     8B00                 mov eax,dword ptr ds:[eax]
0047E33C     B9 FCE64700          mov ecx,UnPacked.0047E6FC; ASCII "By Unregistered UltraProtect"
0047E341     BA FF5F0000          mov edx,5FFF
0047E346     E8 5D0EFDFF          call UnPacked.0044F1A8

           
           
―――――――――――――――――――――――――――――――――
三、解决脱壳后的程序无法跨系统平台运行的问题
           
           
Ultra Protect和ACProtect的主程序脱壳后有很多无法跨系统平台运行,用了一下午的时间来分析这个问题,在heXer老大以前给予的帮助下解决了这个问题。
           
在“壳中之壳”内有一段代码保存的是其所使用的28个API函数,主程序脱壳后这段函数的地址已经初始化完毕,也就是说现在的地址是脱壳时的系统平台的函数地址,当然无法跨平台了。
           
004B6EBD  4B 45 52 4E 45 4C 33 32 2E 44 4C 4C 00 47 6C 6F  KERNEL32.DLL.Glo
004B6ECD  62 61 6C 41 6C 6C 6F 63 00 47 6C 6F 62 61 6C 46  balAlloc.GlobalF
004B6EDD  72 65 65 00 47 65 74 43 75 72 72 65 6E 74 50 72  ree.GetCurrentPr
004B6EED  6F 63 65 73 73 49 64 00 43 72 65 61 74 65 54 6F  ocessId.CreateTo
004B6EFD  6F 6C 68 65 6C 70 33 32 53 6E 61 70 73 68 6F 74  olhelp32Snapshot
004B6F0D  00 50 72 6F 63 65 73 73 33 32 46 69 72 73 74 00  .Process32First.
004B6F1D  50 72 6F 63 65 73 73 33 32 4E 65 78 74 00 43 6C  Process32Next.Cl
004B6F2D  6F 73 65 48 61 6E 64 6C 65 00 43 72 65 61 74 65  oseHandle.Create
004B6F3D  46 69 6C 65 41 00 54 65 72 6D 69 6E 61 74 65 50  FileA.TerminateP
004B6F4D  72 6F 63 65 73 73 00 49 73 44 65 62 75 67 67 65  rocess.IsDebugge
004B6F5D  72 50 72 65 73 65 6E 74 00 4F 70 65 6E 50 72 6F  rPresent.OpenPro
004B6F6D  63 65 73 73 00 52 65 61 64 46 69 6C 65 00 57 72  cess.ReadFile.Wr
004B6F7D  69 74 65 46 69 6C 65 00 46 72 65 65 4C 69 62 72  iteFile.FreeLibr
004B6F8D  61 72 79 00 47 65 74 54 65 6D 70 50 61 74 68 41  ary.GetTempPathA
004B6F9D  00 55 6E 68 61 6E 64 6C 65 64 45 78 63 65 70 74  .UnhandledExcept
004B6FAD  69 6F 6E 46 69 6C 74 65 72 00 47 65 74 54 68 72  ionFilter.GetThr
004B6FBD  65 61 64 43 6F 6E 74 65 78 74 00 53 65 74 54 68  eadContext.SetTh
004B6FCD  72 65 61 64 43 6F 6E 74 65 78 74 00 47 65 74 43  readContext.GetC
004B6FDD  75 72 72 65 6E 74 54 68 72 65 61 64 00 55 53 45  urrentThread.USE
004B6FED  52 33 32 2E 44 4C 4C 00 45 6E 75 6D 57 69 6E 64  R32.DLL.EnumWind
004B6FFD  6F 77 73 00 47 65 74 57 69 6E 64 6F 77 54 65 78  ows.GetWindowTex
004B700D  74 41 00 47 65 74 43 6C 61 73 73 4E 61 6D 65 41  tA.GetClassNameA
004B701D  00 50 6F 73 74 4D 65 73 73 61 67 65 41 00 52 45  .PostMessageA.RE
004B702D  54 52 49 56 41 50 49 5A 43 46 00 00 A3 36 E5 77  TRIVAPIZCF...6.w
004B703D  03 38 E5 77 27 76 D1 77 3A C1 D2 77 CC C2 D2 77  .8.w'v.w:..w...w
004B704D  CF 42 D1 77 56 06 E6 77 E7 B1 E9 77 95 A5 E9 77  .B.wV..w...w...w
004B705D  E9 A6 E9 77 63 79 E5 77 37 A8 E5 77 B4 16 E4 77  ...wcy.w7..w...w
004B706D  FD A5 E5 77 93 9F E5 77 D8 05 E6 77 B5 5C E5 77  ...w...w...w.\.w
004B707D  D7 AD D3 77 92 2E E5 77 B7 06 E5 77 82 8B E5 77  ...w...w...w...w
004B708D  8C 9D E5 77 18 06 E6 77 34 AD E4 77 84 9A E9 77  ...w...w4..w...w
004B709D  00 00 00 00 16 7F E7 77 53 99 E9 77 63 31 E5 77  .......wS..wc1.w
004B70AD  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
004B70BD  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
004B70CD  00 00 00 00 00 00 00 00 81 8C E5 77 53 65 74 46  ...........wSetF
004B70DD  69 6C 65 50 6F 69 6E 74 65 72 00 8B 44 24 04 8B  ilePointer..D$..

           
           
学习heXer老大的方法,根据上面的地址,在程序运行前重新初始化。
修改地址:
           
004B702D  54 52 49 56 41 50 49 5A 43 46 00 00 CA 6E 4B 00  TRIVAPIZCF...nK.
004B703D  D6 6E 4B 00 F5 6F 4B 80 01 70 4B 80 10 70 4B 80  .nK..oK..pK..pK.
004B704D  1E 70 4B 80 E1 6E 4B 00 F5 6E 4B 00 0E 6F 4B 00  .pK..nK..nK..oK.
004B705D  1D 6F 4B 00 2B 6F 4B 00 37 6F 4B 00 43 6F 4B 00  .oK.+oK.7oK.CoK.
004B706D  A2 BE 4B 00 B3 BE 4B 00 C6 BE 4B 00 D5 BE 4B 00  ..K...K...K...K.
004B707D  E3 BE 4B 80 54 6F 4B 00 66 6F 4B 00 72 6F 4B 00  ..K.ToK.foK.roK.
004B708D  7B 6F 4B 00 85 6F 4B 00 91 6F 4B 00 9E 6F 4B 00  {oK..oK..oK..oK.
004B709D  B9 6F 4B 00 B7 6F 4B 00 C8 6F 4B 00 D9 6F 4B 00  .oK..oK..oK..oK.

           
           
Ultra Protect不检测原入口,找一段空地写入以下代码:
           
004B6000     60                   pushad
004B6001     68 BD6E4B00          push OK.004B6EBD ; ASCII "KERNEL32.DLL"
004B6006     FF15 98B14900        call dword ptr ds:[<&kernel32.GetModuleHandleA>]
004B600C     A3 41644B00          mov dword ptr ds:[4B6441],eax
004B6012     68 EA6F4B00          push OK.004B6FEA ; ASCII "USER32.DLL"
004B6017     FF15 98B14900        call dword ptr ds:[<&kernel32.GetModuleHandleA>]
004B601D     A3 45644B00          mov dword ptr ds:[4B6445],eax
004B6023     BE 39704B00          mov esi,004B7039
004B6028     AD                   lods dword ptr ds:[esi]
004B6029     3D FFFFFFFF          cmp eax,-1
004B602E     74 F8                je short 004B6028
004B6031     85C0                 test eax,eax
004B6033     74 27                je short 004B605C
004B6035     50                   push eax
004B6036     25 00000080          and eax,80000000
004B603B     58                   pop eax
004B603C     8B15 41644B00        mov edx,dword ptr ds:[4B6441]
004B6042     74 06                je short 004B604A
004B6044     8B15 45644B00        mov edx,dword ptr ds:[4B6445]
004B604A     25 FFFFFF7F          and eax,7FFFFFFF
004B604F     50                   push eax
004B6050     52                   push edx
004B6051     FF15 94B14900        call dword ptr ds:[<&kernel32.GetProcAddress>]//重新取得现系统的地址
004B6057     8946 FC              mov dword ptr ds:[esi-4],eax//保存
004B605A     EB CC                jmp short 004B6028
004B605C     B8 23714B00          mov eax,004B7123//下面是还原[49B574]和[49B200]处的值
004B6061     A3 74B54900          mov dword ptr ds:[49B574],eax
004B6066     A3 00B24900          mov dword ptr ds:[49B200],eax
004B606B     61                   popad
004B606C     E9 FF12FDFF          jmp 00487370//处理完毕跳回原OEP

           
           
保存之后,修改OEP=004B6000,OK,现在已经可以跨系统平台正常使用啦。
很累,沉醉于脱壳之中才能感到一丝乐趣。
感谢作者risco先生,不断升级改进的ACProtect壳已经跻身世界级强壳之林了!
           
           
―――――――――――――――――――――――――――――――――   
                                
         ,     _/ 
        /| _.-~/            \_     ,        青春都一晌
       ( /~   /              \~-._ |\
       `\\  _/                \   ~\ )          忍把浮名 
   _-~~~-.)  )__/;;,.          \_  //'
  /'_,\   --~   \ ~~~-  ,;;\___(  (.-~~~-.        换了破解轻狂
 `~ _( ,_..--\ (     ,;'' /    ~--   /._`\ 
  /~~//'   /' `~\         ) /--.._, )_  `~
  "  `~"  "      `"      /~'`\    `\\~~\   
                         "     "   "~'  ""

   

     Cracked By 巢水工作坊――fly [OCN][FCG][NUKE][DCM]

                2004-05-13  00:00
            
               
              

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞10
打赏
分享
最新回复 (42)
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2004-5-13 01:19
2
0
Ultra Protect[终极保镖] V1.06 原主程序
需要支持文件才能运行,放到 终极保镖 V1.06  Cracked 文件夹内即可

终极保镖 V1.06  Cracked 下载页面:
http://bbs.pediy.com/showthread.php?s=&threadid=718

Ultra Protect V1.06 原主程序

雪    币: 12867
活跃值: (3748)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
LOCKLOSE 2 2004-5-13 02:29
3
0
坐个沙发,顶啊.学到不少,
雪    币: 513
活跃值: (2228)
能力值: ( LV9,RANK:2130 )
在线值:
发帖
回帖
粉丝
loveboom 53 2004-5-13 09:22
4
0
原版在winxp sp1下无法运行.
雪    币: 207
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
LzhqQQ 2004-5-13 09:44
5
0
真的好难
雪    币: 674
活跃值: (1673)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
daxia200N 6 2004-5-13 10:20
6
0
学习
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2004-5-13 11:57
7
0
最初由 loveboom 发布
原版在winxp sp1下无法运行.


Ultra Protect[终极保镖] V1.06 原主程序
需要支持文件才能运行,放到 终极保镖 V1.06 Cracked 文件夹内即可
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
海楼 2004-5-13 13:30
8
0
谢谢 fly 版主!学习……,收藏!
雪    币: 317
活跃值: (866)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
aqtata 2 2004-5-14 12:38
9
0
IsDebug 1.4 插件

哪里有啊
雪    币: 214
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
acprotect 2004-5-15 02:05
10
0
最初由 fly 发布

很累,沉醉于脱壳之中才能感到一丝乐趣。
感谢作者risco先生,不断升级改进的ACProtect壳已经跻身世界级强壳之林了!

多谢fly老大的美言和建议,我们会更加努力的.
5月12号又小升了一次级,修正了一个小bug,同时提高了兼容性,由于非大的技术性升级,所以新版本号仍是1.3C,欢迎各位老大下载使用,并提出宝贵意见,再次感谢!
http://anticrack.51.net
webmaster@ultraprotect.com
雪    币: 411
活跃值: (1160)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
David 20 2004-5-15 11:58
11
0
找oep无需

下断:BP Process32First+1 中断后取消断点,返回程序

直接esp定律就可以了。

Fly的脱壳参考程序重新优化区段并且加壳了

Ultra Protect不检测原入口,找一段空地写入以下代码:

代码:--------------------------------------------------------------------------------
004B6000     60                   pushad
004B6001     68 BD6E4B00          push OK.004B6EBD ; ASCII "KERNEL32.DLL"
004B6006     FF15 98B14900        call dword ptr ds:[<&kernel32.GetModuleHandleA>]
004B600C     A3 41644B00          mov dword ptr ds:[4B6441],eax
004B6012     68 EA6F4B00          push OK.004B6FEA ; ASCII "USER32.DLL"
004B6017     FF15 98B14900        call dword ptr ds:[<&kernel32.GetModuleHandleA>]
004B601D     A3 45644B00          mov dword ptr ds:[4B6445],eax
004B6023     BE 39704B00          mov esi,004B7039
004B6028     AD                   lods dword ptr ds:[esi]
004B6029     3D FFFFFFFF          cmp eax,-1
004B602E     74 F8                je short 004B6028
004B6031     85C0                 test eax,eax
004B6033     74 27                je short 004B605C
004B6035     50                   push eax
004B6036     25 00000080          and eax,80000000
004B603B     58                   pop eax
004B603C     8B15 41644B00        mov edx,dword ptr ds:[4B6441]
004B6042     74 06                je short 004B604A
004B6044     8B15 45644B00        mov edx,dword ptr ds:[4B6445]
004B604A     25 FFFFFF7F          and eax,7FFFFFFF
004B604F     50                   push eax
004B6050     52                   push edx
004B6051     FF15 94B14900        call dword ptr ds:[<&kernel32.GetProcAddress>]//重新取得现系统的地址
004B6057     8946 FC              mov dword ptr ds:[esi-4],eax//保存
004B605A     EB CC                jmp short 004B6028
004B605C     B8 23714B00          mov eax,004B7123//下面是还原[49B574]和[49B200]处的值
004B6061     A3 74B54900          mov dword ptr ds:[49B574],eax
004B6066     A3 00B24900          mov dword ptr ds:[49B200],eax
004B606B     61                   popad
004B606C     E9 FF12FDFF          jmp 00487370//处理完毕跳回原OEP

我也在这里加入一段代码,循环执行半天,还是有错误。
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2004-5-15 14:59
12
0
如果脱我的破解版,应该是不需要加代码的
脱原版要修改那段函数的地址,文章中说了
雪    币: 2367
活跃值: (756)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
小虾 10 2004-5-15 15:10
13
0
好文章,学习:D
雪    币: 216
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jrs13579 2004-5-24 23:01
14
0
是的,在0012ffa4处下硬件WORD访问断点可到达OEP。但是后面加代码不知是在原主程序中添加还是在脱壳后的文件中添加,是添加后再脱壳(脱壳时修改OEP为=004B6000)还是脱壳后再添加?
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2004-5-24 23:18
15
0
我是在脱壳后再修复的
也可以在脱壳前修复,然后脱壳
雪    币: 216
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jrs13579 2004-5-24 23:27
16
0
"使用ESP定律,在12FFAC处的4个字节上下“硬件访问->Word”断点,F9运行",在12FFB0处下断也行!
雪    币: 12867
活跃值: (3748)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
LOCKLOSE 2 2004-5-24 23:42
17
0
楼上的方法可行哦~方法越简化越好。
雪    币: 177
活跃值: (1926)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xingbing 2005-4-8 11:55
18
0
我在0012ffac处下断点,F9运行就退出了。
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2005-4-8 11:58
19
0
一年前的帖子了
注意你的调试环境
雪    币: 218
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
limin520 2005-4-8 12:08
20
0
高人,又一次收藏慢慢学习・!
雪    币: 177
活跃值: (1926)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xingbing 2005-4-8 13:02
21
0
FLY斑竹:我的调试环境是:WIN2000+OllyDbg.V1.10聆风听雨汉化第二版+XP界面flyODBG修,我在12FFAC处的4个字节上下“硬件访问->Word”断点,F9运行就退出了。斑竹请指点一下,谢谢!
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2005-4-8 13:11
22
0
Ultra Protect这个版本应该会检测父进程名

你可以BP Process32First时修改Anti的地方,具体看精华6中ACProtect相关教程
也可以试试把flyODBG.eXe改名为eXpLorEr.exe看看
雪    币: 177
活跃值: (1926)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xingbing 2005-4-8 13:37
23
0
谢谢我试试看。
雪    币: 177
活跃值: (1926)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xingbing 2005-4-8 15:17
24
0
我把flyODBG.eXe改名为eXpLorEr.exe,已经可以在处设中断了。版主还是要请教一个问题:怎样用lordpe纠正imagesize的值怎么知道脱壳后文件的大小。谢谢!
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2005-4-8 15:43
25
0
游客
登录 | 注册 方可回帖
返回