Intereting Posts
Как получить «я» из адресной книги Поведение NSUserDefaults с обновлением приложения Работа в сети с использованием цикла запуска UIKeyboardFrameEndUserInfoKey высота неверна (должна быть меньше 48pt) Как редактировать или вставлять данные ячеек с помощью gdata-objectivec-client? Каков логический порядок методов загрузки UITableViewController? Данный год и месяц, как проверить определенный день существует в этом месяце Как получить динамическое значение текстовых полей в быстрых ios? Как правильно подкласс SKNode, когда нет метода init? «Только приглашение» подразумевает бета-версию? Как горизонтально центрировать выравнивание ярлыка в соответствии со всеми размерами экрана в быстром UITableViewController исчезает после асинхронного запроса Как увеличить два изображения, расположенные рядом друг с другом? Обнаружение лица CoreImage происходит в каждом кадре OpenAL работает только с аудиофайлами формата caff

декомпиляция операторов препроцессора Objective-C

Пожалуйста, простите меня, если это очевидный вопрос или имеются какие-либо ошибки. Я очень новичок в Objective-C и как-то брошен в глубину.

Я изучаю Obfuscation Objective-C. На простой метод этого, который я нашел здесь, – это использовать препроцессор для изменения имен методов для тарабарщины. Мой вопрос заключается в том, может ли декомпилятор распознавать инструкции препроцессора, чтобы он мог декомпилировать исходный код обратно к исходным именам методов. Ниже приведен пример из приведенного выше вопроса:

#ifndef DEBUG #define MyClass aqwe #define myMethod oikl #endif @interface MyClass : NSObject { } - (void)myMethod; 

Возможно ли, когда он не был скомпилирован для отладки, этот код может быть декомпилирован обратно на что-либо иное, кроме

 @interface aqwe : NSObject { } - (void)oikl; 

Вы не могли бы полностью отказаться от этого. Препроцессор запускается до того, как компилятор загрузит свои жирные лапы в код, так что, как если бы вы вручную перешли и заменили все вхождения MyClass на aqwe и т. Д.

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

Вы сэкономите много времени, боли и неприятностей, если вы просто захотите использовать один из существующих существующих обфускаторов, вместо того, чтобы пытаться изобретать колесо.

Взгляните на эту тему, вы найдете много полезной информации для стартера:

https://stackoverflow.com/questions/337134/what-is-the-best-net-obfuscator-on-the-market