декомпиляция операторов препроцессора 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; 

Solutions Collecting From Web of "декомпиляция операторов препроцессора Objective-C"

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

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

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

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

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