• XSS.stack #1 – первый литературный журнал от юзеров форума

Пампер .ехе c#

Goty

RAID-массив
Пользователь
Регистрация
02.08.2023
Сообщения
67
Реакции
17
Простой пампер файлов , работает , но есть один нюанс , после добавления раздутого файла в архив , файл не сжимается , например памп 750 МБ , то и архив 750 МБ .
Как это исправить ?)


C#:
using System;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Введите путь к файлу:");
        string filePath = Console.ReadLine();

        if (File.Exists(filePath))
        {
            Console.WriteLine("Введите размер пампа в МБ:");
            if (long.TryParse(Console.ReadLine(), out long pumpSizeMB))
            {
                long targetSize = pumpSizeMB * 1024 * 1024; // Конвертируем в байты
                byte[] originalFile = File.ReadAllBytes(filePath);

                if (originalFile.Length < targetSize)
                {
                    using (FileStream fileStream = new FileStream(filePath, FileMode.Create))
                    {
                        // Записываем оригинальный файл
                        fileStream.Write(originalFile, 0, originalFile.Length);

                        // Создаем и записываем "памп"
                        byte[] pumpData = new byte[targetSize - originalFile.Length];
                        new Random().NextBytes(pumpData);
                        fileStream.Write(pumpData, 0, pumpData.Length);
                        fileStream.Flush(); // Обеспечиваем завершение записи
                    }


                    Console.WriteLine($"Файл успешно пампирован до {pumpSizeMB} МБ!");
                }
                else
                {
                    Console.WriteLine("Размер оригинального файла уже превышает указанный размер.");
                }
            }
            else
            {
                Console.WriteLine("Некорректный ввод размера.");
            }
        }
        else
        {
            Console.WriteLine("Файл не найден.");
        }
    }
}
 
new Random().NextBytes(pumpData);
Не нужно заполнять рандомными байтами - они плохо сжимаются из-за высокой энтропии. Заполни буффер, к примеру, 0.
 
Последнее редактирование:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх