Какие знания вам нужны, чтобы создать патч для вашей игры или приложения? - PullRequest
3 голосов
/ 26 октября 2008

Меня всегда удивляло, как поставщики программного обеспечения могут поставлять свои приложения или игры, а затем позже предоставляют другой набор исполняемых файлов, которые изменяют поведение предыдущей сборки. Как это сделать? Должно ли исходное приложение и патч придерживаться какого-то правила? Или исправление заползает в исходный исполняемый файл и изменяет информацию о сборке? Требуется ли знание двоичного файла до уровня байтов?

Ответы [ 2 ]

2 голосов
/ 26 октября 2008

Есть два основных метода, которые я видел. Многие программы состоят из нескольких небольших частей, которые динамически загружаются во время выполнения, часто эти файлы просто заменяются более новыми версиями. Поскольку обновления часто затрагивают только относительно небольшое количество этих файлов, патч может быть небольшим подмножеством всего приложения. Другой метод, который я видел в более крупных монолитных приложениях, заключается в том, чтобы фактически изменить исполняемый код с помощью своего рода «двоичного различия». Один из недостатков этого подхода заключается в том, что более трудно поддерживать обновление до новой версии с версии, предшествующей нескольким ревизиям, без необходимости выполнять каждое добавочное обновление.

0 голосов
/ 26 октября 2008

Я подозреваю, что в большинстве случаев "патчи" - это просто некоторые файлы для замены.

Однако можно сравнить два двоичных файла, определить их различия и создать набор команд редактирования, которые будут заменять одну на другую. Например, утилита Unix "diff" может сделать это для текстовых файлов.

...