Как могут быть зашифрованы целевые классы C - PullRequest
1 голос
/ 22 января 2011

Я хотел бы зашифровать несколько моих классов obj c в моей игре для iphone, которые обрабатывают данные openfeint, и классы, которые обрабатывают оценки.

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

Как это сделать, каковы хорошие методы защиты этих данных и отговаривать некоторых от попыток подделки данных?

Спасибо

Ответы [ 2 ]

2 голосов
/ 22 января 2011

Чтобы действительно зашифровать скомпилированный код, вероятно, больше проблем, чем оно того стоит. Вы должны изолировать код, который будет расшифрован в динамическую библиотеку, и загрузить библиотеку вручную после дешифрования в памяти. Динамические библиотеки и другие методы, которые вы можете использовать для изменения кода во время выполнения, не одобрены Apple при использовании с iOS.

С Objective-C вы по существу отправляете со встроенными в ваш код заголовками. Это значительно облегчает копание в вашем приложении. Все, что вы можете сделать в C, где символы могут быть удалены, будет немного сложнее для чтения. Вы также можете использовать #define, чтобы немного запутать имена ваших классов и методов. Это далеко не шифрование, но его гораздо проще реализовать и меньше вероятность появления дурацких ошибок.

#define MyNicelyNamedClass somegarblegarble
#define myNicelyNamedMethod othergarblegarble

@interface MyNicelyNamedClass

-(id) myNicelyNamedMethod;

@end

Это относительно безболезненный способ для разработчика сделать свой код Objective-C менее очевидным для других. Это примерно так же эффективно, как и запутывание в javascript, то есть это еще одно маленькое препятствие, которое отговорит многих случайных злоумышленников.

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

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

Классы шифрования страдают от проблемы «доставки замка с ключом», которая есть у любой DRM или подобной системы безопасности.

То, что вы ищете, - это самоизменяющийся код, где код загружается и дешифруется позже.приложением или присутствует в виде машинного кода в двоичном файле и модифицируется во время выполнения ключом, имеющимся в приложении.

Обратите внимание, что вы, вероятно, создадите очень тонкие и интересные ошибки, и ваш метод будет обойден(это может занять у кого-то, может быть, дополнительный день).

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