Antonariy писал(а):А запись End Sub:Sub End_of_A:end sub именно в такой форме гарантирует, что и в памяти они окажутся по соседству?
Компиляция функция осуществляется всегда в том же порядке, в котором они размещены в коде. Однако, есть один подводный момент, о котором я как раз собирался упомянуть: если компилятор найдёт ещё один пустой Sub, ничего не принимающий и ничего не возвращающий, он не будет генерировать код для двух идентичных Sub-ов, а отбросит один из них. Может отбросить и Sub, выполняющий роль маркера конца процедуры. Поэтому, надо обеспечить, чтобы Sub был уникальным в рамках проекта. Сделать это просто — Sub превратить в функцию, которая возвращает уникальное число.
Есть и другие подводные камни, но они из другой плоскости, и я жду, пока автор об них спотыкнётся.
Twister писал(а):Ты сам задумайся.
Я занимаюсь этим постоянно.
Twister писал(а):Разве может быть иначе? Где по-твоему еще может остановиться выполнение?
Может. Предположим, что он останавливается где-либо внутри kernel32!BaseProcessStart, до вызова из оной нашей EP. Теперь, не глядя (насильно!) на существующую BaseProcessStart (и на отсутствие там далее упомянутого региона), представляем себе, что в BaseProcessStart есть регион кода, в котором esp принимает невалидное значение. Мало ли, вышла новая винда с изменённым BPS или какой-то антивирус/руткит подменил BaseProcessStart на свою. Не имеет значения. Имеет значение лишь то, что MS не гарантирует и не определяет, где именно остановится базовый поток и что будут содержать регистры. А раз не гарантирует не определяет, полагаться на это нельзя, несмотря ни на что.
Twister писал(а):и поток пойдёт выполняться дальше. Следовательно esp инициализирован верно.
Неследовательно. Вот как раз, может быть, дальше-то esp и исправится на валидное значение. А вот конкретно сейчас там может быть вовсе невалидное значение.
Twister писал(а):ЗЫ. Такое ощущение, что ты просто хочешь докопаться. Неужели вызывает сомнение моя компетентность в данном вопросе?
Нет, просто, мы уже спорили совсем недавно на эту тему и твои аргументы я знаю. Вызывает не сомнение, а вызывает опасение твой подход, заключающийся в полагании на авось.