Всем доброго дня!
Помогите начинающему реверс-инженеру, возникла необходимость у определённой проги подправить разрешения.
Дело в том что разрабы обновили свою прогу на плеймаркете, до обновления всё было хорошо а после обновления произошло вот что: недалекие разрабы решили что некоторые проги, которые уже как давно есть на плеймаркете и одобрены и ничего плохого в них нет, являются опасным ПО и при их наличии на телефоне эта прога после нехочет запускаться и приводит список ПО которое с телефона нужно удалить. Удалять я ничего из того что у меня есть ничего не собираюсь, всё нужно, и сама эта прога тоже нужна.
Хорошо думаю я, реверс-инжинирингом еще не занимался но уже наслышан он нём, пришла пора им занятся, скачиваю APK, перекидываю его на комп, декомпилирую, открываю AndroidManifest.xml
Вот что вижу в начале:
https://pastebin.com/Xz4PLz9t
Весь его приводить сюда думаю ненужно, все равно весь его тщательно тут изучать никто не станет )))
Так вот строки:
<package android:name="com.xxx.xxx"/>
<package android:name="com.xxx.xxx"/>
<package android:name="com.xxx.xxx"/>
<package android:name="com.xxx.xxx"/>
<package android:name="com.xxx.xxx"/>
<package android:name="com.xxx.xxx"/>
Это как раз как оказалось список ПО с которым эта прога не хочет работать, так вот удалил эти строки:
<queries>
<package android:name="com.xxx.xxx"/>
<package android:name="com.xxx.xxx"/>
<package android:name="com.xxx.xxx"/>
<package android:name="com.xxx.xxx"/>
<package android:name="com.xxx.xxx"/>
<package android:name="com.xxx.xxx"/>
<intent>
<action android:name="android.intent.action.PICK"/>
<data android:mimeType="vnd.android.cursor.dir/phone_v2"/>
</intent>
<intent>
<action android:name="android.intent.action.MAIN"/>
</intent>
<package android:name="com.google.android.apps.maps"/>
</queries>
удалил так же строки с разрешениями:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
<uses-permission android:name="oppo.permission.OPPO_COMPONENT_SAFE"/>
<uses-permission android:name="com.huawei.permission.external_app_settings.USE_COMPONENT"/>
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
Так же простой поиск в папке с декомпилированным APK по всем файлам на наличие содержания в них названий неодобренных прог выявил один из smali файлов в котором эти названия содержаться, примерно в таком виде:
https://pastebin.com/jSt6hmJb
На этом smali не заканчивается но весь его наверно опять же никто изучать тут не станет
В итоге строчки с названиями пакетов заменил на пустые кавычки типа:
const-string v2, "прога1"
const-string v3, "com.прога1"
заменил на
const-string v2, ""
const-string v3, ""
Потом также пробовал менять названия на фейковые, но результат остался тем же
Вообщем в итоге:
Скомпилировал измененный проект, подписал, закинул APK на телефон, предварительно удалил официальный вариант проги очистив весь её кэш, установил измененный APK, и вот что вышло:
Если интернет на телефоне отключен то прога запускается как мне и нужно - ничего "опасного" на телефоне не видит
Если потом, что перед запуском что после, интернет включить - она вдруг обнаруживает "опасное" ПО и выходит, а прога эта сама без интернета работать тоже не будет т.к. там личный кабинет, без интернета в ней нет смысла.
Пробовал и еще больше разрешений из AndroidManifest.xml вырезать - результат либо тот же либо вообще еще хуже - прога просто не может запуститься,
Т.е. такое ощущение что прога связывается с плеймаркетом чтоли, там ведь тоже хранится список установленного ПО на моём гугл аккаунте, или же связывается с сервером разрабов и сравнивает свои имеющиеся разрешения на разрешения в официальном варианте и как то восстанавливает свою правильную работу, подскажите можно ли как то допилить прогу чтобы она и с интернетом правильно как мне надо работала?