Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];

Вниз

Создание патчей.   Найти похожие ветки 

 
Unsigned ©   (2006-01-27 00:21) [0]

Здравствуйте. Разрабатываем софт, основная уeдитория которого – модемщики. Встал вопрос о создании обновлений. В общем как организовать создание патча? Под патчем подразумевается изменение багов и\или добавление функциональности проге а не изменение каких-то собственных ресурсов.


 
Eraser ©   (2006-01-27 00:49) [1]


> Unsigned ©   (27.01.06 00:21)

есть спец. утилиты для создания патче, от InqSoft неплохой патчер есть, правда это больше для кряка предназначено, но можно и для мирных целей приспособить!


 
Unsigned ©   (2006-01-27 00:54) [2]


> есть спец. утилиты для создания патче, от InqSoft неплохой
> патчер есть,

Хм,спасибо!Надо будет подумать над этим! А есть идеи как такие проги устроены?


 
Eraser ©   (2006-01-27 01:17) [3]


> Unsigned ©   (27.01.06 00:54) [2]


> А есть идеи как такие проги устроены?

Ну та прога нечто большее чем просто патчер.

А патчер просто сравнивает 2 файла, различия заности в файл.
<позиция в файле><размер данных><данные> и т.д.


 
PAVIA ©   (2006-01-27 01:22) [4]

Такие проги устроены тах определенные байты биты заминяют на другии. То место которое надо исправить. Допустим процедура с ошибкой. Ты должен обязательно создать процедуры такойже длины или около.В файле есть пустоты для выравнивания. Вот и заменяешь эту процедуру.
Еще нужно следить за контрольной суммой, если такая имеется.
А если ты хочешь добавления. То тут только замена одного файла на другой. Для этих целий программу драблят на модули чтобы меньше заменять.

Конечно ты можешь создать еще одну секцию кода в файле, но что это тебе даст?


 
Unsigned ©   (2006-01-27 01:25) [5]

2 PAVIA, Eraser.
То есть исходный файл и пропатченый должны быть одного размера? И потом просто сравниваю побайтово 2 файла и пишу в 3 по каким адресам менять байты?


 
Eraser ©   (2006-01-27 01:42) [6]


> Unsigned ©   (27.01.06 01:25) [5]

нет, патчер действует не совсем так, как описал PAVIA ©   (27.01.06 01:22) [4].
Конечно патчер патчеру рознь, но по-моему тварение от InqSoft более интеллектуально работает, т.е. умеет определять, именно различия, короче учитывает несколько ньюансов, что делает патчи более компактынми.
Описывать эти ньюансы лень сейчас, уж извините :) и в двух словах не сформулируешь )


 
PAVIA ©   (2006-01-27 01:53) [7]

Дело не в том чтобы файлы были одного размера. А в том что если ты создашь двай файла и у тебя неожиданно пропадет байт из середины то заменять дебе придеться пол файла. А ведь тогда адресса процедур изменется поэтому и еще пол файла(гораздо меньше но во многих местах) переделовать.
Так что тут выхода два.
Первый Ты добавляешь в конец файла новую процедуру но всеравно меныть адресса вызовов, но это уже меньше.
Второй вариант просто перезапичываешь целиком файл.


 
PAVIA ©   (2006-01-27 02:04) [8]

Есть третий вариант Специально сохроняешь адресса процедур. И места от куда их вызывают. Тогда в патчере можно указать изменения в коректной процедуре, а патчер сам вычислит нужные изминения.


 
Германн ©   (2006-01-27 02:19) [9]


> Unsigned ©   (27.01.06 00:21)  
>
> Здравствуйте. Разрабатываем софт, основная уeдитория которого
> – модемщики. Встал вопрос о создании обновлений. В общем
> как организовать создание патча? Под патчем подразумевается
> изменение багов и\или добавление функциональности проге
> а не изменение каких-то собственных ресурсов.
>


Имхо тут в "винегрет" замешаны две, по идее разные сущности: обновления и патчи. Так вот сначала, имхо, стоит "отделить мух от котлет"! В чём главная суть сабжа? И, имхо, не стОит в очередной раз поминать диал-ап и т.п. Можно любую конкретную задачу решить так, что обновление ПО будет требовать минимальный траффик, имхо. Но в общем случае, на такие вопросы, полностью грамотных ответов нет. По крайней мере пока.


 
Eraser ©   (2006-01-27 15:56) [10]


> PAVIA ©   (27.01.06 01:53) [7]
>
> Дело не в том чтобы файлы были одного размера. А в том что
> если ты создашь двай файла и у тебя неожиданно пропадет
> байт из середины то заменять дебе придеться пол файла. А
> ведь тогда адресса процедур изменется поэтому и еще пол
> файла(гораздо меньше но во многих местах) переделовать.

Примерно это я имел ввиду под ньюансами, которые хороший патчер учитывает, а адреса процедур и т.д патчеру феолетовы, т.к. ему вообще всё равно что патчить.

> и у тебя неожиданно пропадет байт из середины то заменять
> дебе придеться пол файла

хороший патчер определяет, что в середине отсутствует байт и просто прописывает в свой скрипт "удалить 1 байт там-то". "Спрограммировать" такое - не тривиальная задача, выполнимая.

> Германн ©   (27.01.06 02:19) [9]


> Так вот сначала, имхо, стоит "отделить мух от котлет"! В
> чём главная суть сабжа? И, имхо, не стОит в очередной раз
> поминать диал-ап и т.п. Можно любую конкретную задачу решить
> так, что обновление ПО будет требовать минимальный траффик,
>  имхо. Но в общем случае, на такие вопросы, полностью грамотных
> ответов нет.

Я бы сказал что понятие ОБНОВЛЕНИЕ включает в себя понятие ПАТЧ. А разработать грамотную систему обновлений не так-то просто.... согласен.


 
Германн ©   (2006-01-28 02:29) [11]


> Я бы сказал что понятие ОБНОВЛЕНИЕ включает в себя понятие
> ПАТЧ.

А я бы (по умолчанию) так не сказал бы! Имхо по моему видению, задачи патча - изменить некоторое количество байт в файле(ах) без перезаписи оного(ых) в целом!


 
OldNaum ©   (2006-01-28 07:09) [12]

лучший патч-мейкер, имхо, PatchFactory 3.xx, именно 3.хх - у него появился отличный контроль версий / компонентов, да и сделан он на славу. только вот ломанного нормально нигде нету, жаль ;) очень жаль...


 
Yanis ©   (2006-01-28 09:25) [13]

ByteKiller РУЛИТ!



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.034 c
2-1139310245
Tsa
2006-02-07 14:04
2006.02.26
Работа с HDD


1-1138282482
ma5ter
2006-01-26 16:34
2006.02.26
Число записей в диспетчере задач


2-1139777700
Norfolk
2006-02-12 23:55
2006.02.26
Обращиение к глобальным переменным из процедуры


4-1134158169
cerber
2005-12-09 22:56
2006.02.26
EXE как ресурс. Как запустить?


15-1138860793
ANB
2006-02-02 09:13
2006.02.26
Поздравляю себя с рождением вчера (01.02.2006) дочки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский