LINUX.ORG.RU

История изменений

Исправление firkax, (текущая версия) :

Переименовывать здесь, казалось бы, нечего.

Как это нечего,

0x13c4b <Canonicalize+15> call 0x13c4c <Canonicalize+16>

тут явно линкер что-то патчит на запуске. Где именно в бинарнике указано, что тут вместо 0xFFFFFFFC надо подставить правильное смещение функции canonicalize() - я не знаю, но где-то должно быть указано.

А, или это дамп уже слинкованного процесса в памяти? Тогда непонятно, там вызов по битому адресу - это не адрес функции canonicalize() ни из glibc ни из libjava. Но в любом случае где-то это указано.

И переименовать можно, думаю, заметно проще - открыть libjava.so в mcedit-е (или другом двоично-безопасном текстовом редакторе), найти там текстовым поиском все вхождения слова canonicalize и, если их расположение не вызывает каких-то подозрений, заменить там какую-нить букву, например на cbnonicalize.

Исправление firkax, :

Переименовывать здесь, казалось бы, нечего.

Как это нечего,

0x13c4b <Canonicalize+15> call 0x13c4c <Canonicalize+16>

тут явно линкер что-то патчит на запуске. Где именно в бинарнике указано, что тут вместо 0xFFFFFFFC надо подставить правильное смещение функции canonicalize() - я не знаю, но где-то должно быть указано.

И переименовать можно, думаю, заметно проще - открыть libjava.so в mcedit-е (или другом двоично-безопасном текстовом редакторе), найти там текстовым поиском все вхождения слова canonicalize и, если их расположение не вызывает каких-то подозрений, заменить там какую-нить букву, например на cbnonicalize.

Исходная версия firkax, :

Переименовывать здесь, казалось бы, нечего.

Как это нечего,

0x13c4b <Canonicalize+15> call 0x13c4c <Canonicalize+16>

тут явно линкер что-то патчит на запуске.

И переименовать можно, думаю, заметно проще - открыть libjava.so в mcedit-е (или другом двоично-безопасном текстовом редакторе), найти там текстовым поиском все вхождения слова canonicalize и, если их расположение не вызывает каких-то подозрений, заменить там какую-нить букву, например на cbnonicalize.