Objective-C Code Obfuscation - PullRequest
       21

Objective-C Code Obfuscation

12 голосов
/ 13 ноября 2009

Есть ли способ запутать код Objective-C?

Спасибо

Ответы [ 2 ]

5 голосов
/ 12 декабря 2010

Селекторы остаются открытым текстом - otool -o выведет все ваши объекты и методы, которые они определяют. Вы также можете выгружать все внутренние и внешние селекторы, доступные в коде, с помощью следующей строки. Обфускация имен методов и параметров на уровне источника, вероятно, будет проще всего, хотя выполнение этого на уровне объектов будет также запутывать не зависящим от языка образом за счет некоторых манипуляций с таблицами компоновщика.

otool -s __TEXT __objc_methname yourapp.app/executable_file |expand -8 | cut -c17- | sed -n '3,$p' | perl -n -e 'print join("\n",split(/\x00/,scalar reverse (reverse unpack("(a4)*",pack("(H8)*",split(/\s/,$_))))))'|less
3 голосов
/ 13 ноября 2009

Цель c - это прямая надмножество C, поэтому все обычные методы обфускации C работают. Однако если вы хотите работать с какао, у вас возникнет некоторое препятствие, потому что имена методов довольно самодокументированы.

Для ваших собственных методов вы просто должны самостоятельно документировать методы. например,

-(void) doSomethingInnocent:(BOOL)animated withObject:passwords;

когда вы обычно написали бы:

-(void) sendObjectToMyServer:(BOOL)coverupAnimation;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...