首页
社区
课程
招聘
[原创]010Edit10.0爆破+算法分析+注册机实现
发表于: 2020-10-7 11:36 5303

[原创]010Edit10.0爆破+算法分析+注册机实现

2020-10-7 11:36
5303

​ 假码 pName = xuanci pKey = 00112233445566778899

登录出错 复制错误信息

字符串搜索下 看看能不能搜索到相关信息

也可以通过CreateWindowExW回溯找到 看自己来

这里看了下不让他跳 也没见到登录成功的地方,那我们一步一步跟上去看看


可以看出这里成功了 那么是不是我们在上面NOP掉直接就能成功,奔着这个思想 我们来验证下

好像真的可以了,那我们就来看看到底做了些什么可以让他走过这个地方

注意这里涉及了重定位 纳闷我们先把随机基质给去除吧

可以先打开我们刚刚爆破的那个010Edit 然后把没修改的拖进去 去修改随机基质

按Install安装下模板 安装好 我们就去找dll标志的字段


这里我们改成0 Ctrl+s保存即可

这时候我们在回去找到原来的地方给他修改汇编代码即可


提示我这个 其实按正常来说 应该是可以OK的 但是这里多了个网络验证 我们就得把网络验证去掉

我们OD载入刚修改好的 然后在刚刚修改的地方下段即可 单不跟踪

我们继续往下找是否还有错误的地方

重新来过

这里给他置1 让他的zf标志位为0

成功 这里我们有很多种方法 可以爆破 可以使用

综上所诉 我们得知 那个控制0x2D的CALL就是我们需要分析的地方 只要他==0x2D我们就可以过掉本地本地验证 分析出算法 我们就可以写出注册机

至于网络验证,我们就需要自己去打补丁也好 怎么搞也好 就要看自己了

那么我们来到返回0x2D的地方进行分析吧

看着是个地址 那么我们跟进去过去看看到底都是什么

我们在ECX + 4的地址哪里看到了用户名


在ECX + 8的地址哪里看到了KEY

那么我们可以猜测这里是不是一个对象 里面存放着账号密码 UNICODE类型的 还有一些我们不知道的值 具体用到再去分析

我们进CALL 去逐步分析

分析一段逻辑 进行代码测试

可以看到 最后就是比较

判断 (((k[0]^k[6])^0x18 + 0x3D)^0xA7)&0xFF != 0

判断 eax = ((((((((k[1]^k[7])&0xFF)*0x100)+((k[2]^k[5])&0xFF)&0xFFFF)^0x7892 + 0x4D30)&0xFFFF)^0x3421) / 0xB) &0xFFFF != 0

判断 eax = ((((((((k[1]^k[7])&0xFF)*0x100)+((k[2]^k[5])&0xFF)&0xFFFF)^0x7892 + 0x4D30)&0xFFFF)^0x3421) / 0xB) &0xFFFF < 0x3E8

已知K[3] == 0x9C / 0xFC / 0xAC

那么我们就开始写代码测试吧


得出KEY:53BDF79C000D8D1F

我们输入KEY 重新来过 看看能不能到达我们想到达的地方

走到了我们想到达的地方


这里我们看到了 返回了 ASCII码的Name

我们进入那个加密CALL 去IDA看下看看能不能之间提取出来用

地址:006E4300 /> \55 push ebp

先来修改修改参数类型 第一个参数是 字符串 一定是ASCII码 因为传过去的就是ASCII的字符串 第二个参数恒为1 第三个参数恒为0 第四个参数是call 0040A245的返回值 这个参数 我们返回的是/B返回的不是商就是0 然后在判断是否 < 0x3E8

这样我们就可以先用这个CALL 加载相应的Name 和 第四个参数大于0 小于 0x3E8

生成K[4] - K[7]

在随机生成别的值好像就可以了 我们开始修改代码

根据代码所看到的 基本上都在对一个数组进行操作 我们找到地址 用OD给copy出来

数组地址00A04AD8


Key:B4812E9C62157C280000

测试下

OK 完毕 剩下的就是上面说的网络验证 直接爆破下就好了

 
 
---------------------------
010 Editor
---------------------------
Invalid name or password. Please enter your name and password exactly as given when you purchased 010 Editor (make sure no quotes are included).
---------------------------
&OK  
---------------------------
---------------------------
010 Editor
---------------------------
Invalid name or password. Please enter your name and password exactly as given when you purchased 010 Editor (make sure no quotes are included).
---------------------------
&OK  
---------------------------
 
 
 
 
 
 
 
 
 
