kom09
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Господа администраторы, а также все кто по каким-то причинам содержит у себя локальное зеркало обновления... Насколько я понял, никто пока не разломал update.exe от Avira AntiVir Internet Update Manager так чтобы он подходил и для "домашних" продуктов. Посему продолжаю свой предыдущий пост. Для начала небольшое вступление. Как верно подметил VitRom про мой предыдущий патч: Цитата: Приведённый патч в сущности является заменой в теле проги строки 'UPDATER_PATH',0 на 'COMMAPP_DIR_AV',0. | Почему именно так? XML файлы обновлений для Avir'ы содержат несколько "модулей" в кадом из которых содержится список файлов или ссылка на другой XML файл. Например: Код: ... <MODULE NAME="SELFUPDATE"> <DESTINATION value="%INSTALL_DIR%\;OS=ALL"/> <SOURCE value="winwks\en\"/> <FILE> ... </FILE> </MODULE> ... | Самый интересный элемент модуля - DESTINATION. Судя по всему в update.exe жестко зашит список "переменных" которые программа "признает". Например TEMP_DIR, UPDATE_TEMP, INSTALL_DIR, INSTALL_PATH, CURRENT_DIR, UPDATER_PATH, WINDIR, SYSTEMDIR, SYSTEM32DIR, DRIVERSDIR, COMMONAPPDATADIR и возможно некоторые другие. На все прочие программа пропускает. Например стоит заменить в теле программы строку DRIVERSDIR на, например DRIVERSDIS и весь модуль DRV, у которого в DESTINATION содержится эта переменная, скачан не будет. Что интересно, XML файлы профессиональной версии тоже содержат "неправильные" DESTINATION. Как справляется с ситуацией Internet Update Manager - не знаю. Не удивлюсь если есть легальный способ расширить список. В прошлый раз я изменил строку UPDATER_PATH (которая не встречалась в XML файлах) на COMMAPP_DIR_AV, которая была в DESTINATION одной из секций которую пропускал апдейтер. В конце июля появились новые... В этот раз будем препарировать update.exe от Avira AntiVir Internet Update Manager более новой версии. Дата изменения 10 марта 2008 г. 16:23:30 MD5 711981DECFD9ABD5579C6EBFFC3B2148 найти можно в каталогах Код: %ProgramFiles%\Avira\Avira Internet Update Manager\Update | или Код: %ProgramFiles%\Avira\Avira Internet Update Manager Frontend\Update | после установки Avira AntiVir Internet Update Manager, который можно взять отсюда. Для полноценной работы потребуется вся папка Update. Сам Internet Update Manager можно удалить. От старого update.exe отличается: - имеет иконку - пишет лог в UNICODE - проверяет свою целостность при запуске (только сам файл на диске, в память не лезет) - больше не ругается в логе на "destination operating system doesn't match the current one. File ignored.". Просто втихаря пропускает. Хотя количество файлов в модуле после пропуска можно увидеть в строке: Код: Module: COMMAPPDATA_AV Source: winwks\en\ Destination: Files: 0 | Патчим update.exe так: Код: 0002B598: 0F 90 0002B599: 84 90 0002B59A: 7C 90 0002B59B: 01 90 0002B59C: 00 90 0002B59D: 00 90 0003C40F: 05 00 | Первые шесть байт "нейтрализуют" условный переход который пропускает файлы. последний - проверку целостности. Пропатченный update.exe проверялся на обновлениях Avira AntiVir Premium. Скачиваются все файлы. Правда, строго говоря, полностью в алгоритме фильтрации файлов я не разобрался. В частности - где вычисляется значение по которому срабатывает тот самый условный переход. Так что, в будущем опять возможны сюрпризы. Но пока, вроде, все работает. Да и новый патч теперь качественно отличается от предыдущего. Тех кто не знает что с update.exe делать дальше отсылаю к посту Con, своему предыдущему посту и конечно, "Созданию локального зеркала" от VitRom. Надеюсь кто-нибудь проверит на версии Personal и Security Suite. P.S. И еще небольшой совет по локальному зеркалу для платных версий. В этой ветке пока вроде не было... Если на локальном зеркале в папке upd создать папку с именем license в которую положить файл с ключем HBEDV.KEY, то программа обновления (уже на самих клиентах которые обновляются с локального зеркала) при истечении срока действия старого ключа сама обновит его на новый из папки license. Проверено на Avira AntiVir Premium. |