Почему виртуальные адреса секций после загрузки ехе отличаются от реальных и как получить их реальное значение? Сравнивал дамп ехе с оригинальным после описания секций появляется какой-то участок забитый нулями из-за него все сдвигается.
хз для чего это нужно. По всем адресам (физическим и виртуальным) тебе надо перед задаванием подобных вопросов хотя бы раз посмотреть на формат РЕ (тот же Мэтт Питрек) - обрати внимание на заголовки секций. Там все просто и понятно.
потомучто в файле секции выравниваются по границе 0x200 байт, а в памяти по границе 0x1000 байт, поэтому если 1я секция в файле начинается со смещения 0x400, 2я c 0x600, 3я c 0x800, то в памяти 1я секция начинается с смещения 0x1000, 2я c 0x2000, 3я c 0x3000, кроме того, если в секции есть неинициализированные данные (или код), то размер сеции в памяти будет больше размера секции на диске.
netcat организовать цикл с проверкой "А попадает ли искомый рва в диапазаон рва какой-либо секции? если нет, может он попадает в заголовок? Если нет, наверно это оверлей!"
netcat Такие "пляски" в исполняемом нужны для оптимизации. В физическом файле используется выравнивание 0x200, т.к. это обычно размер сектора. В виртуальной памяти используется выравнивание 0x1000, т.к. это размер страницы. Например код, который без выравнивания займет две страницы физической памяти с выравниванием может занять только одну. Сейчас это, может быть, менее актуально -- физической памяти стало больше. Значения физического/виртуального выравнивания могут меняться, но должны быть кратными значениям, которые я сейчас не помню точно . Но их можно посмотреть в спецификации и поэкспериментировать. Например, секции моего любимого FAR'а физически выравнены на 0х1000, а не на 0х200. Смотря что считать "реальным" адресом. Если есть физическое смещение в файле, то из него надо вычесть физический адрес секции (получишь смещение адреса в секции) и сложить с виртуальным адресом секции и базовым адресом загрузки. Получишь виртуальный адрес смещения. Физический и вирутальный адреса секции берутся из ее заголовка.