002A1D30   > \81FB DB000000 cmp     ebx, 0xDB                        ;  根据这条汇编指令我们知道 ebx == 0xDB即可成功
 
002A1C40   .  E8 747BE5FF   call    000F97B9                         ;  eax == 0xDB即可成功
002A1C45   8B0D 7C257000 mov     ecx, dword ptr [0x70257C]
002A1C4B   8BD8          mov     ebx, eax                         ;  可以看到ebx == eax
002A1C4D   8B45 E0       mov     eax, dword ptr [ebp-0x20]
002A1C50   3D E7000000   cmp     eax, 0xE7
 
跳跟踪到上面我们可以找到ebx来自与eax        eax == call    000F97B9            eax == 0xDB就能调到成功了呢?    我们看看他什么情况下恒与0xDB
 
 
进CALL 最下面 我们可以看到
003D5B99  |> \5F            pop     edi                              ;  Case 2D of switch 003D5AF3
003D5B9A  |.  B8 DB000000   mov     eax, 0xDB
003D5B9F  |.  5E            pop     esi
003D5BA0  |.  5D            pop     ebp
003D5BA1  \.  C2 0800       retn    0x8
 
003D5B99又是003D5AF6  |. /0F84 9D000000 je      003D5B99跳转来的 我们只需要让je满足条件即可
 
003D5AEE  |.  E8 DDC1D1FF   call    000F1CD0
003D5AF3  |.  83F8 2D       cmp     eax, 0x2D                        ;  Switch (cases 2D..E7)
003D5AF6  |. /0F84 9D000000 je      003D5B99
 
call 000F1CD0    返回值恒与 0x2D即可了
 
那么我们进CALL  给他
mov eax,0x2D
ret 8
002A1D30   > \81FB DB000000 cmp     ebx, 0xDB                        ;  根据这条汇编指令我们知道 ebx == 0xDB即可成功
 
002A1C40   .  E8 747BE5FF   call    000F97B9                         ;  eax == 0xDB即可成功
002A1C45   8B0D 7C257000 mov     ecx, dword ptr [0x70257C]
002A1C4B   8BD8          mov     ebx, eax                         ;  可以看到ebx == eax
002A1C4D   8B45 E0       mov     eax, dword ptr [ebp-0x20]
002A1C50   3D E7000000   cmp     eax, 0xE7
 
跳跟踪到上面我们可以找到ebx来自与eax        eax == call    000F97B9            eax == 0xDB就能调到成功了呢?    我们看看他什么情况下恒与0xDB
 
 
进CALL 最下面 我们可以看到
003D5B99  |> \5F            pop     edi                              ;  Case 2D of switch 003D5AF3
003D5B9A  |.  B8 DB000000   mov     eax, 0xDB
003D5B9F  |.  5E            pop     esi
003D5BA0  |.  5D            pop     ebp
003D5BA1  \.  C2 0800       retn    0x8
 
003D5B99又是003D5AF6  |. /0F84 9D000000 je      003D5B99跳转来的 我们只需要让je满足条件即可
 
003D5AEE  |.  E8 DDC1D1FF   call    000F1CD0
003D5AF3  |.  83F8 2D       cmp     eax, 0x2D                        ;  Switch (cases 2D..E7)
003D5AF6  |. /0F84 9D000000 je      003D5B99
 
call 000F1CD0    返回值恒与 0x2D即可了
 
那么我们进CALL  给他
mov eax,0x2D
ret 8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
005B1CEA   > \75 27         jnz     short 005B1D13
改成
005B1CEA   > \75 27         jz     short 005B1D13
 
 
也可以根据上面爆破0x2D一样CALL里返回值让他恒为1
005B3460      B8 01000000   mov     eax, 0x1
005B3465      C2 0400       retn    0x4
005B3468      90            nop
005B3469      90            nop
 
这里随便就看自己了
005B1CEA   > \75 27         jnz     short 005B1D13
改成
005B1CEA   > \75 27         jz     short 005B1D13
 
 
也可以根据上面爆破0x2D一样CALL里返回值让他恒为1
005B3460      B8 01000000   mov     eax, 0x1
005B3465      C2 0400       retn    0x4
005B3468      90            nop
005B3469      90            nop
 
