Systems and methods are provided for pre-processing original and new
versions of files as part of difference file generation between the
original and new file versions, for example byte-level file differencing.
Software/executable changes between file versions include primary
changes/logical changes, which are defined to be the source code changes,
and secondary changes. The secondary changes generally result from the
primary changes and are generated by the software compiler/linker
utilities. The secondary changes include address changes, pointer target
address changes, and changes in address offsets. The pre-processing
systems and methods provided use approximation rules between file
versions to remove/reduce the secondary changes and encode information
relating to the removal of these changes in information of the
corresponding difference file.