вторник, 5 ноября 2013 г.

[Из песочницы] Хешируем строки на этапе компиляции с помощью annotation @habrahabr

Недавно я начал разрабатывать приложение под Android и передо мной возникла задача защитить его от реверса. Беглый просмотр гугла позволил предположить, что ProGuard, входящий в состав Android Studio, с задачей справится. Результат меня действительно устроил за исключением одной маленькой детали — строки.

Программа обменивается с сервисом информацией с помощью Intent. Ключевой частью которых является строка действия. И если для взаимодействия с системой или другими приложениями строка должна иметь определённый формат, то для обменов внутри приложения достаточно её уникальности. Для удобства рекомендуется составлять данную строку из имени пакета и названия действия. Например:


public final class HandlerConst {
public static final String ACTION_LOGIN = "com.example.app.ACTION_LOGIN";
}




Это удобно для отладки, но сильно снижает качество обсфускации кода. Хочется, чтоб в релизе программы вместо данной строки оказался, например, её MD5 хеш.


public final class HandlerConst {
public static final String ACTION_LOGIN = "7f315954193d1fd99b017081ef8acdc3";
}




Под катом рассказано, как добиться такого поведения с помощью подручного велосипеда.

Читать дальше →



via Хабрахабр / Захабренные / Тематические / Посты http://habrahabr.ru/post/200878/

Комментариев нет:

Отправить комментарий