On 16 May 2013, at 16:34, Jonas Maebe wrote:
On 15 May 2013, at 16:31, Alessandro Pignotti wrote:
Packaged with a game, I found a peculiar DLL which has duplicate
blocks in the
relocation table. I mean that the same pages are relocated twice
and this of
course breaks the DLL. I'm not sure about what could be a right way
to support
such (broken) DLLs. A possibility would be to keep track of already
relocated
pages and skip them if needed. Suggestions are welcome.
I've just asked a colleague of mine about this and according to him
it's perfectly legal in Windows to have multiple relocation blocks
for the same section, in which case Windows will also fixup
everything twice. So simply ignoring such relocations is normally
wrong. Which dll from which game is this?
Addendum: he just realised that you may be talking about multiple base
relocation arrays for a single page (arrays that contain the offsets
of the instructions that need fixing up), which would indeed be
strange. Still, it would be interesting to know which dll it is.
Thanks,
Jonas