Новости
Текущие проекты
Инструмент динамического символьного исполнения программ Anxiety
Начало проекта – 2012 год. Заказчик - ИСП РАН.В рамках перспективных направлений исследований по автоматическому обнаружению ошибок в машинном коде программ в 2012 году начата разработка инструмента Anxiety для проведения динамического символьного исполнения программ для операционных систем семейств Linux и Windows.
В рамках исследовательских работ в 2010 году начато исследование методов статического анализа программ на языках с динамической типизацией. Создан прототип инструмента, позволяющий проводить вывод типов для программ на языке Python. В настоящее время проект временно заморожен.
Завершенные проекты
Инструмент рандомизированного тестирования API библиотек
Начало проекта – 2018 год. Окончание проекта - 2018 год. Заказчик - Samsung.В рамках работ для компании Samsung в 2018 году разработан инструмент автоматического рандомизированного тестирования библиотек на языке Java. Инструмент построен на распределенной архитектуре, которая позволяет производить тяжеловесные вычисления на стационарном компьютере, а производить вызов функций библиотек как на стационарном компьютере, так и на мобильном устройстве.
В рамках работ для компании Samsung в 2014 году группой анализа программ разработан инструмент, предоставляющий возможности изменения функциональности исполняемых программ и библиотек на уровне машинного кода для операционных систем Android и Tizen с применением техник аспектно-ориентированного программирования. Инструмент предоставляет возможности изменения функциональности программы или библиотеки скомпилированной для архитектуры ARM, путем статического изменения машинного кода с добавлением новой функциональности в определенных точках исходной программы.
В рамках работ для компании Samsung в 2013 году группой анализа программ разработан инструмент анализа используемой памяти программами, написанными на языке Java и исполняющимися в Java-машине Dalvik, являющейся составной частью операционной системы Android.
Инструмент поиска ошибок синхронизации в многопоточных программах
Начало проекта – 2012 год. Окончание проекта - 2012 год. Заказчик - Samsung.В рамках работ для компании Samsung в 2012 году группой анализа программ разработан инструмент поиска ошибок синхронизации в многопоточных Java программах на основе инструментации Java байт-кода.
Реализованы алгоритмы инструментации Java байт-кода для сбора трасс выполнения программы и с применением библиотеки ThreadSanitizer реализован обнаружитель состояния гонки при доступе к ресурсам программы из разных потоков и взаимной блокировки потоков программы. Особенностью реализации инструмента является возможность его применения на Java машинах не поддерживающих встроенные механизмы инструментации (Dalvik).
Инструмент итеративного динамического анализа программ Avalanche
Начало проекта – 2009 год. Окончание проекта - 2012 год.В рамках перспективных направлений исследований в 2009 году в группе анализа программ началась разработка инструмента Avalanche для итеративного динамического анализа программ на базе среды динамической инструментации программ Valgrind. В настоящий момент проводятся исследования, направленные на увеличение производительности динамического анализа с использованием распределенных вычислений, исследование методов и разработка инструментов целенаправленного анализа отдельных модулей и функций целевой программы, а также исследование методов воспроизведения дефектов, найденных в процессе статического анализа программ, при помощи методов динамического анализа.
Инструменты статического анализа исходного кода программ на языках C, C++ и C#
Начало проекта – 2001 год. Окончание проекта - 2017 год. Заказчик - Klocwork a Rogue Wave Company.По заказу и совместно с канадской компанией Klocwork a Rogue Wave Company (ранее Klocwork Inc.) в группе анализа программ разрабатывается семейство инструментов статического анализа исходного кода программ на языках C, C++ и C# с объемом кода в несколько миллионов строк. В рамках проекта непосредственно в ИСП РАН разработан фронтенд компилятора языков C и C++ с поддержкой расширений языка для компиляторов GCC, Microsoft C++ Compiler, Green Hills, CodeWarior и других, а также собственный фронтенд компилятора для языка C#.