Доброго времени суток, мы рассмотрели основные моменты и теперь должны понять как вести себя внутри телефона. Для этого нужно знать: списки установленных приложений, мессенджеров, банков и так далее.
Друг вокруг
Первым делом окинем взором окрестности, напишем простой и незамысловатый код:
packageInfo.packageName – это имя пакета
packageInfo.sourceDir – путь к корневой папке приложения
pm.getLaunchIntentForPackage (packageInfo.packageName) – имя запускаемой Activity, очень важный параметр для инжектов, мы это опишем в дальнейших частях.
Этой информации будет достаточно, чтобы понять какие и где стоят приложения. Если рассмотреть класс packageInfo, там будет больше информации, но она не особо интересна. В реальном коде Tryи JSONException использовать не обязательно.
Собираем информацию о системе
Создаем объект телефонного менеджера.
Возвращает ID устройства, который можно использовать в отстуке, так как это уникальное значение для каждого аппарата, которое нельзя изменить.
Получаем страну устройства
Получаем сотового оператора.
Очень важный параметр, вам придется его часто использовать. Почему? Некоторые фишки работают только для 2.х или 4.х телефонов. И нам придется разграничивать из вручную. Может быть так, что системная функция устарела, или изменила число параметров. В этом случае мы прибегаем к SDK и параметру.
Пример:
Получаем модель устройства, важный параметр, ибо чем сложнее бот, тем больше приходится учитывать специфику разных прошивок.
Параметр иногда возвращает номер телефона, иногда нет. Нужен для идентификации самого абонента. Так же по номеру можно узнавать город и оператора.
Серийный номер сим карты.
Будьте бдительны, последние два параметра указаны для телефонов с 1 сим-картой. Для двух, команды похожие, но это нужно контролировать.
Админ, ты где?
Рассмотрим проверку, есть ли у нас права администратора. Само получение оставим до следующих статей про закрепление.
Приплыли
Это минимальный список параметров, которые мы должны обязательно обработать, чтобы правильно принимать решение в среде чужого телефона. Обычно их включают в отстук и они могут измениться. Поэтому проверяй-те их почаще.
6ая часть: http://vlmi.top/threads/virusy-pod-android-6-monitoring-prilozhenij.2158/
Друг вокруг
Первым делом окинем взором окрестности, напишем простой и незамысловатый код:
Код:
PackageManager pm = cnt.getPackageManager();
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo packageInfo : packages) {
try{
//packageInfo.packageName
//packageInfo.sourceDir
//pm.getLaunchIntentForPackage(packageInfo.packageName)
} catch (JSONException e) {
}
}
packageInfo.sourceDir – путь к корневой папке приложения
pm.getLaunchIntentForPackage (packageInfo.packageName) – имя запускаемой Activity, очень важный параметр для инжектов, мы это опишем в дальнейших частях.
Этой информации будет достаточно, чтобы понять какие и где стоят приложения. Если рассмотреть класс packageInfo, там будет больше информации, но она не особо интересна. В реальном коде Tryи JSONException использовать не обязательно.
Собираем информацию о системе
Создаем объект телефонного менеджера.
Код:
TelephonyManager tm = (TelephonyManager)context.getSystemService(context.TELEPHONY_SERVICE);
Код:
tm.getDeviceId()
Код:
tm.getNetworkCountryIso()
Код:
tm.getSimOperatorName()
Код:
android.os.Build.VERSION.RELEASE
Пример:
Код:
if(Build.VERSION.SDK_INT >= 19) {
//работаем с версией 4.х
}else{
//работаем с версией 2.х
}
Код:
android.os.Build.MODEL
Код:
tm.getLine1Number()
Код:
tm.getSimSerialNumber()
Будьте бдительны, последние два параметра указаны для телефонов с 1 сим-картой. Для двух, команды похожие, но это нужно контролировать.
Админ, ты где?
Рассмотрим проверку, есть ли у нас права администратора. Само получение оставим до следующих статей про закрепление.
Код:
DevicePolicyManager deviceManager = (DevicePolicyManager) context.getSystemService(context.DEVICE_POLICY_SERVICE);
ComponentName componentName = new ComponentName(context, CAdm.class);
if (!deviceManager.isAdminActive(componentName)) {
//нету админа
}else{
//есть админ
}
Приплыли
Это минимальный список параметров, которые мы должны обязательно обработать, чтобы правильно принимать решение в среде чужого телефона. Обычно их включают в отстук и они могут измениться. Поэтому проверяй-те их почаще.
6ая часть: http://vlmi.top/threads/virusy-pod-android-6-monitoring-prilozhenij.2158/
Последнее редактирование: