Публикации по теме 'static-analysis'


Статический анализ в JavaScript: техническое введение
… или, как мы с любовью это называем: «Ничто в масштабе предприятия»! Помните, когда вы впервые смогли заставить работать небольшие программы, пока вы еще учились программировать? В тот первый раз вы написали десяток строк кода и поняли, как они работают вместе? Если вы все еще учитесь программировать и еще не дошли до этого, держитесь! Вас ждет угощение, и оно так того стоит! Эти замечательные моменты полного понимания становятся экспоненциально реже по мере того, как..

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

Обобщения в PHP с использованием PHPDocs
Обобщения в PHP с использованием PHPDocs Два года назад я написал впечатляющую статью о типах объединений и пересечений . Это помогло PHP-сообществу ознакомиться с этими концепциями, что в конечном итоге привело к поддержке типов пересечений в PhpStorm . Я написал эту статью, потому что различия между объединениями и пересечениями полезны и важны для статического анализа, и разработчики должны знать о них. Сегодня у меня аналогичная цель. Дженерики появятся в PHPStan 0.12 позже..

Один день из жизни разработчика PVS-Studio, или Как я отладил диагностику, которая превзошла три…
Основная задача статических анализаторов — поиск ошибок, пропущенных разработчиками. Недавно команда PVS-Studio снова нашла интересный пример, доказывающий силу статического анализа. Вы должны быть очень внимательны при работе с инструментами статического анализа. Часто код, вызвавший срабатывание анализатора, кажется правильным. Таким образом, у вас возникает соблазн пометить предупреждение как ложное срабатывание. На днях мы попали в такую ​​ловушку. Вот как это оказалось...

Снафус нулевого дня - поиск ошибок распределения памяти
Предисловие Такие языки, как C / C ++, поставляются со всей стороной распределения malloc , calloc , zalloc , realloc и их специализированных версий kmalloc и т. Д. Например, malloc имеет подпись void *malloc(size_t size) Это означает, что можно запросить произвольное количество байтов из кучи, и функция вернет указатель, с которым можно начать работу. Позже память должна быть освобождена с помощью free() . Эти функции по-прежнему представляют интерес для..

CSAW CTF 2016 Finals, отчет о Cookie Math
Нам дан раздетый 32-битный ELF. Скачать бинарник можно здесь . Разборка двоичного файла говорит нам, что он копирует 30 символов флага в память и манипулирует им, чтобы проверить правильный флаг. В коде не так много ответвлений, поэтому angr справится. Вот сценарий: 13 ГБ оперативной памяти и через пару минут у нас есть флаг: …. ОТЛАДКА | 2016–11–13 16:19:40,132 | angr.path_group | Раунд 49: степпинг ‹PathGroup с активным 725› DEBUG | 2016–11–13 16:20:08,061 |..