Ответ 1
Некоторые атаки состоят в том, что программа переходит на определенный адрес и продолжает работать оттуда. Введенный код должен быть загружен ранее каким-то образом в этом точном месте.
Рандомизация стека и другие различия во времени выполнения могут сделать адрес, в котором программа будет прыгать, невозможно предсказать, поэтому злоумышленник помещает салфетки NOP в большой диапазон памяти. Если программа прыгает куда угодно в сани, она будет запускать все остальные NOP, ничего не делая, а затем запускает код полезной нагрузки, рядом с салазками.
Причина, по которой злоумышленник использует салфетки NOP, состоит в том, чтобы сделать целевой адрес более крупным: код может прыгать в любом месте салазок, а не точно в начале введенного кода.
128-байтный NOP-сани - это всего лишь группа NOP-схем шириной 128 байтов.
ПРИМЕЧАНИЕ # 1: NOP (No-OPeration) - это инструкция, доступная в большинстве (всех?) архитектур, которая ничего не делает, кроме занимаемой памяти и некоторой среды выполнения.
ПРИМЕЧАНИЕ # 2: в архитектурах с инструкциями переменной длины инструкция NOP обычно имеет длину всего один байт, поэтому ее можно использовать в качестве удобного дополнения команд. К сожалению, это также облегчает выполнение санки NOP.