LINUX.ORG.RU

[ld][x64/x32] LD_PRELOAD - инъекция

 


0

1

Есть одна игрушка - 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
...
Ось - Ubuntu Lucid x64, а игрушка - х32. Либу для инжекта компилировал так:
$ gcc -std=c99 -Wall -Werror -m32 -O0 -fpic -shared -ldl -o core-injection.so core-injection.c
Вывод ldd:
$ 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)
Очень хочу научиться правильно хакать через прелоад. Помогите пожалуйста! :)



Последнее исправление: evalquote (всего исправлений: 1)

Помочь не могу, но подозреваю, что код хака понадобится тоже. Предлагаю выложить на любой текстообменник

ZenitharChampion ★★★★★
()
Ответ на: комментарий от ZenitharChampion

Проблема решена. Оказалось совсем мелочь - я думал, что ld_preload можно указывать таким образом для скрипта, запускающего бинарник, а оказалось, что нельзя. Перенёс его в сам скрипт и теперь работает.

evalquote
() автор топика
Ответ на: комментарий от evalquote

Если есть время и желание - напиши в Jabber (в профиле), а то очень интерено

ZenitharChampion ★★★★★
()
Ответ на: комментарий от Led

судя по регулярным вопросам подобного рода от тебя возникает мнение, что ты тупой.

anonymous
()
Ответ на: комментарий от Led

> что такое x64 и x32?

x64 «придумала» Sun, а вернее маркетологи Sun. x64 выглядит круче, чем какое-то x86-64. Так что все претензии к преемникам. x32 появилось как калька с x64, Sun в этом не виновата.

Пруф: http://blogs.oracle.com/tpm/entry/solaris_10_on_x64_processors2

Учи матчасть.

i-rinat ★★★★★
()
Ответ на: комментарий от Led

> При чём тут Sun?

Sun при Oracle.

По существу - ты увидел незнакомый термин и решил подколоть ТС, задав вопрос «что такое x64 и x32?», а я привёл пруф того, что ТС не выдумывал термины, а взял уже существующие, таким образом показав, что твоя подколка не имеет оснований.

Второй вариант, который предположил анонимус (о том, что ты действительно не знаешь о режимах работы x86-64 процессоров), я предпочитаю не рассматривать.

i-rinat ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.