Vitaliy Margolen wrote:
app1.exe: GetProcAddress(mKernel32, "LoadLibraryA") returns 0x404FCBCC app2.exe: GetProcAddress(mKernel32, "LoadLibraryA") returns 0x404FFBCC
Is there are any reason why this is happening? Any ways to fix this?
Under Windows 98, you will always get the same address for the same export from a dll, however that's not garanteed under Windows NT (or Wine).
The problem is that mmap does not garantee that any specific area of memory will be available, so we can't always load a library at the same address.
You could "fix" it for a specific dll by reserving a memory area using the wine-preloader, but that would be a hack.
Unfortunately there are some programs that depend on address returned from GetProcAddress being the same in parent and child processes.
Which program depends upon that behaviour? It's possible that some old Windows 98 copy protections schemes depend upon it, but they should work if you change the version to win2k.
Mike