Comments 16
void *provider = *(void**)(app + providerOffset);
Это имхо хуже, чем приватные апи
Я ожидал такого комментария, да. Вы правы конечно.
Что я могу сказать: цель оправдывает средства. Но если вам нужно сделать такое приложение, как, например Charge Alert, которое имеет конкурентное преимущество (отображает реальные данные о батерее), то вам приходится взвешивать риски.
Что я могу сказать: цель оправдывает средства. Но если вам нужно сделать такое приложение, как, например Charge Alert, которое имеет конкурентное преимущество (отображает реальные данные о батерее), то вам приходится взвешивать риски.
И еще, технически, адресная арифметика — это единственный возможный момент вытянуть структуру из Objective-C объекта, насколько мне известно.
См. руководство
См. руководство
Меня одного смущает то что арифметика происходит с указателем типа void? Размер которого неизвестен? Какой компилятор смог такое собрать?
void* arithmetic
На всякий случай исправил на char*
На всякий случай исправил на char*
Хочу написать дополнение к посту, в которой написал бы всю подноготную этих 5 строчек, но пока не хватает времени.
1) Apple Review Team проанализирует программу статическим анализатором (nm/strings/otool/grep), найдут строчки "_statusBar" и ''_currentRawData", и поймут что программист обращаются к приватным переменным. С моим подходом такого не произойдет. В каком-то смысле это обфускация.
2) Хотелось создать интригу, чтобы хабралюди сами попытались разобраться, что происходит.
1) Apple Review Team проанализирует программу статическим анализатором (nm/strings/otool/grep), найдут строчки "_statusBar" и ''_currentRawData", и поймут что программист обращаются к приватным переменным. С моим подходом такого не произойдет. В каком-то смысле это обфускация.
2) Хотелось создать интригу, чтобы хабралюди сами попытались разобраться, что происходит.
Т.е. это нестандартная особенность GCC. Буду знать. Но все же лучше пользоваться конкретными типами.
Спасибо что исправили.
Спасибо что исправили.
Вы правы, разве что я использовал class-dump-z и в большей мере сам рантайм iOS.
Sign up to leave a comment.
Ещё один способ получить нестандартные данные в iOS