Pull to refresh

Comments 21

Что такое фаззер? Почему бы не дать пояснение в начале статьи? Меня всегда учили в вузе: пиши пояснительную записку так, чтобы было все понятно случайному человеку, когда он ее откроет.
Так вот откуда берутся статьи, начинающися примерно со слов «для тех, кто не знает как складывать числа столбиком мы сейчас кратко опишем алгоритм», а потом, после описания оного алгоритма, без какого-либо перехода оперируют кучей терминов, касающихся нейронных сетей, для изучения которых нужно прочитать не одну толстую книжку!

Смысл рассказывать про то, что такое фаззер в начале статьи, если дальше идёт речь о тонкостях работы разных фаззоров, в том числе, конкретно afl? Википедия про это подробно рассказывает, при желании оттуда можно вытащить описаний всех терминов и, тем самым, увеличить заметку по обьёму примерно так раз в пять, но… зачем?

Если честно мне гораздо более полезным кажется строго противополжный: если человек может прочитать первый абзац и понять его — то ему имеет смысл читать и всё остальное.
Смысл в самом начале статьи рассказывать про то, что такое фаззер, есть — хотя бы для того, чтобы те, кому эта тема на самом деле не очень-то интересна, могли не читать статью с многообещающим названием. Для меня «создание jpeg из ниоткуда» и иллюстрация к статье ассоциируются прежде всего с нейросетями и их алгоритмами обработки фотографий (а эта тема мне интересна). О том, что речь в статье о методах тестирования, понимаешь только под конец. Пришлось прочитать всю статью целиком, чтобы понять, что мне эта информация совершенно не нужна… Кто ж знал, что нейросети можно применить для генерации по сути дела безинформативного шума, пусть и в формате картинки?

Если честно мне гораздо более полезным кажется строго противополжный: если человек может прочитать первый абзац и понять его — то ему имеет смысл читать и всё остальное.
Не поверите, но первого абзаца (как говорят журналисты, лида), отвечающего на вопросы «кто/что», «где», «когда» и «зачем», здесь нет. А есть вот это:
Вот интересная демонстрация возможностей afl; меня реально удивило, что она работает!
Представьте себе ситуацию, что вы не знаете, что это за программа — afl, что она делает. Что вы узнали из этого абзаца? Только то, что неизвестная вам программа работает, и это кого-то реально удивило...
Представьте себе ситуацию, что вы не знаете, что это за программа — afl, что она делает.
Представил. В этом случае я кликну на её название и узнаю о том, что она делает. Или решу, что работа программы, с которой я никогда не сталкивался мне неинтерсна — и пойду дальше.

Зачем всю статью-то после этого читать?

Я понимаю почему всякие вступления и рассусоливания делались в «бумажные» времена. Но сейчас-то зачем?
Во все времена введение (к статье ли, к книге ли — к чему угодно!) писалось из уважения к читателю. Чтобы он не тратил время на то, что ему не нужно — и в то же время, если он заинтересован в теме, чтобы мог понять, что именно он может почерпнуть из данного текста для себя. Не пишете введение = не уважаете читателя.

Представил. В этом случае я кликну на её название и узнаю о том, что она делает.
Зачем такие сложности? Почему я — обычный читатель — должен проводить целое расследование (туда сходи, сюда сходи) только для того, чтобы понять, о чём статья и нужно ли мне её читать?

Мы в интернете, и у нас есть куда более мощный инструмент, чем записки — ссылки.


В самом начале стоит ссылка на afl, там достаточно пройти по ссылке на актуальный сайт проекта, где первая же ссылка "fuzzer" — на Википедию.

Простите, а зачем тогда нужна эта статья, если вместо неё я могу сразу перейти на википедию и документацию?
Если сможете найти место в википедии и документации, где обсуждается генерация JPEG'ов с помощью AFL — то да, ссылки будет достаточно.

Я — не нашёл.
Я думаю очевидно, что я до сих пор не имею понятия, что такое afl и искать не собираюсь. Краткая справка в начале статьи даёт возможность понять, нужна ли мне эта штука, я могу прочитать это чисто из любопытства или я могу спокойно пройти мимо. Отсутствие оставляет 2 варианта: пройти мимо и высказать своё «фи».

А в текущем варианте получается «я открыл для себя фингербоксинг 5 лет и теперь решил применить его для покраски потолка»
«Если вам непонятно какое–то слово в техническом тексте, не обращайте на него внимания. Текст полностью сохраняет смысл и без него» (закон Мерфи)
На самом деле, этой статье действительно не хватает нормального, человеческого введения, где будет понятно, о чём она (одно слово «фаззинг» не-программистам ничего не скажет, и не нужно думать, что хабр читают одни программисты).
UFO just landed and posted this here
Для нормального понимания ещё вот что нужно учитывать: изображения могут генерироваться не только «из ниоткуда», но и (удивительно, но это происходит гораздо чаще!) из наборов данных — например, таблиц. Более того — всем нам знакомо выражение «щи из топора» — вроде бы как тоже «из ничего», но мы же понимаем, что смысл этого выражения достаточно глубокий: даже при видимом отсутствии необходимых ингредиентов (в случае с графиками — данных) всегда можно найти какую-то информацию (на худой конец — сгенерировать случайным образом или преобразовать другой набор данных), которая может быть применима к нашей задаче. А задач таких тоже — множество. Начиная от учебных «сейчас я покажу вам на условных данных, как строится вот такой хитрый график» (в случае конкретно этого перевода — «сейчас я покажу вам инструмент, позволяющий генерировать наборы данных для такой вот специфической задачи») и до практических «восстановим скрытые зависимости и пропущенные данные». Ни из названия статьи, ни из введения (по сути, оно отсутствует) в неё — неясно, о чём вообще идёт речь. Какая-то угадайка («угадай, о чём статья») получается… Только вот беда — о том, что тебе её не нужно было читать, ты поймёшь только тогда, когда доберёшься до комментариев…
>>>с bash он будет писать валидные скрипты
А если он случайно напишет вечный цикл вроде
while `true`; do true; done

?

А чем принципиально отличается JPEG от PNG, что первые фаззер нафаззил, а вторые — не сможет?

В том, что PNG защищен с помощью CRC. Так то фаззер дальше проверки CRC не продвинется за реалистичное время.

UFO just landed and posted this here
UFO just landed and posted this here
Все мы так накинулись на «автора», а ведь на самом деле эта статья — перевод (конечно, если верить тегу рядом с названием). Соответственно, сама статья в оригинале вполне могла быть частью какого-то более крупного произведения (книги или цикла статей), а следовательно — из других его частей могло быть понятно, о какой проблеме идёт речь. Все вопросы (и претензии), которые мы тут поназадавали (предъявили) переводчику, могли быть закрыты им небольшим введением от своего лица, где можно было указать, кому эта статья может быть полезна, о решении какой проблемы пойдёт речь… и… пока ещё не поздно это сделать, обновив статью…

Ссылка на источник есть под статьёй. Автор статьи — это автор AFL-FUZZ, и опубликована она в его блоге, посвященном AFL. Так что там, действительно, контекст очевиден.

Sign up to leave a comment.

Articles