kraeved
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору greeple Патчи для файлов можно разделить на две категории. Статические. Их создают, сравнивая оригинальные и изменённые файлы программы с помощью генераторов вроде Courgette, Hdiffz, JojoDiff, Xdelta, Zstandard. Такие патчи, помимо инструкции заменить «елку на ёлку», содержат координаты деревьев в лесу, что позволяет не тратить силы на поиски, а сразу идти куда нужно. Это особенно ценят при распространении обновлений в больших проектах. Скажем, у нас есть игра весом 20 ГБ, а исправление ошибок весит 20 МБ, и чем перекачивать игру, мы берём и применяем патч. Применять патчи Xdelta можно прямо в браузере: * Откройте https://kotcrab.github.io/xdelta-wasm/ * Добавьте в первую строку оригинальный opera_browser.dll из вашего сообщения * Добавьте во вторую строку статический патч opera.xdelta3 из моего архива (весит менее 5 КБ) * Нажмите Apply patch и почти мигом получите файл один в один как после SFK, в чём можно убедиться, сравнив контрольные суммы файлов Динамические. Стоит разработчику добавить хотя бы иконки, как меняется вес файла, сдвигается расположение нужных нам функций. Скажем, проверка регистрации может уехать в начало или в конец. Поэтому мы не идём к елкам напрямую, а ищем их в лесу. Генераторы такого рода, как и сами динамические патчи, скорее встретишь в Варезнике. Поделка Капюшона относится ко второй категории. Только вместо использования генератора, который создал бы небольшой .exe, мы имеем батник, использующий утилиту SFK для разнообразной работы с файлами, в т.ч. для поиска и замены в шестнадцатеричном (hex) режиме. Если бы мы шли дорогой статического патча, то всякий раз, как выходили бы новые версии Оперы и Вивальди, пришлось бы менять файлы, сравнивать их с оригиналами, а потом публиковать тут новые патчи. С динамическим патчем достаточно сказать: «Патч из шапки по-прежнему работает». | Всего записей: 1000 | Зарегистр. 01-03-2003 | Отправлено: 00:35 08-02-2024 | Исправлено: kraeved, 17:27 08-02-2024 |
|