I need to execute a compiled program which hardcodes various filesystem paths, with different values for those paths. For practical reasons, adjusting the source code of the program and recompiling it is not an option. Additionally, is is not acceptable to replace the hardcoded files with symlinks, or change the hardcoded files in any other way.
I can only think of two solutions: LD_PRELOAD hooks and patching the binary. The former seems easier and more reliable. Is there any better solution, or perhaps some existing software aiming to solve this problem?
P.S. I am aware I'm speaking of horrible hacks. The hardcoded software in question is widely distributed on Linux distributions, but it appears completely unmaintained, and I don't see any chance of getting a patch in, let alone having it hit distros, in the time I find acceptable.