这里随便就看自己了
 
 
005B1C1E   8B0D 7C25A100 mov     ecx, dword ptr [0xA1257C]
005B1C24   68 67480000   push    0x4867
005B1C29   6A 0C         push    0xC
005B1C2B   .  E8 A000E5FF   call    00401CD0
005B1C30   8B0D 7C25A100 mov     ecx, dword ptr [0xA1257C]
 
 
首先看下参数 一个 0xC        0x4867            ecx我们去看下内存 看看到底是什么
005B1C1E   8B0D 7C25A100 mov     ecx, dword ptr [0xA1257C]
005B1C24   68 67480000   push    0x4867
005B1C29   6A 0C         push    0xC
005B1C2B   .  E8 A000E5FF   call    00401CD0
005B1C30   8B0D 7C25A100 mov     ecx, dword ptr [0xA1257C]
 
 
首先看下参数 一个 0xC        0x4867            ecx我们去看下内存 看看到底是什么
 
 
 
 
 
 
006E5229   > \8A45 E7       mov     al, byte ptr [ebp-0x19]          ;  al == k[3]
006E522C   3C 9C         cmp     al, 0x9C                         ;  这里判断K[3]是否等于0x9C; Switch (cases 9C..FC)
006E522E   75 70         jnz     short 006E52A0
 
这里K[3] != 0x9C就继续判断
 
006E52A0   > \3C FC         cmp     al, 0xFC
006E52A2   75 1F         jnz     short 006E52C3
 
判断是否等于0xFC不等于在继续判断
 
006E52C3   > \3C AC         cmp     al, 0xAC
006E52C5   0F85 94010000 jnz     006E545F
 
这里在判断是否等于0XAC 在不行就给EAX == 0XE7    那么我们想获取的是0x2D这里获取E7肯定不对
这样我们就可以猜测K[3] == 0x9C / 0xFC / 0xAC
006E5229   > \8A45 E7       mov     al, byte ptr [ebp-0x19]          ;  al == k[3]
006E522C   3C 9C         cmp     al, 0x9C                         ;  这里判断K[3]是否等于0x9C; Switch (cases 9C..FC)
006E522E   75 70         jnz     short 006E52A0
 
这里K[3] != 0x9C就继续判断
 
006E52A0   > \3C FC         cmp     al, 0xFC
006E52A2   75 1F         jnz     short 006E52C3
 
判断是否等于0xFC不等于在继续判断
 
006E52C3   > \3C AC         cmp     al, 0xAC
006E52C5   0F85 94010000 jnz     006E545F
 
