Разработка iOS Jailbroken: как сбрасывать вызовы методов

Я довольно новичок в разработке для iOS-устройств с джейлбрейком. Из того, что я читаю, я понимаю, что для того, чтобы делать все классные вещи, которые вы не можете делать на не-jailbroken телефонах, вам нужно подключиться к заданному классу и переопределить некоторые его поведение. Поскольку нет документации о том, как разработчик отслеживает, в каком классе он должен именно подключиться?

Я предполагаю, что, например, если бы я хотел, чтобы приложение реагировало на какое-либо событие, такое как загрузка телефона, позвоните в трубку или щелкнув по значку, я бы вручную сгенерировал данное событие и посмотрел, какие вызовы были сделаны. Это правильный способ отслеживать, где вы должны подключить свой код, и если да, то как это делается.
Примечание. Меня не интересуют именно те события, о которых говорилось выше. Меня больше интересует подход в целом.

0
добавлено
Просмотры: 2
nl ja de

1 ответы

Существует несколько подходов:

  • Демонтировать исполняемые файлы

Вы можете дизассемблировать двоичные или просто классы дампа с чем-то вроде класса-дампа. Итак, вы можете увидеть всю иерархию классов.

  • Найти сбрасываемые классы

Большинство основных подсистем iOS уже были разобраны кем-то. Вы можете найти немало полезных вещей.

В качестве примера. Поиск Google «Springboard headers» получил это

  • Классы дампа во время выполнения.

Look at this question for explanation: List selectors forobjective-cobject

1
добавлено
нормально, это кажется хорошей идеей, чтобы сбрасывать селектор, на который реагирует объект. Как вы удаляете классы и объекты во время выполнения. Могу ли я сбросить все вызовы/объекты селектора во время выполнения и оттуда назад? Если да, то как это сделать?
добавлено автор gosho_ot_pochivka, источник
спасибо, я скоро получаю свое взломанное устройство, так что это должна быть достойная отправная точка. Я буду держать поток открытым в течение некоторого времени, чтобы, возможно, расширить его, как только я получу шанс проверить это.
добавлено автор gosho_ot_pochivka, источник
Я не думаю, что вы можете сбросить список всех классов/объектов во время выполнения (по крайней мере, я не видел ничего подобного). Я видел только, как сбрасывать селектора для объекта или класса (который описан в ссылке выбора селектора в ответе)
добавлено автор Victor Ronin, источник
Я считаю, что вы можете сбросить все классы для NSBundle во время выполнения. Посмотрите на эту ссылку: cocoabuilder.com/архив/какао/& hellip;
добавлено автор Victor Ronin, источник