|
[新春礼物]《看雪论坛精华9》(2007.1.1-2007.12.31 )正式发布!
回个话看看,喜欢看雪 |
|
[求助]请教大虾,这是什么加解密算法,谢谢!
这一段是数据初始话,它的后面是纯粹的数字游戏,自己分析 004BBE00 /. 55 push ebp 004BBE01 |. 8BEC mov ebp,esp 004BBE03 |. 83C4 DC add esp,-24 004BBE06 |. 53 push ebx 004BBE07 |. 56 push esi 004BBE08 |. 57 push edi 004BBE09 |. 8955 EC mov dword ptr ss:[ebp-14],edx 004BBE0C |. 8D7D F4 lea edi,dword ptr ss:[ebp-C] 004BBE0F |. 8B40 38 mov eax,dword ptr ds:[eax+38] 004BBE12 |. 8B50 3C mov edx,dword ptr ds:[eax+3C] 004BBE15 |. 8955 E8 mov dword ptr ss:[ebp-18],edx;初始数据1 004BBE18 |. 8B50 40 mov edx,dword ptr ds:[eax+40] 004BBE1B |. 8955 E4 mov dword ptr ss:[ebp-1C],edx;初始数据2 004BBE1E |. 8B50 44 mov edx,dword ptr ds:[eax+44] 004BBE21 |. 8955 E0 mov dword ptr ss:[ebp-20],edx;初始数据3 004BBE24 |. 83C0 48 add eax,48 004BBE27 |. 8945 DC mov dword ptr ss:[ebp-24],eax;初始数据4 004BBE2A |. 8B75 EC mov esi,dword ptr ss:[ebp-14];等同于MOV ESI,EDX,EDX的内容向上看 004BBE2D |. 8B46 08 mov eax,dword ptr ds:[esi+8];初始数据5 004BBE30 |. E8 F7D0FEFF call XXXX.004A8F2C;这个call只有一个参数EAX,它的作用就是变形EAX 004BBE35 |. 8907 mov dword ptr ds:[edi],eax;变形数据5给DS:[EDI] 004BBE37 |. 8B46 04 mov eax,dword ptr ds:[esi+4];初始数据6 004BBE3A |. E8 EDD0FEFF call XXXX.004A8F2C 004BBE3F |. 8BD8 mov ebx,eax;变形数据6给EBX 004BBE41 |. 8B06 mov eax,dword ptr ds:[esi];初始数据7 004BBE43 |. E8 E4D0FEFF call XXXX.004A8F2C 004BBE48 |. 8945 F0 mov dword ptr ss:[ebp-10],eax;变形数据7给[EBP-10] 004BBE4B |. B8 0B000000 mov eax,0B |
|
|
|
[求助]请各位老大帮忙看看以下代码!
如果你想破解这个软件,我认为用爆破的方法就必须跳过这个CALL因为这个CALL已经开始对关键数据进行测试了.不跳过是不行的 关键的点不在这个CALL 应该在前面不远了,算法应该也在前面 |
|
[求助]请各位老大帮忙看看以下代码!
和你一样也是菜鸟,互相帮助 一开始的PUSH -1没问题,是SE结构的附加数据 以下是个人看法,因为不知道的CALL太多有错误请原谅 004B3E30 /$ 6A FF push -1 004B3E32 |. 68 D60C7400 push text.00740CD6 ; SE 句柄安装 004B3E37 |. 64:A1 00000000 mov eax,dword ptr fs:[0] 004B3E3D |. 50 push eax 004B3E3E |. 64:8925 00000000 mov dword ptr fs:[0],esp 004B3E45 81EC 24020000 sub esp,224 004B3E4B |. 8A4424 03 mov al,byte ptr ss:[esp+3];ESP+3 感觉挺有趣,你看看程序在前面是不是用EBP对堆笺做了初始话 004B3E4F |. 53 push ebx 004B3E50 |. 56 push esi ; ntdll.77F51778 004B3E51 |. 8BF1 mov esi,ecx ;ecx的数据应该标出来,很关键 004B3E53 |. 6A 00 push 0 004B3E55 |. 8D4C24 20 lea ecx,dword ptr ss:[esp+20] 004B3E59 |. 884424 20 mov byte ptr ss:[esp+20],al 004B3E5D |. E8 FE08F5FF call text.00404760;有可能填充了[ESP+23C] 004B3E62 |. 8B9C24 3C020000 mov ebx,dword ptr ss:[esp+23C] ;EBX的数据很关键应该看看 004B3E69 |. C78424 34020000 0000000>mov dword ptr ss:[esp+234],0 004B3E74 |. 85DB test ebx,ebx ;测试EBX是否为0 004B3E76 |. 0F8C E4010000 jl text.004B4060 小于退出 004B3E7C |. 83FB 0E cmp ebx,0E ;EBX和0E比较 004B3E7F |. 0F8D DB010000 jge text.004B4060 ;不小于退出 004B3E85 |. 8B849E 10010000 mov eax,dword ptr ds:[esi+ebx*4+110];等同于[EBP+[ESP+23C]*4+110]定义为A 004B3E8C |. 85C0 test eax,eax;测试EAX是否为0 004B3E8E |. 0F84 70010000 je text.004B4004;等于跳走 004B3E94 |. 8B8C24 40020000 mov ecx,dword ptr ss:[esp+240] ; text.00620069 004B3E9B |. 85C9 test ecx,ecx;设置ZF状态 004B3E9D |. 8948 3C mov dword ptr ds:[eax+3C],ecx;等同于把[ESP+240]的数据给[A+3C](注意数据和地址的变化) 004B3EA0 |. 0F85 74010000 jnz text.004B401A;ZF=0跳走 004B3EA6 |. 8B849E 10010000 mov eax,dword ptr ds:[esi+ebx*4+110] 004B3EAD |. 8B08 mov ecx,dword ptr ds:[eax];[A]给ECX 004B3EAF |. 85C9 test ecx,ecx;测试地址A指向的数据 004B3EB1 |. 0F84 43010000 je text.004B3FFA;等于0跳走 004B3EB7 |. 8B50 30 mov edx,dword ptr ds:[eax+30];[A+30]给EDX 004B3EBA |. 85D2 test edx,edx 004B3EBC |. 0F84 38010000 je text.004B3FFA;等于0走 004B3EC2 |. 8B81 80000000 mov eax,dword ptr ds:[ecx+80];等于[[A]+80]给EAX 004B3EC8 |. 8B11 mov edx,dword ptr ds:[ecx] ;等于[[A]](程序中多次用到指针的指针)给EDX 004B3ECA |. 80CC 20 or ah,20 004B3ECD |. 50 push eax 004B3ECE |. FF52 40 call dword ptr ds:[edx+40];CALL [[[A]]+40]有可能填充了[ESP+1C] 004B3ED1 |. 8D4424 1C lea eax,dword ptr ss:[esp+1C] 004B3ED5 |. 50 push eax 004B3ED6 |. 68 B4170000 push 17B4 004B3EDB |. E8 404D1F00 call text.006A8C20;有加密或解密的嫌疑 004B3EE0 |. 8B849E 10010000 mov eax,dword ptr ds:[esi+ebx*4+110];A给EAX 004B3EE7 |. 33C9 xor ecx,ecx 004B3EE9 |. 83C4 08 add esp,8 004B3EEC |. 8B50 34 mov edx,dword ptr ds:[eax+34];[A+34]给EDX 004B3EEF |. 8A4A 34 mov cl,byte ptr ds:[edx+34];[[[A]]+34]数据给CL 004B3EF2 |. 83F9 04 cmp ecx,4 004B3EF5 |. 74 32 je short text.004B3F29 004B3EF7 |. 83F9 03 cmp ecx,3 004B3EFA |. 74 2D je short text.004B3F29 004B3EFC |. 83F9 06 cmp ecx,6 004B3EFF |. 74 28 je short text.004B3F29 004B3F01 |. 8B40 30 mov eax,dword ptr ds:[eax+30] 004B3F04 |. 83C0 08 add eax,8 004B3F07 |. 8B40 04 mov eax,dword ptr ds:[eax+4] 004B3F0A |. 85C0 test eax,eax 004B3F0C |. 75 05 jnz short text.004B3F13 004B3F0E |. B8 08567600 mov eax,text.00765608 004B3F13 |> 8B4C24 20 mov ecx,dword ptr ss:[esp+20] ; kernel32.77E74809 004B3F17 |. 85C9 test ecx,ecx 004B3F19 |. 75 05 jnz short text.004B3F20 004B3F1B |. B9 08567600 mov ecx,text.00765608 004B3F20 |> 50 push eax 004B3F21 |. 51 push ecx 004B3F22 |. 8D4C24 34 lea ecx,dword ptr ss:[esp+34] 004B3F26 |. 51 push ecx 004B3F27 |. EB 20 jmp short text.004B3F49 004B3F29 |> 8B52 08 mov edx,dword ptr ds:[edx+8] 004B3F2C |. 85D2 test edx,edx 004B3F2E |. 75 05 jnz short text.004B3F35 004B3F30 |. BA 08567600 mov edx,text.00765608 004B3F35 |> 8B4424 20 mov eax,dword ptr ss:[esp+20] ; kernel32.77E74809 004B3F39 |. 85C0 test eax,eax 004B3F3B |. 75 05 jnz short text.004B3F42 004B3F3D |. B8 08567600 mov eax,text.00765608 004B3F42 |> 52 push edx 004B3F43 |. 8D5424 30 lea edx,dword ptr ss:[esp+30] 004B3F47 |. 50 push eax ; |Format = NULL 004B3F48 |. 52 push edx ; |s = 7FFE0304 004B3F49 |> FF15 40537600 call dword ptr ds:[<&user32.wsprint>; \wsprintfA 004B3F4F |. 8A4424 17 mov al,byte ptr ss:[esp+17] 004B3F53 |. 83C4 0C add esp,0C 004B3F56 |. 884424 0C mov byte ptr ss:[esp+C],al 004B3F5A |. 33C0 xor eax,eax 004B3F5C |. 55 push ebp 004B3F5D |. 57 push edi ; ntdll.77F517E6 004B3F5E |. 8D7C24 34 lea edi,dword ptr ss:[esp+34] 004B3F62 |. 83C9 FF or ecx,FFFFFFFF 004B3F65 |. F2:AE repne scas byte ptr es:[edi] 004B3F67 |. F7D1 not ecx 004B3F69 |. 49 dec ecx 004B3F6A |. 6A 01 push 1 004B3F6C |. 8BE9 mov ebp,ecx 004B3F6E |. 8D4C24 18 lea ecx,dword ptr ss:[esp+18] 004B3F72 |. 55 push ebp 004B3F73 |. 894424 20 mov dword ptr ss:[esp+20],eax 004B3F77 |. 894424 24 mov dword ptr ss:[esp+24],eax 004B3F7B |. 894424 28 mov dword ptr ss:[esp+28],eax 004B3F7F |. E8 CCD4F4FF call text.00401450 004B3F84 |. 84C0 test al,al 004B3F86 |. 74 24 je short text.004B3FAC 004B3F88 |. 8B7C24 18 mov edi,dword ptr ss:[esp+18] 004B3F8C |. 8BCD mov ecx,ebp 004B3F8E |. 8BD1 mov edx,ecx 004B3F90 |. 8D7424 34 lea esi,dword ptr ss:[esp+34] 004B3F94 |. C1E9 02 shr ecx,2 004B3F97 |. F3:A5 rep movs dword ptr es:[edi],dword p> 004B3F99 |. 8BCA mov ecx,edx 004B3F9B |. 83E1 03 and ecx,3 004B3F9E |. F3:A4 rep movs byte ptr es:[edi],byte ptr> 004B3FA0 |. 8B4424 18 mov eax,dword ptr ss:[esp+18] 004B3FA4 |. 896C24 1C mov dword ptr ss:[esp+1C],ebp 004B3FA8 |. C60428 00 mov byte ptr ds:[eax+ebp],0 004B3FAC |> 8D4C24 14 lea ecx,dword ptr ss:[esp+14] 004B3FB0 |. 68 3B3BFFFF push FFFF3B3B 004B3FB5 |. 51 push ecx 004B3FB6 |. 8B0D 28CC9300 mov ecx,dword ptr ds:[93CC28] 004B3FBC |. C68424 44020000 01 mov byte ptr ss:[esp+244],1 004B3FC4 |. E8 97F91A00 call text.00663960 004B3FC9 |. 8B4424 18 mov eax,dword ptr ss:[esp+18] 004B3FCD |. 5F pop edi ; kernel32.77E614C7 004B3FCE |. 85C0 test eax,eax 004B3FD0 |. C68424 38020000 00 mov byte ptr ss:[esp+238],0 004B3FD8 |. 5D pop ebp ; kernel32.77E614C7 004B3FD9 |. 74 3F je short text.004B401A 004B3FDB |. 8D48 FF lea ecx,dword ptr ds:[eax-1] 004B3FDE |. 8A40 FF mov al,byte ptr ds:[eax-1] 004B3FE1 |. 84C0 test al,al 004B3FE3 |. 74 0A je short text.004B3FEF 004B3FE5 |. 3C FF cmp al,0FF 004B3FE7 |. 74 06 je short text.004B3FEF 004B3FE9 |. FEC8 dec al 004B3FEB |. 8801 mov byte ptr ds:[ecx],al 004B3FED |. EB 2B jmp short text.004B401A 004B3FEF |> 51 push ecx 004B3FF0 |. E8 B12E2700 call text.00726EA6 004B3FF5 |. 83C4 04 add esp,4 004B3FF8 |. EB 20 jmp short text.004B401A 004B3FFA |> 6A 00 push 0 004B3FFC |. 53 push ebx 004B3FFD |. 68 08527A00 push text.007A5208 ; ASCII "Durability Change Item NULL icon or NULL item. Slot(%d) Durability(%d)" 004B4002 |. EB 0E jmp short text.004B4012 004B4004 |> 8B9424 40020000 mov edx,dword ptr ss:[esp+240] ; text.00620069 004B400B |. 52 push edx 004B400C |. 53 push ebx 004B400D |. 68 C8517A00 push text.007A51C8 ; ASCII "Durability Change Item ... NULL Slot. Slot(%d) Durability(%d)" 004B4012 |> E8 7911FAFF call text.00455190 004B4017 |. 83C4 0C add esp,0C 004B401A |> A1 28CC9300 mov eax,dword ptr ds:[93CC28] 004B401F |. 8B88 70010000 mov ecx,dword ptr ds:[eax+170] 004B4025 |. 85C9 test ecx,ecx 004B4027 |. 74 06 je short text.004B402F 004B4029 |. 53 push ebx 004B402A |. E8 11CA0C00 call text.00580A40 004B402F |> 8B4C24 20 mov ecx,dword ptr ss:[esp+20] ; kernel32.77E74809 004B4033 |. C78424 34020000 FFFFFFF>mov dword ptr ss:[esp+234],-1 004B403E |. 85C9 test ecx,ecx 004B4040 |. 74 4A je short text.004B408C 004B4042 |. 8A41 FF mov al,byte ptr ds:[ecx-1] 004B4045 |. 84C0 test al,al 004B4047 |. 74 0B je short text.004B4054 004B4049 |. 3C FF cmp al,0FF 004B404B |. 74 07 je short text.004B4054 004B404D |. FEC8 dec al 004B404F |. 8841 FF mov byte ptr ds:[ecx-1],al 004B4052 |. EB 38 jmp short text.004B408C 004B4054 |> 49 dec ecx 004B4055 |. 51 push ecx 004B4056 |. E8 4B2E2700 call text.00726EA6 004B405B |. 83C4 04 add esp,4 004B405E |. EB 2C jmp short text.004B408C 004B4060 |> 8B8C24 40020000 mov ecx,dword ptr ss:[esp+240] ; text.00620069 004B4067 |. 51 push ecx 004B4068 |. 53 push ebx 004B4069 |. 68 8C517A00 push text.007A518C ; ASCII "Durability Change Item Index Weird. Slot(%d) Durability(%d)" 004B406E |. E8 1D11FAFF call text.00455190 004B4073 |. 83C4 0C add esp,0C 004B4076 |. 8D4C24 1C lea ecx,dword ptr ss:[esp+1C] 004B407A |. C78424 34020000 FFFFFFF>mov dword ptr ss:[esp+234],-1 004B4085 |. 6A 01 push 1 004B4087 |. E8 D406F5FF call text.00404760 004B408C |> 8B8C24 2C020000 mov ecx,dword ptr ss:[esp+22C] ; text.00740073 004B4093 |. 5E pop esi ; kernel32.77E614C7 004B4094 |. 5B pop ebx ; kernel32.77E614C7 004B4095 |. 64:890D 00000000 mov dword ptr fs:[0],ecx 004B409C |. 81C4 30020000 add esp,230 004B40A2 \. C2 0800 retn 8 只分析了程序的前面,我因为着段程序不是对某个变量进行处理.而是程序在前面就对重要的数据已经初始化完成了,着个CALL就是对这些数据进行测试然后使程序按测试后的结果进行 |
|
|
|
反汇
你问的问题也是我刚学汇编时遇到的难题,其实很简单,你现在看代码只是一行一行的理解,没办法把代码,地址,函数,连起来理解.所以每一行代码看起来都很怪异. 我当初就是硬着头皮多看代码,多看一些有关函数和地址的质料,才过这一关的 |
|
这段代码怎么理解(菜鸟)
我也学习了!没考虑到局部变量的生命周期,不好意识 |
|
有一段汇编看不懂.请各位看看
如果地址指向的是0040开头的数据可以用做大小写的变换,至于程序究竟用他来做什么,我也不知道 |
|
|
|
有一段汇编看不懂.请各位看看
可以这样理解 0B003D4E 0800 or byte ptr ds:[eax],al 0B003D50 3100 xor dword ptr ds:[eax],eax 0B003D52 3900 cmp dword ptr ds:[eax],eax;这一句没用 0B003D54 34 00 xor al,0;任何数与0异域都不变所以可以去掉该句 0B003D56 3900 cmp dword ptr ds:[eax],eax;这一句也没用 0B003D58 3100 xor dword ptr ds:[eax],eax 0B003D5A 3000 xor byte ptr ds:[eax],al 0B003D5C 3100 xor dword ptr ds:[eax],eax 0B003D5E 0000 add byte ptr ds:[eax],al 于是变成 0B003D4E 0800 or byte ptr ds:[eax],al 0B003D50 3100 xor dword ptr ds:[eax],eax;这两个语句是异域的 0B003D58 3100 xor dword ptr ds:[eax],eax;异域也没改变结果也可以去掉 0B003D5A 3000 xor byte ptr ds:[eax],al 0B003D5C 3100 xor dword ptr ds:[eax],eax 0B003D5E 0000 add byte ptr ds:[eax],al 变成 0B003D4E 0800 or byte ptr ds:[eax],al 0B003D5A 3000 xor byte ptr ds:[eax],al 0B003D5C 3100 xor dword ptr ds:[eax],eax 0B003D5E 0000 add byte ptr ds:[eax],al 程序的结果和EAX指向的地址有关 |
|
|
|
为什么这段函数的返回再程序里找不到
你的返回地址是调用系统的函数 很多时候用控件会出现你说的情况 |
|
|
|
|
|
[求助]汇编语法问题
太古老了,你的是dos年代的汇编,现在用win32了 |
|
[md5变形]请达人指点迷津
第一个call简单就是初始化 EBP-58到EBP-58+14的值 第二个call很关键 开始它把[EBP-60]*8给[EBP-58+10],把[EBP-60]*8+[EBP-60]/2的29次密给[EBP-58+14]然后它判断该数据是数字还是字母,跟着它把[EBP-5C]开始连续的16个双字传送到了[EBP-58+0+18]开始的单元里(关键数据)然后调用call 00406270进行运算,真正的运算是在call 00406270里,里面的算法太长了,没耐心跟下去了. 估计变形也是在这里面做的手脚 有不对的地方请原谅 |
|
[求助]帮忙破这个流氓软件.
该类软件破坏的只是表项的一些信息,真正的数据应该不会被破坏. 你用一个安装盘,启动计算机,看看分区有没有被修改,如果没有修改分区数据重新修复操作系统之后应该没问题. 不过小心期间先找一个没有重要数据的机器,用上面的方法试操作一下. |
|
刚学软件调试,大家知道下面这段代码是什么算法吗?
push ebx push ebp mov ebp,dword ptr ss:[esp+C] push esi mov eax,ebp mov ecx,ebp shl eax,1F shr ecx,1 or eax,ecx eax为关键数据 mov ecx,dword ptr ss:[esp+14] 数据指针送cx mov esi,eax push edi mov dl,byte ptr ds:[ecx] 取第一个数 mov edi,dword ptr ds:[6859A88] and edx,3F mov ebx,eax shr esi,1A xor edx,esi 第一个数处理后送edx inc ecx 指向第二个数 shr ebx,16 mov esi,dword ptr ds:[edi+edx*4] 第一个数处理后送esi保存 mov dl,byte ptr ds:[ecx] 取第二个数 and edx,3F and ebx,3F xor edx,ebx mov ebx,dword ptr ds:[edi+edx*4+100] 第二个数处理送ebx mov dl,byte ptr ds:[ecx+1] 取第三个数 or esi,ebx (第一次) 第一个处理的数or第二个处理的数 结果送esi inc ecx 指向第三个数 mov ebx,eax and edx,3F shr ebx,12 and ebx,3F xor edx,ebx mov ebx,dword ptr ds:[edi+edx*4+200] 第三个数处理送ebx mov dl,byte ptr ds:[ecx+1] 取第四个数 or esi,ebx (第二次)第一次的结果or第三个数 结果送esi inc ecx 指向第四个数 以下类推 06805763 |. 8BD8 mov ebx,eax 06805765 |. 83E2 3F and edx,3F 06805768 |. C1EB 0E shr ebx,0E 0680576B |. 83E3 3F and ebx,3F 0680576E |. 33D3 xor edx,ebx 06805770 |. 8B9C97 00030000 mov ebx,dword ptr ds:[edi+edx*4+300] 06805777 |. 8A51 01 mov dl,byte ptr ds:[ecx+1] 0680577A |. 0BF3 or esi,ebx 0680577C |. 41 inc ecx 0680577D |. 8BD8 mov ebx,eax 0680577F |. 83E2 3F and edx,3F 06805782 |. C1EB 0A shr ebx,0A 06805785 |. 83E3 3F and ebx,3F 06805788 |. 33D3 xor edx,ebx 0680578A |. 8B9C97 00040000 mov ebx,dword ptr ds:[edi+edx*4+400] 06805791 |. 8A51 01 mov dl,byte ptr ds:[ecx+1] 06805794 |. 0BF3 or esi,ebx 06805796 |. 41 inc ecx 06805797 |. 8BD8 mov ebx,eax 06805799 |. 83E2 3F and edx,3F 0680579C |. C1EB 06 shr ebx,6 0680579F |. 83E3 3F and ebx,3F 068057A2 |. 33D3 xor edx,ebx 068057A4 |. C1E8 02 shr eax,2 068057A7 |. 8B9C97 00050000 mov ebx,dword ptr ds:[edi+edx*4+500] 068057AE |. 8BD5 mov edx,ebp 068057B0 |. 0BF3 or esi,ebx 068057B2 |. 8A59 02 mov bl,byte ptr ds:[ecx+2] 068057B5 |. 41 inc ecx 068057B6 |. 83E2 1F and edx,1F 068057B9 |. D1E2 shl edx,1 068057BB |. 8A09 mov cl,byte ptr ds:[ecx] 068057BD |. 83E3 3F and ebx,3F 068057C0 |. C1ED 1F shr ebp,1F 068057C3 |. 0BD5 or edx,ebp 068057C5 |. 83E1 3F and ecx,3F 068057C8 |. 83E0 3F and eax,3F 068057CB |. 33D3 xor edx,ebx 068057CD |. 33C8 xor ecx,eax 068057CF |. 8B8497 00070000 mov eax,dword ptr ds:[edi+edx*4+700] 068057D6 |. 0B848F 00060000 or eax,dword ptr ds:[edi+ecx*4+600] 068057DD |. 0BC6 or eax,esi 068057DF |. 5F pop edi 068057E0 |. 5E pop esi 068057E1 |. 5D pop ebp 068057E2 |. 5B pop ebx 068057E3 \. C3 retn |
|
[求助]请高手帮找出短点搞了十几天,服了..(提示:->"?效的暂?瘁!).
你的程序是不是有壳呀,跳转的地方看上去怪怪的 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值