_>В связи с чем у меня возникает вопрос нормально ли то что адресс функции в таблице импорта может встречаться несколько раз ?
Нормально, т.к. строго говоря, одна и та же функция может экспортироваться под разными именами. Я правда, очень сомневаюсь, что такая ситуация имеет место быть в kernel32.dll. Попробуй мой код — только не забудь туда VirtualProtect() вставить где нужно.
_>к примеру у меня находиться адресс функции CreateFileA (да и остальных функций) несколько раз (5-9) в таблице импорта. Причём по разным адрессам само собой. _>328AB350 — при записи сюда программка вылетает, хотя я устанавливаю PAGE_READWRITE (успешно), а было PAGE_READONLY. _>может можно заменять только один адресс ? или же не менять просто последний (хардкодно)
Тут ничего не могу сказать, давно это было и сейчас я предпочитаю сплайсинг. Посмотри статьи по перехвату на RSDN в разделе "Базовые сервисы / Перехват вызовов API" — их там несколько штук и некоторые весьма интересные.