Сейчас мы попробуем быстро написать сканер ntfs alternate data streams потоков, на не совсем тривиальном стеке и архитектуре. Сделал я это в первую очередь для тестирования возможностей моделей семейства qwen.

Краткое пояснение для тех, кто не работал в это сфере. NTFS (аббревиатура от англ. new technology file system — «файловая система новой технологии») — стандартная файловая система для семейства операционных систем Windows NT. Одним из ее малоизвестных свойств является наличие альтернативных потоков данных (англ. Alternate Data Streams, ADS), который представляют собой метаданные, связанные с объектом файловой системы NTFS. Таким образом к файлу можно прикрепить еще несколько потоков данных которые будут не видны стандартными средствами ОС.

Как устроены ADS

  1. Основной поток (по умолчанию): Безымянный поток: $DATA содержит привычное содержимое файла (текст, код, картинку).

  2. Альтернативные (именованные) потоки: Могут содержать любые данные произвольного размера и привязываются к имени файла через двоеточие, например: file.txt:streamname:$DATA.

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

  4. При копировании файла на другой носитель с файловой системой NTFS потоки сохраняются. При переносе на FAT32, exFAT или загрузке через большинство сетевых протоколов альтернативные потоки теряются.

Для легитимного применения ADS используются в следующих случаях:

  1. Хранение метаданных: Windows использует ADS для меток безопасности (например, знаменитый флаг Mark of the Web в потоке Zone.Identifier, который предупреждает при запуске скачанных из интернета файлов).

  2. Для совместимости: изначально функция внедрялась для поддержки файловых систем Macintosh (HFS), где файл мог отдельно хранить иконку, ресурсную часть и текст.

  3. Для классификация данных: Средства классификации (например, Microsoft FCI) могут сохранять метки документов внутри потоков.

Постановка задачи Qwen

В качестве программного стека для реализации мною было решено использовать Rust для ядра приложения и Avalonia для Gui, так как есть необходимость обеспечить работу как под Windows, так и под Linux. При этом Linux версия должна уметь работать как через ntfs3, так и через ntfs-3g. Все что в итоге получилось доступно на github: https://github.com/BlackEric001/NtfsStreamsViewer.

Для начала работы я отправил в https://chat.qwen.ai/ следующий промпт: «Нужно написать приложение с GUI для сканирования NTFS дисков на наличие в файлах alternate data streams. Необходимо обеспечить возможность просмотра данных в потоке, их выгрузку.»

Программа обязательно должна иметь возможность работы как под Windows, так и под Linux.

Я вижу реализацию как модуль работы с диском который будет выполнять сканирование дисков, папок, файлов, загружать и выгружать данные в потоки, их создавать и удалять. И предоставлять API для GUI.

Гуи же будет использовать модуль работы с диском.

Модуль работы с данными хотелось бы видеть реализованным на Rust.

На чем лучше сделать GUI?

Оцени вообще предложенную архтитектуру...»

По умолчанию предлагается Qwen3.7-Plus.

Рис. 1 начало ответа Qwen 3.7
Рис. 1 начало ответа Qwen 3.7

В общем он написал, что предложенная архитектура идеальна, без детальной проработки. Не хорошо… Пробуем Qwen3.8-Max, отправляя тот же самый промпт. Здесь уже ответ значительно более подробный, с весьма дельными предложениями. Длинный и подробный ответ Qwen3.8-Max можно прочитать по ссылке: https://chat.qwen.ai/s/t_9566645d‑b473-48b9-ac18-a00b79ee105c. Я не привожу его здесь, так как там очень много, но если вкратце, то 3.8. тоже согласился с предложенной мной архитектурой, но предложил ее дополнить еще одним приложением командной строки, что в итоге и было реализовано.

В итоге я попросил его написать ТЗ, описывающее реализацию ядра на Rust для qwen coder. ТЗ сохраняем в файл..\SPEC.md и вместе с начальной структурой каталогов пушим в репу.

Работа с qwen coder

