Борьба с утечками ресурсов и переполняющимися буферами

       

На самом деле, выделять динамические


На самом деле, выделять динамические массивы все-таки возможно, однако, только в том случае если компилятор, во-первых, адресует локальные переменные через EBP, а во-вторых, в эпилоге использует конструкцию MOV ESP, EBP

вместо ADD ESP, n. К таким компиляторам, в частности, относится Microsoft Visual C++, автоматически переходящий на адресацию локальных переменных через регистр EBP, если в теле функции присутствует хотя бы одна ассемблерная вставка.

Фрагмент одной из таких функций приведен ниже:

text:00000010        push   ebp

text:00000011        mov    ebp, esp

text:00000013        push   esi



text:0000002B        sub    esp, 400h



text:00000034        mov    eax, [ebp+var_4]



text:00000048        pop    esi

text:00000049        mov    esp, ebp

text:0000004B        pop    ebp

text:0000004C        retn


Содержание раздела