28.11.2006, 23:23
общий
это ответ
Здравствуйте, Кохан Владимир Иванович!
Дело в том, что PE-формат EXE-файла, а именно с ним вы и работаете, ОЧЕНЬ, ОЧЕНЬ и ОЧЕНЬ невероятно и фантастически сложный, имеющий множество нюансов и недокументированных (или плоходокументированных) возможностей. И это не считая того, что loader ОС (в каждой Windows - свой) - вообще не документирован [1,2].
Исходя из этого и личного опыта - написать универсальную выковыривалку ресурсов, работающую в 100% случаев - очень сложно (т.е. причина №1 - любая недоделка распаковщика).
№2 - упаковать ресурсы обратно - задача на несколько порядков сложнее (причина №2 - очередная любая недоделка авторов упаковщика ресурсов - нужна очень высокая квалификация программист(а,ов)).
№3 - существуют защиты от распаковки (не важно, что они защищают - сам протектор или же упаковываемый файл, или и то, и другое) - основаны на тех или иных нюансах или предположениях работы loader‘а винды - т.е. файл запускается, но не распаковывается снаружи.
Отсюда способ борьбы в вашем случае - пользоваться только последними версиями упомянутых программ - в надежде, что авторы поправили существующие недоделки, либо, поменять программы для работы с ресурсами (что маловероятно, т.к. Restorator и ResHacker - самые приличные из тех, что я когда-либо видел).
P.S.
Литература:
1) П.А. Румянцев - Работа с файлами в Win32.
2) Крис Касперски - Техника отладки программ без исходных текстов.