В том случае, когда код действительно "мертвый" - согласен с автором. Но есть случаи, когда данные встраиваются в код (ну или код в данные). Например объявляем функцию/процедуру на ассемблере (псевдоязык - нам главное в сегмент кода поместить массив из байт)
void MyDeathCode() {
asm db AA,BB,CC,DD,0A,0B,0C,OD
}
Этот "код", хотя прямых вызовов его и нет - может быть использован и как хранилище для какого-то набора данных, так и быть вызван путем взятия указателя на начало процедуры + смещение на нужный нам участок от начала (указатель + смещение) и ничто не мешает в набор db поместить исполняемый код.
В том случае, когда код действительно "мертвый" - согласен с автором. Но есть случаи, когда данные встраиваются в код (ну или код в данные). Например объявляем функцию/процедуру на ассемблере (псевдоязык - нам главное в сегмент кода поместить массив из байт)
void MyDeathCode() {
asm db AA,BB,CC,DD,0A,0B,0C,OD
}
Этот "код", хотя прямых вызовов его и нет - может быть использован и как хранилище для какого-то набора данных, так и быть вызван путем взятия указателя на начало процедуры + смещение на нужный нам участок от начала (указатель + смещение) и ничто не мешает в набор db поместить исполняемый код.