Для начала работы с qwen coder (https://coder.qwen.ai/) даем ему доступ к репозиторию на гитхабе:

Рис 2. Выдача доступа qwen coder к репозиторию на гитхабе.
Рис 2. Выдача доступа qwen coder к репозиторию на гитхабе.

Пишем короткий промпт: «Напиши приложение по заданию в файле https://github.com/BlackEric001/NtfsStreamsViewer/blob/master/SPEC.md» и агент начинает работу.

Рис. 3. Не собирающийся код по итогу работы
Рис. 3. Не собирающийся код по итогу работы

По итогам работы он постоянно пытался мне отдать не собирающийся код, поэтому следующим промптом я просил его сделать так что бы код собирался. В итоге за пару итераций, каждая из которых заняла не больше 10 минут было получено вполне работающее консольное приложение.

Следующим этапом я попросил Qwen3.8-Max написать ТЗ для GUI части. То что у нас получилось после небольшого обсуждения я опять таки запушил в репу: https://github.com/BlackEric001/NtfsStreamsViewer/blob/master/docs/GUI.md, после чего попросил qwen coder реализовать интерфейс на Avalonia. С первой попытки он опять выдал не собирающийся код. Но здесь нужно заметить, что у агента нет доступа к Windows, он все проверял на доступном ему Linux. Я же все проверял под Win 10. После того как я сказал, что код не собирается он его поправил и получился не плохой, но очень простой интерфейс. После небольшого тестирования с моей стороны я попросил его добавить логи и их вывод в отдельном окне, что и было быстро проделано. Все pull requests от qwen coder я мержил без правок. После каждого этапа я просил Qwen3.8-Max проверить что получилось. В данной реализации он проблем не находил и предлагал переходить к следующему этапу.

Рис.4. Получившееся приложение
Рис.4. Получившееся приложение

Вывод

Все стало очень просто и быстро и сводится к постановке задачи агенту и проверке результата. IDE тоже не нужна. Фактически разработка начинает выглядеть как аналитика > постановка задачи агенту > проверка результата работы агента нейросетью для поиска ошибок, уязвимостей и т.д > тестирование получившегося приложения. Код теперь генерится с такой скоростью, что для ревью тоже нужен агент. Люди не успеют всё это отсмотреть вручную как раньше.

Я, к сожалению, не догадался засечь время, ушедшее на разработку, но на все программирование и общение с нейронками у меня ушло часа 4, не больше. Сколько бы это пришлось писать по старинке оцените сами. В исходники скоро будут смотреть так же часто, как до эпохи ИИ агентов смотрели в то, что нагенерил компилятор, поскольку такой объем человек просто не успеет изучить. А поскольку нейросети все равно на каком языке писать, во всяком случае из распространенных, то классическая разработка доживает последние годы.

P.S. Цель данной статьи - в первую очередь показать возможности нейросетей и агентов в разработке, а не собственно реализовать приложение. Поэтому и была выбрана такая развесистая и несколько избыточная архитектура.

Комментарии (34)


  1. LimTroev
    31.10.2026 18:36

    А поскольку нейросети все равно на каком языке писать, во всяком случае из распространенных, то классическая разработка доживает последние годы.

    К сожалению это свершившийся факт.


    1. LimTroev
      31.10.2026 18:36

      Да хоть обминусуйтесь. От этого никому никуда не деться, если страшно - то закройте глаза и под юбку к мамке залезьте. Вы учились на IT - было модно все небось уговаривали сулили перспективы и большие деньги сидя на жопе ровно. Сейчас преучиваться придется и идти на завод напильником махать или сантехником какашки чужи выгребать - очень пока что еще нужные специальности. И не тешьте себя надеждами, что AI кто то нужен будет чтобы ему задачи ставить.


    1. BlackEric001 Автор
      31.10.2026 18:36

      В силу инерции мышления руководства и т.д. еще не всех разогнали, но тенденция однозначна. При этом как я понимаю, не существует такой области интеллектуальной деятельности человека, которой нельзя было бы обучить ИИ.


      1. SanchoB
        31.10.2026 18:36

        Вот только ии нет абстрактного мышление.


        1. BlackEric001 Автор
          31.10.2026 18:36

          Это не важно. Важно что он способен решать задачи лучше многих.


          1. SanchoB
            31.10.2026 18:36

            Это важно, когда надо будет делать новые фрамворки. ИИ делает по шаблону.


            1. BlackEric001 Автор
              31.10.2026 18:36

              Что попросите, то и сделает. Ничего особого в фреймворках нет. Что такого принципиально нового не сможет написать ИИ?


              1. Flux
                31.10.2026 18:36

                Он не может написать ничего принципиально нового, потому что это не "ИИ" а предсказатель следующего токена обученный на существующих текстах и дотюненный на существующих rl-средах.


        1. Evgenii64
          31.10.2026 18:36

          оно есть у тех, кто работает с ним.


      1. Magikan1
        31.10.2026 18:36

        Что-то невидно «вспышки» в изобретениях ;(


    1. SanchoB
      31.10.2026 18:36

      Вот только review делать приятнее на том языке, которого ты знаешь


      1. BlackEric001 Автор
        31.10.2026 18:36

        Его LLM и будет делать.


        1. SanchoB
          31.10.2026 18:36

          Ага, и как ты узнаешь не за говнокодил же он там? И не думаю что кто то позволит только ИИ делать ревией.


          1. BlackEric001 Автор
            31.10.2026 18:36

            Вы просто не сможете вручную просмотреть такой объем кода. Сейчас коммит на 1000 строк в день от одно разраба становится нормой.


  1. igumnov
    31.10.2026 18:36

    Понимаю Вас. Когда попробуешь в первый раз ИИ и офигеваешь от возможностей. Но тут на хабре уже столько офигевших и продвинутых, что всем это боян )


    1. BlackEric001 Автор
      31.10.2026 18:36

      Я попытался описать как это все можно сделать сейчас и как будет. Может кому-то пригодится. Но осознавать что профессия которая кормила 20 лет, если не умерла, то изменилась до неузнаваемости неприятно.


      1. Mr_Makadamia
        31.10.2026 18:36

        ...Может кому-то пригодится...

        Это Очень хорошая идея! Поэтому при её воплощении не нужно быть Категоричным и не гибким! Удачи в начинаниях.


  1. Tanchik777
    31.10.2026 18:36

    Интересная статья:)


  1. FelixTheMagnificent
    31.10.2026 18:36

    Не обижайтесь. Просто опубликовав статью уровня "ой, я пытаюсь накодить в чате, потом не получается, потом я дал доступ к файлам, ой, за 4 часа что-то родилось" в 2026 году, кроме минусов в панамку сложно будет что-то иное собрать.

    Харнессы существуют далеко не один год, и если вы думаете, что ЛЛМ должны без доступа к компилятору и возможности прогонять тесты способны написать работающий код с первого раза - проделайте тот же эксперимент с собой в блокноте.

    И ЛЛМ - это не "убийца профессии", это рычаг с большим плечом. С грамотным инженером, ЛЛМ ускорит его работу многократно; с сомнительного качества инженером - код будет хуже и задача займет дольше.

    А относительно того, что вы за 4 часа написали то приложение что на скрине - моя быстрая оценка (не будучи программистом под win) - в разы меньше чем 4 часа если писать ручками. Если вы за 4 часа не способны написать энумератор потоков NTFS - у меня для вас плохие новости.


    1. BlackEric001 Автор
      31.10.2026 18:36

      Вы репу открывали? За сколько вы бы это сделали сами? Только честно.


      1. Siemargl
        31.10.2026 18:36

        Огромная куча кода для тривиальной задачи. Чем тут гордиться?

        Больше кода - сложнее исправить в случае проблем.

        Сгенери с той же ИИ простой скриптик. Будет толк.


        1. BlackEric001 Автор
          31.10.2026 18:36

          Задача тривиальная. Я специально ее взял и сделал развесистую архитектуру что бы показать возможности ИИ в разработке. Возможно плохо описал.


          1. runolight
            31.10.2026 18:36

            Так возьми развесистую задачу к которой нужна будет соответствующая архитектура. Раньше фанаты делали 5 слоев абстракции и архитектуры наваливали в то, что выполнит простой скрипт, чтобы показать свои скиллы, теперь так делают, чтобы показать скиллы нейросети. И те и те остаются непризнанными гениями которые создали излишний код и бегают вокруг него.


    1. Granulex
      31.10.2026 18:36

      Эксперимент с блокнотом человечество уже проводило массово – в эпоху перфокарт код писали на бланках до первого запуска, и профессионалы нередко сдавали программу с первого прогона. Человек в блокноте трассирует каждую строчку в голове – у него внутри работает исполнитель, которого у модели нет. Харнесс для ЛЛМ – протез этого недостающего органа.


    1. Jajaba
      31.10.2026 18:36

      Ну скорее убийца процентов 80-90 рабочих мест


  1. Evgenii64
    31.10.2026 18:36

    import ctypes as c from ctypes import wintypes as w

    class Stream(c.Structure): fields = [ (“size”, c.c_int64), (“name”, c.c_wchar * 296) ]

    api = c.WinDLL(“kernel32”, use_last_error=True) api.FindFirstStreamW.argtypes = [ w.LPCWSTR, c.c_int, c.POINTER(Stream), w.DWORD ] api.FindFirstStreamW.restype = w.HANDLE api.FindNextStreamW.argtypes = [w.HANDLE, c.POINTER(Stream)] api.FindNextStreamW.restype = w.BOOL api.FindClose.argtypes = [w.HANDLE]

    def find_ads(path): data = Stream() handle = api.FindFirstStreamW(path, 0, c.byref(data), 0)

    if handle == c.c_void_p(-1).value:
        return
    
    try:
        while True:
            if data.name != "::$DATA":
                name = data.name.removesuffix(":$DATA")
                yield name, data.size
            if not api.FindNextStreamW(handle, c.byref(data)):
                break
    finally:
        api.FindClose(handle)
    

    for name, size in find_ads(r"C:\Windows\notepad.exe"): print(f"ADS: {name} | {size} bytes")


    1. BlackEric001 Автор
      31.10.2026 18:36

      И? Это просто перечисление потоков. Без учета типа ОС, Gui и т.д.


      1. Evgenii64
        31.10.2026 18:36

        да, это просто кусочек. и ии это сделал за пару секунд. а полностью программу минут за пять.


        1. BlackEric001 Автор
          31.10.2026 18:36

          Я о том же. Все стало очень быстро и IDE можно не открывать.


  1. dimao79
    31.10.2026 18:36

    Интересно, на поварских ресурсах уже появляются гм... статьи навроде такой:

    "Куховарим без посуды или применение Макдональдса и МакДрайва для приготовления пищи"


  1. DarkGenius
    31.10.2026 18:36

    В чем новизна, простите? Мы давно разработку ведём агентами


    1. BlackEric001 Автор
      31.10.2026 18:36

      Если не секрет, то как давно и какие агенты используете?


  1. musk
    31.10.2026 18:36

    Вы на необитаемом острове что ли провели последние год-полтора?


    1. BlackEric001 Автор
      31.10.2026 18:36

      Почти )