Вот наткнулся на пакет скриптов под IDA, которые ищут возможные переполнения буфера (http://sourceforge.net/projects/bugscam). Интересно, есть ли еще подобные вещи? Ну и конечно как вы думаете возможны ли универсальные определители уязвимости в приложении?
вопрос не в поиске кода, который может привести к overflow ? в конце - концов типичные ошибки описаны и некоторые из них могут определяться автоматически (printf например в дизассемблерном листинге) впрос в возможности их exploitation, на вход таким ошибкам должены подаваться данные , пришедшие извне (для remote) или из input streams/files (для повышения привилегий) для этого одного deadlisting мало , только если программа очень простая , то можно полностью проанализировать все пути данных от ввода до вывода
Так я про это и написал Попробывал и уже есть замечание, что не обрабатывается проверка принемаемой строки. Т.е. в репорте выдается, что возможно переполнение, а на самом деле на sprintf попадаем только когда strlen меньше нужной длины. Мне кажеться это можно автоматически отловить.
Универсальные теоретически возможны... Но только теоретически, не зря ж столько людей тратит время и деньги на аудит кода. Вообще баги разные бывают -- не только переполнение буфера. Переполнение -- наиболее просто используемый. Ловителей багов туева хуча, см, например, valgrind.
utyf13 универсальный подход как показал мой опыт только один, создание программы с гибким искусственным интеллектом, а так это всё чушь... Только мозги себе про**ешь