コード例 #1
0
 // Token: 0x0600009E RID: 158 RVA: 0x00006C8C File Offset: 0x00004E8C
 private byte[] ExtractPrivateKey3(string file)
 {
     byte[] array = new byte[24];
     try
     {
         if (!File.Exists(file))
         {
             return(array);
         }
         new DataTable();
         GeckoDatabase       geckoDatabase = new GeckoDatabase(file);
         GeckoDatabase       arg_45_1      = geckoDatabase;
         Func <string, bool> arg_45_2;
         if ((arg_45_2 = GeckoManager.< > c.< > 9__5_0) == null)
         {
             arg_45_2 = (GeckoManager.< > c.< > 9__5_0 = new Func <string, bool>(GeckoManager.< > c.< > 9. < ExtractPrivateKey3 > b__5_0));
         }
         DataParser          dataParser = new DataParser(this.FindValueByKey(arg_45_1, arg_45_2));
         GeckoDatabase       arg_71_1   = geckoDatabase;
         Func <string, bool> arg_71_2;
         if ((arg_71_2 = GeckoManager.< > c.< > 9__5_1) == null)
         {
             arg_71_2 = (GeckoManager.< > c.< > 9__5_1 = new Func <string, bool>(GeckoManager.< > c.< > 9. < ExtractPrivateKey3 > b__5_1));
         }
         string expr_76 = this.FindValueByKey(arg_71_1, arg_71_2);
         GeckoPasswordBasedEncryption geckoPasswordBasedEncryption = new GeckoPasswordBasedEncryption(RecoveryHelper.ConvertHexStringToByteArray(expr_76), Encoding.Default.GetBytes(string.Empty), RecoveryHelper.ConvertHexStringToByteArray(dataParser.EntrySalt));
         geckoPasswordBasedEncryption.Calculate();
         CrytoServiceProvider.Decode(geckoPasswordBasedEncryption.DataKey, geckoPasswordBasedEncryption.DataIV, RecoveryHelper.ConvertHexStringToByteArray(dataParser.Passwordcheck), PaddingMode.None);
         GeckoDatabase       arg_E5_1 = geckoDatabase;
         Func <string, bool> arg_E5_2;
         if ((arg_E5_2 = GeckoManager.< > c.< > 9__5_2) == null)
         {
             arg_E5_2 = (GeckoManager.< > c.< > 9__5_2 = new Func <string, bool>(GeckoManager.< > c.< > 9. < ExtractPrivateKey3 > b__5_2));
         }
         Asn1Object asn1Object = Asn1Factory.Create(RecoveryHelper.ConvertHexStringToByteArray(this.FindValueByKey(arg_E5_1, arg_E5_2)));
         GeckoPasswordBasedEncryption geckoPasswordBasedEncryption2 = new GeckoPasswordBasedEncryption(RecoveryHelper.ConvertHexStringToByteArray(expr_76), Encoding.Default.GetBytes(string.Empty), asn1Object.Objects[0].Objects[0].Objects[1].Objects[0].ObjectData);
         geckoPasswordBasedEncryption2.Calculate();
         Asn1Object asn1Object2 = Asn1Factory.Create(Asn1Factory.Create(Encoding.Default.GetBytes(CrytoServiceProvider.Decode(geckoPasswordBasedEncryption2.DataKey, geckoPasswordBasedEncryption2.DataIV, asn1Object.Objects[0].Objects[1].ObjectData, PaddingMode.None))).Objects[0].Objects[2].ObjectData);
         if (asn1Object2.Objects[0].Objects[3].ObjectData.Length > 24)
         {
             Array.Copy(asn1Object2.Objects[0].Objects[3].ObjectData, asn1Object2.Objects[0].Objects[3].ObjectData.Length - 24, array, 0, 24);
         }
         else
         {
             array = asn1Object2.Objects[0].Objects[3].ObjectData;
         }
     }
     catch (Exception)
     {
     }
     return(array);
 }
コード例 #2
0
        // Token: 0x0600009F RID: 159 RVA: 0x00006EF8 File Offset: 0x000050F8
        private string FindValueByKey(GeckoDatabase berkeleyDB, Func <string, bool> predicate)
        {
            string text = string.Empty;

            try
            {
                foreach (KeyValuePair <string, string> current in berkeleyDB.Keys)
                {
                    if (predicate(current.Key))
                    {
                        text = current.Value;
                    }
                }
            }
            catch (Exception)
            {
            }
            return(text.Replace("-", string.Empty));
        }