Регион RW на 64-битном ядре Linux Android - перезаписать указатель системного вызова моим в пользовательском пространстве - PullRequest
0 голосов
/ 31 октября 2019

Правильно ли, что только 0xffffffc000800000 будет RW на 64-битном ядре? Я хочу сделать что-то сумасшедшее ... переписать указатель на системный вызов, чтобы выполнить мой код из Userland в Kernelspace (чтобы избежать RKP = Защита ядра в реальном времени, например, Samsung KNOX) - https://www.blackhat.com/docs/us-17/thursday/us-17-Shen-Defeating-Samsung-KNOX-With-Zero-Privilege-wp.pdf

Платформа - Android Samsung S7 Edge Kernel3.18

4 Вопросы (все связанные с этим)

1 - это правильно, что только 0xffffffc000800000 будет RW?

2 Есть идеи, почему ptmx_open не в этом диапазоне?

3, если 2 возможно, есть идеи, как перезаписать ptmx_fops-> check_flags () или fsync () и позже вызвать fsync для / dev / ptmx, чтобы вызвать его?

ffffffc00042bddc t pty_unix98_shutdown
ffffffc00042be2c t pty_open
ffffffc00042bed4 t pts_unix98_lookup
ffffffc00042bf24 t pty_resize
ffffffc00042c044 t ptmx_open
ffffffc00042c1c0 t pty_write_room
ffffffc00042c1f8 t pty_close
ffffffc00042c354 t pty_unix98_ioct

4 Anyидеи, как их использовать?

ffffffc0008123b8 t cl_enable_fops_open
ffffffc0008123e4 t mif_margin_fops_open
ffffffc000812410 t g3d_margin_fops_open
ffffffc00081243c t cpu_margin_fops_open
ffffffc000a1fcc8 t adv_max_interval_fops_open
ffffffc000a1fcf4 t adv_min_interval_fops_open
ffffffc000a1fd20 t adv_channel_map_fops_open
ffffffc000a1fd4c t supervision_timeout_fops_open
ffffffc000a1fd78 t conn_latency_fops_open
ffffffc000a1fda4 t conn_max_interval_fops_open
ffffffc000a1fdd0 t conn_min_interval_fops_open
ffffffc000a1fdfc t rpa_timeout_fops_open
ffffffc000a1fe28 t sniff_max_interval_fops_open
ffffffc000a1fe54 t sniff_min_interval_fops_open
ffffffc000a1fe80 t idle_timeout_fops_open
ffffffc000a1feac t auto_accept_delay_fops_open
ffffffc000a1fed8 t voice_setting_fops_open
ffffffc000a1ff00 t conn_info_max_age_fops_open
ffffffc000a1ff2c t conn_info_min_age_fops_open

что мне перезаписать и какой файл устройства это будет (/ dev / *)

Так как на моем устройстве ptmx_fops не выставлен, хотел сделатьэто / найти так:

https://gist.github.com/fi01/5794566 (32-битный пример)

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