这里在判断是否等于0XAC 在不行就给EAX == 0XE7    那么我们想获取的是0x2D这里获取E7肯定不对
这样我们就可以猜测K[3] == 0x9C / 0xFC / 0xAC
006E5229   > \8A45 E7       mov     al, byte ptr [ebp-0x19]          ;  al == k[3]
006E522C   3C 9C         cmp     al, 0x9C                         ;  这里判断K[3]是否等于0x9C; Switch (cases 9C..FC)
006E522E   75 70         jnz     short 006E52A0
006E5230   8A45 E4       mov     al, byte ptr [ebp-0x1C]          ;  al == K[0]; Case 9C of switch 006E522C
006E5233   3245 EA       xor     al, byte ptr [ebp-0x16]          ;  al == k[0]^k[6]
006E5236   8845 DC       mov     byte ptr [ebp-0x24], al
006E5239   8A45 E5       mov     al, byte ptr [ebp-0x1B]          ;  al == k[1]
006E523C   3245 EB       xor     al, byte ptr [ebp-0x15]          ;  al == k[1]^k[7]
006E523F   .  FF75 DC       push    dword ptr [ebp-0x24]             ;  push al == k[0]^k[6]
006E5242   0FB6C8        movzx   ecx, al                          ;  ecx == (k[1]^k[7])&0xFF
006E5245   .  B8 00010000   mov     eax, 0x100                       ;  eax == 0x100
006E524A   0FAFC8        imul    ecx, eax                         ;  ecx =  ((k[1]^k[7])&0xFF)*0x100
006E524D   8A45 E6       mov     al, byte ptr [ebp-0x1A]          ;  al == k[2]
006E5250   3245 E9       xor     al, byte ptr [ebp-0x17]          ;  al == k[2]^k[5]
006E5253   0FB6C0        movzx   eax, al                          ;  eax == (k[2]^k[5])&0xFF
006E5256   66:03C8       add     cx, ax                           ;  cx = (((k[1]^k[7])&0xFF)*0x100)+((k[2]^k[5])&0xFF)
006E5259   0FB7F1        movzx   esi, cx                          ;  esi =  (((k[1]^k[7])&0xFF)*0x100)+((k[2]^k[5])&0xFF)&0xFFFF
006E525C   .  E8 5309D2FF   call    00405BB4                         ;  处理K[0]和K[6] al == ((k[0]^k[6])^0x18 + 0x3D)^0xA7
006E5261   0FB6C0        movzx   eax, al                          ;  eax == (((k[0]^k[6])^0x18 + 0x3D)^0xA7)&0xFF
006E5264   56            push    esi                              ;  push esi =  (((k[1]^k[7])&0xFF)*0x100)+((k[2]^k[5])&0xFF)&0xFFFF
006E5265   8943 1C       mov     dword ptr [ebx+0x1C], eax        ;  下面CALL 返回 eax =  ((((((k[1]^k[7])&0xFF)*0x100)+((k[2]^k[5])&0xFF)&0xFFFF)^0x7892 + 0x4D30)&0xFFFF)^0x3421
006E5268   .  E8 D84FD2FF   call    0040A245                         ;  计算的值和0xB做除法  余数不为0则返回0 余数为0则返回商
006E526D   8B4B 1C       mov     ecx, dword ptr [ebx+0x1C]        ;  ecx == (((k[0]^k[6])^0x18 + 0x3D)^0xA7)&0xFF
006E5270   83C4 08       add     esp, 0x8
006E5273   0FB7C0        movzx   eax, ax                          ;  eax =  ((((((((k[1]^k[7])&0xFF)*0x100)+((k[2]^k[5])&0xFF)&0xFFFF)^0x7892 + 0x4D30)&0xFFFF)^0x3421) / 0xB) &0xFFFF
006E5276   8943 20       mov     dword ptr [ebx+0x20], eax
006E5279   85C9          test    ecx, ecx                         ;  判断  (((k[0]^k[6])^0x18 + 0x3D)^0xA7)&0xFF != 0
006E527B   0F84 DE010000 je      006E545F
006E5281   85C0          test    eax, eax                         ;  判断 eax =  (((((((k[1]^k[7])&0xFF)*0x100)+((k[2]^k[5])&0xFF)&0xFF)^0x7892 + 0x4D30)&0xFFFF)^0x3421)&0xFFFF != 0
006E5283   0F84 D6010000 je      006E545F
006E5289   3D E8030000   cmp     eax, 0x3E8                       ;  且 eax < 0x3E8
006E528E   0F87 CB010000 ja      006E545F
006E5229   > \8A45 E7       mov     al, byte ptr [ebp-0x19]          ;  al == k[3]
006E522C   3C 9C         cmp     al, 0x9C                         ;  这里判断K[3]是否等于0x9C; Switch (cases 9C..FC)
006E522E   75 70         jnz     short 006E52A0
006E5230   8A45 E4       mov     al, byte ptr [ebp-0x1C]          ;  al == K[0]; Case 9C of switch 006E522C
006E5233   3245 EA       xor     al, byte ptr [ebp-0x16]          ;  al == k[0]^k[6]
006E5236   8845 DC       mov     byte ptr [ebp-0x24], al
006E5239   8A45 E5       mov     al, byte ptr [ebp-0x1B]          ;  al == k[1]
006E523C   3245 EB       xor     al, byte ptr [ebp-0x15]          ;  al == k[1]^k[7]
006E523F   .  FF75 DC       push    dword ptr [ebp-0x24]             ;  push al == k[0]^k[6]
006E5242   0FB6C8        movzx   ecx, al                          ;  ecx == (k[1]^k[7])&0xFF
006E5245   .  B8 00010000   mov     eax, 0x100                       ;  eax == 0x100
006E524A   0FAFC8        imul    ecx, eax                         ;  ecx =  ((k[1]^k[7])&0xFF)*0x100
006E524D   8A45 E6       mov     al, byte ptr [ebp-0x1A]          ;  al == k[2]
006E5250   3245 E9       xor     al, byte ptr [ebp-0x17]          ;  al == k[2]^k[5]
006E5253   0FB6C0        movzx   eax, al                          ;  eax == (k[2]^k[5])&0xFF
006E5256   66:03C8       add     cx, ax                           ;  cx = (((k[1]^k[7])&0xFF)*0x100)+((k[2]^k[5])&0xFF)
006E5259   0FB7F1        movzx   esi, cx                          ;  esi =  (((k[1]^k[7])&0xFF)*0x100)+((k[2]^k[5])&0xFF)&0xFFFF
006E525C   .  E8 5309D2FF   call    00405BB4                         ;  处理K[0]和K[6] al == ((k[0]^k[6])^0x18 + 0x3D)^0xA7
006E5261   0FB6C0        movzx   eax, al                          ;  eax == (((k[0]^k[6])^0x18 + 0x3D)^0xA7)&0xFF
006E5264   56            push    esi                              ;  push esi =  (((k[1]^k[7])&0xFF)*0x100)+((k[2]^k[5])&0xFF)&0xFFFF
006E5265   8943 1C       mov     dword ptr [ebx+0x1C], eax        ;  下面CALL 返回 eax =  ((((((k[1]^k[7])&0xFF)*0x100)+((k[2]^k[5])&0xFF)&0xFFFF)^0x7892 + 0x4D30)&0xFFFF)^0x3421
006E5268   .  E8 D84FD2FF   call    0040A245                         ;  计算的值和0xB做除法  余数不为0则返回0 余数为0则返回商
006E526D   8B4B 1C       mov     ecx, dword ptr [ebx+0x1C]        ;  ecx == (((k[0]^k[6])^0x18 + 0x3D)^0xA7)&0xFF
006E5270   83C4 08       add     esp, 0x8
006E5273   0FB7C0        movzx   eax, ax                          ;  eax =  ((((((((k[1]^k[7])&0xFF)*0x100)+((k[2]^k[5])&0xFF)&0xFFFF)^0x7892 + 0x4D30)&0xFFFF)^0x3421) / 0xB) &0xFFFF
006E5276   8943 20       mov     dword ptr [ebx+0x20], eax
006E5279   85C9          test    ecx, ecx                         ;  判断  (((k[0]^k[6])^0x18 + 0x3D)^0xA7)&0xFF != 0
006E527B   0F84 DE010000 je      006E545F
006E5281   85C0          test    eax, eax                         ;  判断 eax =  (((((((k[1]^k[7])&0xFF)*0x100)+((k[2]^k[5])&0xFF)&0xFF)^0x7892 + 0x4D30)&0xFFFF)^0x3421)&0xFFFF != 0
006E5283   0F84 D6010000 je      006E545F
006E5289   3D E8030000   cmp     eax, 0x3E8                       ;  且 eax < 0x3E8
006E528E   0F87 CB010000 ja      006E545F
 
 
 
 
 
