Obj C и защита класса дампа - PullRequest
3 голосов
/ 05 января 2011

Я понимаю, что легко взломать исполняемый файл Mach-O, я просто хочу простую защиту от инструмента "class-dump". Существует ли какой-либо инструмент или плагин XCode, который может изменить все имена классов и функции классов на что-то не очень удобочитаемое (например, случайную комбинацию символов и чисел)?

Честно говоря, это все, что мне нужно.

Ответы [ 4 ]

6 голосов
/ 05 января 2011

Я написал немного об этом в этом сообщении в блоге , но подведу итог: вы можете избежать появления методов в class-dump, регистрируя их во время выполнения или просто сохраняя их как функции.

Если действительно все , которое вы хотите сделать, это переименовать классы / методы, вы можете использовать tops инструмент командной строки или функцию рефакторинга Xcode.

1 голос
/ 05 января 2011

Вы действительно , вероятно, не хотите беспокоиться об этом. Запутывание не помешает решительному хакеру взломать действительно ценный алгоритм. Обычные пользователи не будут беспокоиться, поэтому вы, вероятно, делаете большую работу за небольшую добавленную стоимость. Как отмечает @mvds в комментарии к вашему вопросу, соединения NIB предадут цель многих классов, и решительный хакер может использовать dtrace / Instruments.app для отслеживания сообщений, чтобы раскрыть большую часть остального, что им нужно.

Любой действительно ценный IP должен быть защищен чем-то более сильным, чем запутывание, и, вероятно, должен быть написан на C / C ++, а также иметь законный патент и защиту авторских прав (и обеспечение соблюдения).

1 голос
/ 05 января 2011

Вы ищете Обфускаторы Objective C ?

На этой странице обсуждается запутывание какао .

0 голосов
/ 05 января 2011

Если вы этого еще не сделали, вы можете, по крайней мере, удалить свой исполняемый файл с определенными ненужными символами, включив «Постобработка развертывания» и «Разбить связанный продукт» в настройке сборки XCode.(Или просто используйте инструмент strip напрямую.) Лучше, чем ничего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...