Как стать автором
Обновить

Комментарии 16

void *provider = *(void**)(app + providerOffset);

Это имхо хуже, чем приватные апи
Я ожидал такого комментария, да. Вы правы конечно.
Что я могу сказать: цель оправдывает средства. Но если вам нужно сделать такое приложение, как, например Charge Alert, которое имеет конкурентное преимущество (отображает реальные данные о батерее), то вам приходится взвешивать риски.
И еще, технически, адресная арифметика — это единственный возможный момент вытянуть структуру из Objective-C объекта, насколько мне известно.

См. руководство
НЛО прилетело и опубликовало эту надпись здесь
Всё так и есть :)
Оба «магических числа» (52 и 116) получены при помощи ivar_getOffset.

Позже напишу почему.
Меня одного смущает то что арифметика происходит с указателем типа void? Размер которого неизвестен? Какой компилятор смог такое собрать?
void* arithmetic
На всякий случай исправил на char*
НЛО прилетело и опубликовало эту надпись здесь
Хочу написать дополнение к посту, в которой написал бы всю подноготную этих 5 строчек, но пока не хватает времени.

1) Apple Review Team проанализирует программу статическим анализатором (nm/strings/otool/grep), найдут строчки "_statusBar" и ''_currentRawData", и поймут что программист обращаются к приватным переменным. С моим подходом такого не произойдет. В каком-то смысле это обфускация.
2) Хотелось создать интригу, чтобы хабралюди сами попытались разобраться, что происходит.
можно разбить строку "_statusBar" на несколько строк, а потом собрать вместе
Т.е. это нестандартная особенность GCC. Буду знать. Но все же лучше пользоваться конкретными типами.
Спасибо что исправили.
НЛО прилетело и опубликовало эту надпись здесь
Вы правы, разве что я использовал class-dump-z и в большей мере сам рантайм iOS.
НЛО прилетело и опубликовало эту надпись здесь
ну использование приватных API довольно элементарно обнаруживается поиском в бинарниках строк-селекторов этих приватных методов.
А как Вы такое обнаружите без реверс-инжиниринга приложения?
какой-то добрый разработчик может настучать на вас в эпл и приложение уберут с продаж.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории