lacredin: Ну тогда полностью защитить - невозможно. Можете только увеличить количество человекочасов, которые потребуются для этого, чтобы это стало нерентабельно.
Так как с андроида можно вытащить всё что уодно
dom1n1k: просто я проверил именно последнюю версию данного приложения и там выдается детект на давно известную адварь, вот и удивился, что ничего у вас не нашло.
Нет, при удалении приложения - все логи тоже удаляются.
mitaichik: Вы случаем не про РЖД сервис говорите? (читал недавно статью на хабре достаточно обширную)
Если вы будете пушить обновления напрямую со своего сервера через GCM, к примеру, то уязвимость маловероятна. Тут скорее проблема в нарушении правил и возможном недоверии к вам со стороны АВ вендоров.
В принципе, вы можете попробовать хранить какие-то критичные части апи адресов и переменных в БД или еще где-нибудь на устройстве и обновлять их при смене, но это не факт, что поможет, так как не знаю ваших нюансов.
Macbet:
из совсем базового:
- если ваше приложение работает с смс - у него должен-быть макс инт приоритет на получение смс, иначе их могут перехватить до него
- лучше добавить детект на рутованность устройства и сразу предупреждать пользователя, что он, возможно скомпроментирован (будь я параноиком я бы еще и удалял свое приложение в таком случае, чтобы обезопасить от атаки, или тер бы все ключи сессии)
- хранить ключ хотя-бы под примитивным юзерским пин-кодом (чтобы пришлось поиспользовать брут взломщикам на телефоне, что даст немного времени) либо в аккаунт менеджере либо в sqlcipher.
- также, если согласуется с парадигмой - можно просить девайс админа и детектить запуски каких-либо активити и форм поверх вашего приложения
это так, что пришло в голову, если интересует что-то совсем специфическое, то может мне написать в вк (аккаунт с таким же ником), либо на почту purlats.i@gmail.com
Macbet: я обычно это делаю методом декомплиирования его в исходный код и нахождением слабых мест. Разбираю алгоритмы шифровки апи ключей, где они хранятся, как, как потверждаются.
Остальные векторы атаки, чаще всего, направлены через соц инженерию (фишинг поверх вашего приложения) либо просто напросто имитацию отправки смс и нажатии кнопок при выключенном экране с помощью shell скрипта.
Илья Павловский: ну в открытую, понятное дело, не хранить, минимально зашифровать.
Если захотят достать - достанут.
Если бы вам нужно было не оффлайновое, то можно было бы вынести всю работу через ваш сервер и только на нем проводить работу с ключём.
На телефоне вы гарантировано ничего не спрячете, могу в ЛС подкинуть пару советов как это спрятать получше и увеличить время расшифровки в пару раз, но это все равно можно будет достать.
Илья Павловский: ставится fiddler + пропускается траффик через ПК и всё легко снифается )
Дешифровка спрятанных строк в коде занимает не так много времени, находится метод, который дергается для дешифровки и производится его отладка в ИДЕ.
Зашифроанный файл тоже не панацея, займет на 5 минут дольше времени.
Даже динамическая подгрузка памяти в код не поможет) и смена PID процесса и убивание его при использовании отладчика gdb.
Если интересна эта тема, то могу долго про это говорить :-D
Denis Zagayevskiy: Я и говорю, что это тоже не поможет, всё можно подменить\дешифровать и так далее...
Весь трафик элементарно снифается доступными утилитами.
jetrays: как воровать у них серверную структуру - не подскажу ) это наказуемо
У вас есть несколько путей:
- Полностью декомпилировать приложения, разобраться, как оно взаимодействует с сервером. Перевести все тексты, беря их из игры в виде скриншотов. Затем написать или локальный клиент или свой сервер. Трудоемко и очень долго
- Попробовать взломать их, украсть архитектуру, переделать на русский. Сложно, наказуемо.
- Связаться с компанией и предложить им свои услуги, безвозмездно, в качестве переводчика
jetrays: тут проблема, все тексты берутся с сервера и не сохраняются локально на устройстве (проверил на эмуляторе), так что выдернуть тексты и локализовать не получится, нужно тогда воровать у них сервер и делать идентичный )
Так как с андроида можно вытащить всё что уодно