#include <stdio.h>
#include <windows.h>
#include <time.h>
 
int main()
{
    /*
        判断  (((k[0]^k[6])^0x18 + 0x3D)^0xA7)&0xFF != 0
        判断 eax = ((((((((k[1]^k[7])&0xFF)*0x100)+((k[2]^k[5])&0xFF)&0xFFFF)^0x7892 + 0x4D30)&0xFFFF)^0x3421) / 0xB) &0xFFFF != 0
        判断 eax = ((((((((k[1]^k[7])&0xFF)*0x100)+((k[2]^k[5])&0xFF)&0xFFFF)^0x7892 + 0x4D30)&0xFFFF)^0x3421) / 0xB) &0xFFFF < 0x3E8
        已知K[3] == 0x9C / 0xFC / 0xAC
    */
 
    byte bKey[10] = { 0 };
    bKey[3] = 0x9C;
 
    srand(time(NULL));
    while (true)
    {
        byte k0 = rand() % 0xFF;
        byte k6 = rand() % 0xFF;
        byte s1 = (((k0 ^ k6) ^ 0x18 + 0x3D) ^ 0xA7) & 0xFF;
        if (s1 != 0)
        {
            //获取到了K0 和 K6
            bKey[0] = k0;
            bKey[6] = k6;
            break;
        }
    }
    while (true)
    {
        byte k1 = rand() % 0xFF;
        byte k7 = rand() % 0xFF;
        byte k2 = rand() % 0xFF;
        byte k5 = rand() % 0xFF;
        DWORD s1 = (((((((k1 ^ k7) & 0xFF) * 0x100) + ((k2 ^ k5) & 0xFF) & 0xFFFF) ^ 0x7892) + 0x4D30) ^ 0x3421) & 0xFFFF;
        if ((s1 % 0xB) == 0 && (s1 / 0xB) < 0x3E8)
        {
            bKey[1] = k1;
            bKey[7] = k7;
            bKey[2] = k2;
            bKey[5] = k5;
            break;
        }
    }
    for (int i = 0; i < 10; i++)
    {
        printf("%02X", bKey[i]);
    }
    getchar();
    return 0;
}
#include <stdio.h>
#include <windows.h>
#include <time.h>
 
