Распаковываю программу, запакованную хасп-конвертом в XP, восстанавливаю таблицу импорта, всё ок. Но на 98 не запускается (оригинал работает). Делаю то же самое в 98 и наблюдаю в Олли, что в оригинальной IAT постоянно меняются базовые адреса функций. Я явно недопонимаю какого-то механизма работы с IAT в 98м. Объясните, плз, что делать.
ты не весь импорт восстановил , у меян такое тоже было поэтому в xp адрес той функции ( невосстановленной ) остался тот же что и в дампе и она себе спокойно работает в win98 некоторые из dll могут иметь одинаковые (или просто другие по сравнению с xp)imagebase поэтому винда их при загрузке релоцирует и соответственно импорты меняются . а невосстановленный импорт остаётся тот же , так как винда его н е видит и не перенастраивает вот он и вылетает
Аналогичная ситуация. Дошел до OEP /КОМПАС-3D V6 Plus/ программа защищена HASP. Труда не составило так как есть эмулятор. Сделал дамп. Восстанавливию импорт - одна функция неизвестна /00493707 jmp short 00493708/. Нахожу адрес откуда вызывается. Остановка на 00493707 происходит, если сделать мемори брекпоинт на секцию .protect. (Запускаю /КОМПАС-3D LT V6 Plus/ - это таже программа, но с некоторыми ограничениями, хаспом не защищена. Там по этому адресу вызывается функция GetProcAddress.) В ImpRec неизвестную функцию обозначаю GetProcAddress. Запускаю дамп - работает. Под win98 Win2000 не работает. Как полностью восстановить импорт?