Я немного неверно изложил суть kxploit'а в шапке.
1-ое что мы должны иметь это возможность поставить любую дрянь в памяти ядра (получить контроль над инструкцией sw (хотя бы вторым аргументом) внутри функции с k-правами).
2-ое это поставить её вот вместо этого (lui $a1, 0x8801 - это взято из функции sceKernelPowerLock):
lui $a1, 0x8801 # вот это ОБЯЗАТЕЛЬНО перетереть какойнибудь хренью, но не этой
lw $v1, 16632($a1) # тут мы загружаем адрес нашего кода, поэтому можно заметить что от 2-го аргумента
# функции sceKernelPowerLock отнимаем 16632 (0x40F8) ну или стоящее там значение.
addiu $sp, $sp, -16
sw $ra, 0($sp)
bnez $v1, 0x8800CBDC # переходим в место с меткой (!!!)
move $v0, $zr
lw $ra, 0($sp)
jr $ra
addiu $sp, $sp, 16
lw $v0, 16($v1) # !!! тут грузим загруженый адрес нашего кода (вот почему отнимаем 16 (0x10) - смотрим любой kxploit)
jalr $v0 # ну и прыгаем на шеллкод
nop
Блин, ребята. Давайте хоть какую-то движуху, а то мне одному ломать скучно. Кому я это всё говорю?! Самое сложное тут - это найти функцию, которая будет иметь контроль над sw, а это не так сложно. Это можно сказать самое главное.
Yoti, давай хоть ты подсуетись. Если чё не понятно, вы спрашуйте!