Как использовать трюк `LD_PRELOAD` для перехвата libc func с символом типа" extern __imp_strstr "? - PullRequest
0 голосов
/ 11 ноября 2018

Я знаю, LD_PRELOAD трюк может быть использован для перехвата функций libc.

Возьмите это как пример. Я могу успешно зацепить strstr с LD_PRELOAD.

la $t9, strstr
addiu $s0, $s3, 0x178
mov $a0, $s0
jarl $t9  //strstr
addit $a1, ***

// strst symbol
.extern strstr

Теперь еще один фрагмент кода с небольшой разницей. Тогда та же самая уловка крюка, кажется, не работает. Элемент экспорта функции strstr в libc по-прежнему strstr.

addiu $a0, ***
addiu $a1, ***
jal strstr
nop

strstr:
lui $t7, 0x59
lw $t9, off_58D02C
jr $t9
addiu $t8, $t7, (off_58D02C - 0x590000)

off_58D02C:    .word __imp_strstr

// strst symbol
.extern __imp_strstr

Так что же делать с таким символом, как .extern __imp_strstr? Любой совет будет принят во внимание! Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...