Pregunta

Siempre he estado desconcertado de cómo los proveedores de software pueden enviar su aplicación o juego, y luego proporcionar un conjunto diferente de ejecutables que cambian los comportamientos de la compilación anterior. ¿Cómo se hace esto? ¿La aplicación original y el parche deben cumplir algún tipo de regla? ¿O el parche se arrastra en el ejecutable original y cambia su información de ensamblaje? ¿Requeriría eso conocimiento del archivo binario al nivel de bytes?

¿Fue útil?

Solución

Hay dos métodos principales que he visto. Muchos programas se componen de una cantidad de partes más pequeñas que se cargan dinámicamente en tiempo de ejecución, a menudo estos archivos simplemente se reemplazan con versiones más nuevas. Como las actualizaciones a menudo solo afectan a un número relativamente pequeño de estos archivos, el parche puede ser un pequeño subconjunto de toda la aplicación. El otro método, que he visto usado con aplicaciones monolíticas más grandes, es realmente cambiar el código ejecutable usando una especie de "diferencia binaria". Una de las desventajas de este enfoque es que es más difícil admitir la actualización a una nueva versión de una versión varias revisiones anteriores sin tener que realizar cada actualización incremental.

Otros consejos

Sospecho que la mayoría de las veces, " parches " son solo algunos archivos de reemplazo.

Sin embargo, es posible comparar dos archivos binarios, determinar sus diferencias y crear un conjunto de comandos de edición que cambiarán uno por el otro. La utilidad Unix " diff " puede hacer esto para archivos de texto, por ejemplo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top