ext.net 1 - Как построить идентификатор элемента div на основе данных строки в коде позади

Если вы случайно напишете за пределами блока, выделенного с помощью alloca (например, из-за переполнения буфера), вы перезапишите адрес возврата вашей функции, потому что он находится выше "в стеке, т. е. после вашего выделенного блока.

Следствием этого является двоякое:

  1. Программа будет аварийно завершена, и невозможно будет объяснить, почему или где она разбилась (стек, скорее всего, отключится от случайного адреса из-за перезаписанного указателя кадра).
  2. Это делает переполнение буфера во много раз более опасным, так как злоумышленник может создать специальную полезную нагрузку, которая будет помещена в стек, и поэтому может закончиться выполненным.

Напротив, если вы пишете за пределами блок на куче, который вы «просто» получаете от кучи. Программа, вероятно, прекратится неожиданно, но будет правильно раскручивать стек, тем самым уменьшая вероятность выполнения вредоносного кода.

0
задан jenna_3108 16 January 2019 в 01:51
поделиться