Уже давно лежат тезисы для статьи как сделать приложение безопаснее. Но все не могу собраться с мыслями и написать полноценный текст. После последней публикации меня уже несколько раз попросили дать рекомендации, потому закидываю это сюда. Я обязательно в будущем разберу все это более подробнее, но пока так:)
1. Стратегия запутывания (запутать код с кодом на китайском языке к примеру). Это делается с помощью proguard
2. Предотвращение захвата экрана приложения. А еще можно определять всяки впны и прокси типа
System.getProperty("http.proxyHost");
System.getProperty("http.proxyPort");
3. Не позволять приложению работать с Hook
4. Запретить отладку (тут все просто, нужно чтобы процесс отслеживался родительским процессом. то есть если родительский процесс всегда должен отслеживать дочерний процесс. Присоединение процесса происходит единожды, если же нет - то значит кто-то дебажит) ну и debuggable = false конечно же нужно поставить и android.os.Debug.isDebuggerConnected() проверить
5. Проверить порт. По умолчанию ида к примеру юзает один и тот же порт. Так что мы можем посмотреть использование tcp порта устройства
6. TracerPid проверить
7. Защита подписи приложения
8. NDK как интрумент не только повышения производительности, но и улучшения безопасности
Post #51
1.56K