int main()
{
    /*
        判断  (((k[0]^k[6])^0x18 + 0x3D)^0xA7)&0xFF != 0
        判断 eax = ((((((((k[1]^k[7])&0xFF)*0x100)+((k[2]^k[5])&0xFF)&0xFFFF)^0x7892 + 0x4D30)&0xFFFF)^0x3421) / 0xB) &0xFFFF != 0
        判断 eax = ((((((((k[1]^k[7])&0xFF)*0x100)+((k[2]^k[5])&0xFF)&0xFFFF)^0x7892 + 0x4D30)&0xFFFF)^0x3421) / 0xB) &0xFFFF < 0x3E8
        已知K[3] == 0x9C / 0xFC / 0xAC
    */
 
    byte bKey[10] = { 0 };
    bKey[3] = 0x9C;
 
    srand(time(NULL));
    while (true)
    {
        byte k0 = rand() % 0xFF;
        byte k6 = rand() % 0xFF;
        byte s1 = (((k0 ^ k6) ^ 0x18 + 0x3D) ^ 0xA7) & 0xFF;
        if (s1 != 0)
        {
            //获取到了K0 和 K6
            bKey[0] = k0;
            bKey[6] = k6;
            break;
        }
    }
    while (true)
    {
        byte k1 = rand() % 0xFF;
        byte k7 = rand() % 0xFF;
        byte k2 = rand() % 0xFF;
        byte k5 = rand() % 0xFF;
        DWORD s1 = (((((((k1 ^ k7) & 0xFF) * 0x100) + ((k2 ^ k5) & 0xFF) & 0xFFFF) ^ 0x7892) + 0x4D30) ^ 0x3421) & 0xFFFF;
        if ((s1 % 0xB) == 0 && (s1 / 0xB) < 0x3E8)
        {
            bKey[1] = k1;
            bKey[7] = k7;
            bKey[2] = k2;
            bKey[5] = k5;
            break;
        }
    }
    for (int i = 0; i < 10; i++)
    {
        printf("%02X", bKey[i]);
    }
    getchar();
    return 0;
}
 
 
 
 

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 2
支持
分享
最新回复 (9)
雪    币: 2943
活跃值: (1788)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
2
???我没看懂哦,最后的提示不是说 key is invalid,意思是注册码无效吗?
2020-10-7 18:22
0
雪    币: 191
活跃值: (2755)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
wofan[OCN] ???我没看懂哦,最后的提示不是说 key is invalid,意思是注册码无效吗?
哪里?
2020-10-7 19:12
0
雪    币: 2943
活跃值: (1788)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
4
轩词 哪里?

你的最后一张截图啊,是因为没过网络验证造成的注册码无效吗?


Warning:010 Editor has detected that you have entered an invalid license. Please check to see if your license is entered correetly and try again. If this problem persists, please visit' http://www. sweetscape. com/support/".


最后于 2020-10-7 20:53 被wofan[OCN]编辑 ,原因:
2020-10-7 20:52
0
雪    币: 191
活跃值: (2755)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
wofan[OCN] 轩词 哪里? 你的最后一张截图啊,是因为没过网络验证造成的注册码无效吗?Warning:010 Editor has detected that you hav ...
这是网络验证了 最开始说了网络验证的破解
2020-10-7 21:20
0
雪    币: 377
活跃值: (5996)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
6
https://www.kanxue.com/chm.htm?id=15099&pid=node1001286
你的文章看起来和这篇差不多,怎么不给精华
2020-10-7 23:29
0
雪    币: 377
活跃值: (5996)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
7
怪不得看标题这么眼熟,果然以前看过
2020-10-7 23:32
0
雪    币: 191
活跃值: (2755)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
8
下咯 https://www.kanxue.com/chm.htm?id=15099&pid=node1001286 你的文章看起来和这篇差不多,怎么不给精华
都一样
2020-10-8 07:51
0
雪    币: 588
活跃值: (367)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
支持
2020-10-8 10:47
0
游客
登录 | 注册 方可回帖
返回
//