Допустим мы промапили файл размером 5 кб. в eax - адрес образа cmp [eax],'ZM' jnz no_pe mov esi,[eax+3ch] cmp [esi],'EP' а теперь представим ситуацию: у нас программа у которой первые символы mz а по смещению 3сh допустим 10000000h в результате esi=10000000h+eax и cmp [esi],'EP' будет обращаться к области памяти к которой нам обращаться нельзя(map образ ведь всего 5 кб) со всеми вытекающими. Нигде не встречал описание такого случая. По моему надо проверять перед cmp [esi],'EP' попадает ли esi в нвш map образ или нет.
Fry Chicken попробуй сравнивать поинтер с базой, если больше, то на выход "По моему надо проверять перед cmp [esi],'EP' попадает ли esi в нвш map образ или нет." - по-моему это и есть сравнение сбазой. IceStudent Поставь SEH и чуть что - "corrupted pe file". Я с SEH ещё не разбирался. Спасибо за совет.