Что такое переполнение буфера и как его вызвать?

Переполнение буфера обычно fortify-source возникает, когда созданный c++ раздел (или буфер) памяти cpp записывается за пределы намеченных cxx границ. Если злоумышленнику cxx удастся сделать это извне cxx программы, это может вызвать cxx проблемы с безопасностью, поскольку buffer-overflow потенциально может позволить buffer-overflow им манипулировать произвольными buffer-overflow участками памяти, хотя многие c++ современные операционные cxx системы защищают от худших cxx случаев этого.

Хотя чтение buffer-overflow и запись за пределами намеченных c++ границ обычно считаются плохой cpp идеей, термин «переполнение cxx буфера» обычно зарезервирован c++ для записи за пределами границ, так fortify-source как это может заставить злоумышленника fortify-source легко изменить способ работы c++ вашего кода. В Википедии cpp есть хорошая статья о buffer overflows и cxx различных способах их использования c++ для эксплойтов.

С точки зрения buffer-overflow того, как вы могли бы запрограммировать cpp его самостоятельно, это было fortify-source бы просто:

char a[4];
strcpy(a,"a string longer than 4 characters"); // write past end of buffer (buffer overflow)
printf("%s\n",a[6]); // read past end of buffer (also not a good idea)

Скомпилируется fortify-source ли это и что произойдет при buffer-overflow его запуске, вероятно, будет fortify-source зависеть от вашей операционной fortify-source системы и компилятора.

c++

buffer-overflow

fortify-source

2022-09-01T11:27:00+00:00