| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Как узнать exe - это Zip SFX или нет? |
| Автор: Elfebet 25.7.2006, 09:45 |
| делаю програмку для работы с zip архивами, и вот мне нужно как-то узнать екзешник это Zip SFX или нет. как это можно узнать? |
| Автор: Sartorius 25.7.2006, 09:50 |
| Так посмотри че у него внутри. Не верю, что бы разработчики не оставляли после себя какую-нить строковую константу. Типа "Copyright Lempel et al." ))) |
| Автор: Romikgy 25.7.2006, 10:03 |
| C адресса 0х7800 имхо нормальный заголовок зипа , хотя могу и ошибатся, по крайней мере PK есть 100% |
| Автор: Snowy 25.7.2006, 10:16 |
| SFX модули могут быть от разных производителей. Определяется очень просто. В конце ZIP файла (любого и sfx и неsfx хоть мегаfx) есть ссылка на таблицу файлов. Таблица файлов находится в конце зипа и также имеет ZIP хедер. После хедера идет ссылка на его начало, и завершается зип двумя нулями. Просто читаем DWORD, начиная с 6-го байта с конца файла. Если значение корректное (т.е. меньше длины файла), читаем 4 байта оттуда. Если в этик 4-х байтах 'PK'#01#02 - это ZIP. |
| Автор: Alexeis 25.7.2006, 10:17 |
| Да вопрос сложный! Я тут пытался удалять ресурсы из SFX, оказывается, что удаление любого из них, даже значка! просводит к тому, что WinRar перестает опозновать свой SFX. Так что тут не все так просто, наверное зашифрована некоторая специальная контрольная сумма - опознователь. |
| Автор: Elfebet 25.7.2006, 10:47 |
| Snowy, большое тебе человеческое спасибо! Поднял бы тебе репутацию, но пока мой статус этого не позволяет. |