[ld][x64/x32] LD_PRELOAD - инъекция
Есть одна игрушка - Rune Halls of Valhallа. Сорцы закрыты, хедеры открыты. В линуксовой версии один из пакетов разработчики переделали и при соединении с любым сервером его md5-сумма не соответствует ожидаемой. Нужную чексумму я знаю, а по хидерам приблизительно догадываюсь куда пристроить хак, чтобы слать фейковую нужную сумму для конкретного пакета. Теперь я пытаюсь этот хак как-нибудь через прелоад пристроить, но ничего не выходит:
$ LD_PRELOAD=/usr/lib/core-injection.so ./rune
ERROR: ld.so: object '/usr/lib/core-injection.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object '/usr/lib/core-injection.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object '/usr/lib/core-injection.so' from LD_PRELOAD cannot be preloaded: ignored.
Loading: Package Engine
Loading: Package Core
Unreal engine initialized
...
$ gcc -std=c99 -Wall -Werror -m32 -O0 -fpic -shared -ldl -o core-injection.so core-injection.c
$ sudo ldd core-injection.so
[sudo] password for evalquote:
linux-gate.so.1 => (0xf775c000)
libdl.so.2 => /lib32/libdl.so.2 (0xf772d000)
libc.so.6 => /lib32/libc.so.6 (0xf75d3000)
/lib/ld-linux.so.2 (0xf775d000)