Android + JSON Защита от декомпиляции? - PullRequest
1 голос
/ 27 мая 2011

Я хочу иметь возможность безопасно отправлять данные из моего приложения Android на мой сервер, используя HTTPS и JSON.

С HTTPS я защищен от сниффинга, но не от декомпиляции, поэтому я также буду использовать Proguard для обфускации.

У меня вопрос о том, что JSON - это простой текстовый метод отправки данных, и опытный декомпилятор сможет определить, что отправлено и получено. Итак, что является лучшим способом отправки этих данных - если я предполагаю, что в какой-то момент кто-то декомпилирует APK или JAR (в зависимости от того, как я запускаю программу).

Я мог бы запутать JSON

"x":{"xx":12345678}

Но опять же я думаю, что это будет только вопросом времени, прежде чем кто-то поймет, что я пытаюсь отправить код времени и т. Д.

Ответы [ 3 ]

1 голос
/ 27 мая 2011

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

1 голос
/ 27 мая 2011

Нет способа предотвратить декомпиляцию. Запутывание затрудняет использование декомпилированных результатов, но выделенная черная шляпа все равно сможет это использовать.

0 голосов
/ 28 мая 2011

Лучшая комбинация, которую я нашел, это DojoToolkit и компилятор закрытия в расширенном режиме.

Закрытие в расширенном режиме делает код JavaScript практически невозможным для обратного инжиниринга, даже после передачичерез украшение.Как только ваш JavaScript-код запутан до неузнаваемости и возможности реинжиниринга, ваш HTML не раскроет большую часть ваших секретов.

Эта ссылка для использования Dojo Toolkit с компилятором Closure в расширенном режиме для мобильных устройствприложения:

http://dojo -toolkit.33424.n3.nabble.com / file / n2636749 / Using_the_Dojo_Toolkit_with_the_Closure_Compiler.pdf? by-user = t

Если вы используетеЗакрывающий компилятор, затем вы можете добавить механизм шифрования, пишущий на JavaScript, а затем зашифровать ваши данные JSON.С запутыванием уровней, обеспечиваемым компилятором Closure, людям будет очень трудно перепроектировать ваш код, чтобы найти ключ, который вы используете для расшифровки.

...