Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.26;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.049 c
9-1117003410
GR
2005-05-25 10:43
2006.02.26
Как на счет СТЕРЕО-ИГРУХИ?


15-1139065314
PARUS
2006-02-04 18:01
2006.02.26
Экран в рисунок


2-1138998981
igorioha
2006-02-03 23:36
2006.02.26
dataType:tFieldType


15-1138909912
VseHotjatIJaHo4u
2006-02-02 22:51
2006.02.26
Вождение машины


15-1139253380
Gero
2006-02-06 22:16
2006.02.26
Проверка соответстивия пароля запароленному zip-файлу