Как стать автором
Обновить
10
0
Александр @MadHacker

Пользователь

Отправить сообщение

Хешируем строки на этапе компиляции с помощью annotation

Время на прочтение9 мин
Количество просмотров11K
Недавно я начал разрабатывать приложение под 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";
}

Под катом рассказано, как добиться такого поведения с помощью подручного велосипеда.
Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии8

Информация

В рейтинге
Не участвует
Откуда
Королев, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность