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

StackOverflow https://stackoverflow.com/questions/237331

  •  04-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top