1. C# / Говнокод #19448

    −104

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    public NtStatus CreateFile(string fileName, FileAccess access, FileShare share, FileMode mode, FileOptions options,
        FileAttributes attributes, DokanFileInfo info)
    {
        lock (_lock)
        {
            switch (mode)
            {
                case FileMode.Append:
                case FileMode.Open:
                {
                    try
                    {
                        var file = _fileSystem.GetFileSystemInfo(fileName);
                        return !file.Exists ? NtStatus.NoSuchFile : NtStatus.Success;
                    }
                    catch (IOException) // на@#% windows
                    {
                        return NtStatus.NoSuchFile;
                    }
                }
        ...
    }

    Припекло написать эмулятор диска под вендас
    Юзал Dokan (особый уличный FUSE, винда онли)

    Оказывается, винда умудряется искать даже файлы внутри другого файла и пытается найти файл по пути X:\lesbianporn.mp4\desktop.ini
    Может кто знает нахуя это сделано?

    Запостил: cykablyad, 12 Февраля 2016

    Комментарии (32) RSS

    • Подозреваю что автор пытался доказать возможным читателям кода, что он не гомик. Но сам и спалился т.к. ясно что он латентный педераст
      Ответить
    • > умудряется искать даже файлы внутри другого файла
      А ты флажки точно правильно заполнил, когда инфу о X:\lesbianporn.mp4 возвращал винде? Вдруг там закрался флаг, что это папка?
      Ответить
      • Это такой прыщешовинизм?
        Ответить
        • Всмысле?
          Ответить
          • Как можно заставить винду подумать, что файл - это папка?
            Ответить
            • Ну ОП же файловую систему пишет. Что ФС вернёт винде, то она и покажет...
              Ответить
      • Нет, все проверял десять раз
        И он бы в таком случае не дал бы файл открыть
        Ответить
        • Может это потоки? Когда-то, когда Маки и Виндосы были несовместимы, Виндовс вышел с замечательным обновлением: вилка ресурсов, но в юзерспейсе, а не так как в этих Маках... Ну, суть была в том, чтобы показывать макинтошевские файлы так, как будто они виндовские, без дополнительного файла ресурсов. Но жопа оказалась в том, что если один файл прицепить к другому таким способом, то он становится необнаружимым ни иксплорером, ни цмд.ехе, и вообще практически никем, кроме оригинального автора.
          Что, в свою очередь дало толчек и ершик руткитам и т.п. нехорошим программам, и поэтому Виндовс оставил эту фичу неуправляемой до самой последней-распоследней версии.
          Ответить
          • Однако, некоторые программы их всё-таки видят:
            https://technet.microsoft.com/en-us/sysinternals/bb897440.aspx
            Ответить
            • Их и cmd видит, и даже notepad видит, и все подряд видит
              Только там синтаксис с этими потоками ебнутый, что-то типа file.xyz:altStream:$DATA
              Ответить
              • Не в этом проблема. Чтобы записать в «скрытый» поток, я могу в любой программе тупо указать имя файла file.xyz:streamName. Всё нормально читается и пишется, всё всем платится.

                Проблема в том, что команда dir не перечисляет потоки (так же, как и все файловые менеджеры), а программка streams из Sysinternals перечисляет.

                В описании функции _findfirst я не нашёл, что нужно делать, чтобы она перечислила альтернативные потоки.
                Ответить
                • > Проблема в том, что команда dir не перечисляет потоки
                  Врешь, dir /R (Win10 точно, старшие версии хз)

                  C:\Users\Дмитрий\test>dir /?
                  Вывод списка файлов и подкаталогов в указанном каталоге.
                  
                  DIR [диск:][путь][имя файла] [/A[[:]атрибуты]] [/b] [/C] [/D] [/L] [/N]
                    [/O[[:]порядок сортировки]] [/P] [/Q] [/R] [/s] [/T[[:]время]] [/W] [/X] [/4]
                  ...
                    /R          Отображение альтернативных потоков данных этого файла.
                  Ответить
                  • Верно. В Семёрке и в Висте работает. В Хрюше не помню.

                    Простите, погорячился.

                    Тем не менее, файловые менеджеры скрывают присутствие альтернативных потоков.

                    Но тезис о невидимости альтернативных потоков никем, кроме оригинального автора, оказался сомнительным.
                    Ответить
                    • Просто на них никто не смотрит. И по-умолчанию их никто не показывает.
                      Ответить
                      • Значит, на рабочем компе можно безбоязненно хранить фильмы?
                        Ответить
                        • А стримы копируются при копировании файла на другой диск/шару?
                          Ответить
                        • Засунуть zip с проном в альтернативный поток ntoskrnl
                          Точно никто не удалит и не заметит
                          Школьники будут рады
                          Ответить
                          • Зачем zip? Да и на нтоскёрнел поди права админа надо...
                            Ответить
                          • Тотал коммандер и тут обосрется в подсчете занимаемого места? И чем этот зип потом смотреть прикажете?
                            Ответить
                            • > И чем этот зип потом смотреть прикажете
                              Винампом
                              Ответить
              • P.S. Нашёл способ перечисления потоков:
                http://hex.pp.ua/ntfs-alternate-data-streams.php

                Даже три:
                • BackupRead;
                • FindFirstStreamW и FindNextStreamW (Windows XP и более древние пролетают);
                • NtQueryInformationFile.
                Ответить
          • У меня потоки not implemented и они нахуй не нужны
            Ответить
        • может, это для архивов? ну типа c:\porno\lesbians.zip\baby_ebutsa.mp4 ?
          Ответить
      • Скорее всего Windows Explorer просто писали кривые мудаки, потому что такого поведения в других приложениях не замечено
        Ответить
        • А если файлмоном на настоящей ФС глянуть? Тоже видно запросы к desktop.ini внутри других файлов?
          Ответить
          • На настоящей вроде все нормально, а вот виртуальную файлмон не видит вообще
            Ответить
            • Как здорово было бы стать киберугрозой и одновременно с убийством инкубаторов пожирать и их данные... Кто бы переписал на ассемблер?
              Ответить

    Добавить комментарий