Авторы отмечают одну интересную особенность: «само-лечащийся дизассемблер» (self-repairing disassembly). Дизассемблер может встретить несколько «мусорных» инструкций, но рано или поздно он вернется на верный трэк.
Кроме того, этот метод имеет разное влияние на разные дизассемблеры. В случае линейного алгоритма неверно распознаны в среднем 39% инструкций, а в случае рекурсивного алгоритма — 25%.
Ну и конечно непонятно как этот подход по мнению VolKarev помогает в случае динамического анализа.
Не вижу в этом абсолютно никакого смысла, если честно. Чисто технически — вероятно, медленнее: вызов двух функций вместо одной + цикл по всем элементам (цикл ли?). Но думается мне что это «медленнее» далеко не самое узкое место программы, а потому использовать malloc over calloc из соображений производительности — premature optimization, не иначе.
Авторы отмечают одну интересную особенность: «само-лечащийся дизассемблер» (self-repairing disassembly). Дизассемблер может встретить несколько «мусорных» инструкций, но рано или поздно он вернется на верный трэк.
Кроме того, этот метод имеет разное влияние на разные дизассемблеры. В случае линейного алгоритма неверно распознаны в среднем 39% инструкций, а в случае рекурсивного алгоритма — 25%.
Ну и конечно непонятно как этот подход по мнению VolKarev помогает в случае динамического анализа.
Что, простите?
Меряли или так просто?
Proof
Да как-бы никто не умрет если ее не будет.
Спасибо за ваше очень ценное мнение.