@nnGot583
c#, iOS дизассемблирование

Как обойти iOS ASLR используя LLDB?

Привет, недавно начал пользоваться LLDB для отладки IOS приложений, запустил debug server, присоединился к процессу игры, мне надо поставить breakpoint на адресе который я нашел в дизассемблированном коде движка игры.
Нет задачи убирать ASLR, я пробую посчитать адрес:

Вот дамп секций, я узнал в интернете что ASLR можно посчитать с помощью дельта смещения + адреса в дизассемблере.
62e8f71e9bc9d252930025.png

Начало TEXT минус конец PAGEZERO, получается 0x104a60000 - 0x100000000 = 0x4a60000 (делта смещение)

Вот адрес ,к примеру, на котором я хочу установить breakpoint
62e8f89cac0b4518234417.png

Здесь записываю дельту, а потом складываю ее с адресом из дизассемблера
62e8f913c3681761832737.png

Но получается какой-то странный адрес, прочитать его не получилось. Возможно я что-то делаю неправильно, буду рад помощи.
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Начало TEXT минус конец PAGEZERO, получается 0x104a60000 - 0x100000000 = 0x4a60000 (делта смещение)

Ты что-то странное тут посчитал. TEXT у тебя лежит начиная с адреса 0x104a60000, вот этот адрес и надо использовать.

Вот адрес ,к примеру, на котором я хочу установить breakpoint

Тебе ещё надо знать, с какого адреса T начинается TEXT в дизассемблере. Тогда для произвольного адреса A внутри TEXT адрес в отладчике будет A - T + 0x104a60000.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы