Теперь я понял, что означает исполняемый стек, компьютерные инструкции хранятся в разделе .text. Секции стека содержат аргументы функций, локальные переменные, мы также можем хранить инструкции, так как они являются байтовым кодом. Но по умолчанию CPU не будет выполнять инструкции, хранящиеся в стеке, поэтому, чтобы заставить CPU выполнять наш код, хранящийся в стеке, мы должны сказать, сделав стек исполняемым.
gcc -m32 -z execstack -o shell exploit.c
Код Вы указываете:
comboBox.Text = "Wildcards";
... должен работать. Единственная причина это не было бы, состоит в том, что текст, который Вы указываете, не является объектом в рамках списка объекта поля комбинированного списка. При использовании стиля DropDownList можно только установить текст на значения, которые на самом деле появляются в списке.
, Если имеет место, что Вы пытаетесь установить текст на Подстановочные знаки и что объект не появляется в списке, и альтернативное решение не приемлемо, Вам, вероятно, придется быть немного грязным с кодом и добавить объект временно, который удален, когда выпадающий список расширен.
, Например, если у Вас есть форма, содержащая поле комбинированного списка, названное "comboBox1" с некоторыми объектами и кнопкой, названной "button1", Вы могли сделать что-то вроде этого:
private void button1_Click(object sender, EventArgs e)
{
if (!comboBox1.Items.Contains("Wildcards"))
{
comboBox1.Items.Add("Wildcards");
}
comboBox1.Text = "Wildcards";
}
private void comboBox1_DropDown(object sender, EventArgs e)
{
if (comboBox1.Items.Contains("Wildcards"))
comboBox1.Items.Remove("Wildcards");
}
Это довольно быстро и грязно, но путем получения события DropDownClosed также Вы могли очистить его немного, добавив "Подстановочный" объект назад по мере необходимости.