Собственно пост касается методики фаззинга виртуальной памяти процесса в целях поиска багов. После прочтения очередного издания по фаззингу ("Fuzzing: Brute Force Vulnerability Discovery") заинтересовала одна интересная мысль авторов, касающаяся поиска багов методом фаззинга виртуальной памяти процесса. Целесообразно использовать методу в том случае, если формат файла/протокола закрыт от внешних глаз (например, данные запакованы/зашифрованы своим извращенным методом) и реинженеринг кода распаковки/расшифрования данных занимает слишком много "трудочасов". В добавок авторы представили пример (на мой взгляд смешной до нельзя) и сказали, что метода работает, хотя и не претендует на универсальность. Я попробовал воспользоваться представленной методой, но столкнулся с одним "НО": зачастую простое зацикливание метода парсинга распакованных данных приводит к ошибкам, поскольку функции парсинга данных завязаны на кучу агрументов, являющихся ссылками на память и прочее. Если дополнительно использовать метод слепков виртуальной памяти, то производительность процесса снижается в разы. Если на форуме есть люди, использовавшие данную методу, расскажите о нюансах выбора точек для MLI и создания слепков страниц вирт памяти. И вообще целесообразно ли использовать метод при исследовании "больших" приложений?