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

FileStream C#

WhiteDragon

AMSI bypass
Пользователь
Регистрация
01.07.2021
Сообщения
165
Реакции
137
Депозит
0.0051
создается FileStream и записывается туда в память, и в памяти нужно сдампить данные через FileStream.read(буфер, начало офсета, длина).
Все сделано по рецепту, но в конечном итоге байты куда-то выпадают и получаются неточные данные
Даже через FileStream.length и в буфер написанный length разные данные
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Ну во-первых, код где, когда вы все научитесь задавать программисткие вопросы нормально? Во-вторых, используй директиву using и/или метод Flush, когда считываешь или записываешь несколько Stream друг в друга. В третьих, есть File.ReadAllBytes.
 
Ну во-первых, код где, когда вы все научитесь задавать программисткие вопросы нормально? Во-вторых, используй директиву using и/или метод Flush, когда считываешь или записываешь несколько Stream друг в друга. В третьих, есть File.ReadAllBytes.
файл уже открыт, туда записаны данные и нужно эти данные снять, т.е. до FileStream.Close нужно данные сдампить в буффер
 
Чтобы прочитать все байты используй: File.ReadAllBytes(fileName)
C#:
public byte[] ReadAllBytes(string fileName)
{
    byte[] buffer = null;
    using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read))
    {
        buffer = new byte[fs.Length];
        fs.Read(buffer, 0, (int)fs.Length);
    }
    return buffer;
}
Или так:
C#:
public byte[] FileToByteArray(string fileName)
{
    byte[] fileData = null;

    using (FileStream fs = File.OpenRead(fileName))
    {
        using (BinaryReader binaryReader = new BinaryReader(fs))
        {
            fileData = binaryReader.ReadBytes((int)fs.Length);
        }
    }
    return fileData;
}
За место FileStream можно вообще использовать BufferedStream по производительности быстрее
 
Последнее редактирование:


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