Sim app dialog что это за программа

4 способа перенести WhatsApp на другой телефон с полной историей

Как перенести WhatsApp на другой телефон с полной историей

При покупке нового смартфона у пользователей WhatsApp часто возникают проблемы с переносом чатов. Интерфейс программы нельзя назвать интуитивным, но все же несколько способов по сохранению старых диалогов разработчики предусмотрели.

Способы сохранения переписки в WhatsApp

Всем пользователям при первом запуске мессенджера рекомендуется настроить резервное копирование. Эта опция периодически сохраняет все чаты вместе с файлами на пользовательском устройстве или в облаке. Последнее место хранения данных предпочтительнее, т. к. смартфоны и планшеты часто ломаются и из-за этого доступ к данным может быть утрачен навсегда.

Как перенести данные между телефонами

Метод переноса чатов зависит от операционной системы и предпочитаемого пользователем способам работы с файлами. Отправить бэкап можно на облачное хранилище или на внешний носитель (SD-карту).

Отправка мультимарочного сканера: AutoCom CDP+ 1 плата V3.0 PRO через Почту России в Республика Коми

С Android на Android

Большинство пользователей Android предпочитают переносить копии диалогов через Google Диск. Этот способ очень удобный, т. к. не нужно копировать файлы вручную. Новый бэкап автоматически загружается в облако. Для того, чтобы перенести чаты со старого телефона в новый, необходимо:

  1. Авторизоваться в Google-аккаунте.
  2. Войти в WhatsApp и открыть раздел с настройками.
  3. Выбрать вкладку «Чаты».

С Android на Android

С Android на Android - 2

C iPhone на iPhone

На устройствах iOS копирование истории переписки осуществляется через iCloud. Пользователь загружает резервную копию данных из WhatsApp со старого устройства в облачное хранилище, а затем автоматически после авторизации на новом смартфоне информация копируется в мессенджер. Для того, чтобы воспользоваться этим способом, необходимо:

  1. Открыть настройки на старом аппарате.
  2. Перейти в раздел iCloud, тапнув по имени учетной записи.
  3. Активировать iCloud Drive.
  4. В настройках iCloud Drive переместить бегунов напротив WhatsApp во включенное положение.
  5. Вернуться в раздел настроек и открыть вкладку «Основные».
  6. Перейти в ««Хранилище iPhone» и удостовериться, что свободного места хватит для создания резервной копии диалогов.
  7. Открыть WhatsApp и перейти в настройки. Там найти вкладку «Чаты» и в ней перейти в подраздел «Резервная копия».
  8. В открывшемся окне выбрать «Создать копию».
  9. Дождаться завершения процедуры создания бэкапа и его загрузки в облако.
  10. На новом смартфоне авторизоваться в облачном хранилище iCloud в аккаунте, используемом для работы на старом устройстве.
  11. Запустить WhatsApp, ввести данные старой учетной записи.
  12. Согласиться с восстановлением резервной копии данных из облака.

Резервные копии мессенджера создаются с привязкой к номерам. Если у пользователя есть несколько учетных записей, он может загрузить их бэкапы на одно облачное хранилище и затем восстанавливать по очереди.

Удали это приложение ПАРАЗИТ от мобильных операторов. Оно работает в фоне и забивает оперативку.

С Android на iPhone

Официального способа переноса с Андроид на iOS бэкапа из WhatsApp не существует. Но можно воспользоваться программой AppTrans. Ее нужно установить на компьютер. Дальнейший порядок действий:

  1. Запустите AppTrans на ПК.
  2. Подключите Андроид-устройство через USB в режиме отладки.
  3. Подключите iPhone к компьютеру.
  4. Убедитесь, что Андроид-устройство отображается в программе слева, а iOS справа. Если это не так, кликните на кнопку Switch.
  5. Кликните на «Transfer Now» и в открывшемся меню выберите WhatsApp.
  6. Программа предложит создать резервную копию мессенджера на iPhone. Необходимо согласиться.
  7. После создания бэкапа начнется перенос мессенджера из Андроида в Айфон. Когда процедура завершится, на iOS-устройстве будет версия WhatsApp со всеми нужными данными.

С iPhone на Android

Официальный способ доступен только для владельцев смартфонов и планшетов Samsung. Необходимо загрузить на компьютер Samsung SmartSwitch. Дальнейший порядок действий:

  1. Запустите программу на ПК.
  2. Подключите устройство Samsung по USB.
  3. При появлении запроса подключите по кабелю к компьютеру iPhone.
  4. Отсканируйте QR-код на Андроид-устройстве при помощи iPhone.
  5. Тапните «Начать» и дождитесь завершения переноса данных.
  6. Откройте мессенджер. Авторизуйтесь в том же аккаунте, который был использован на iOS.
  7. Кликните на «Импортировать».
  8. Дождитесь завершения процесса.

С Windows Phone на Android

Смартфоны на Windows Phone встречаются довольно редко, но даже на них можно сделать бэкап чатов WhatsApp и перенести на Андроид. Но сделать это намного сложнее, чем в случае с другими ОС. Для того, чтобы скопировать историю переписок, необходимо:

  1. Разблокировать параметры разработчика на Windows Phone в разделе «Настройки» — «Для разработчиков». Активируйте эту функцию.
  2. Загрузите на смартфон и запустите Interop Tools. Предоставьте программе необходимые для стабильной работы разрешения и перейдите к настройкам Interop Unlock. Там нужно активировать Engine Unlock и Interop Unlock.
  3. Создайте резервную копию чатов в мессенджере при помощи программы App Data Manage Tool. Запустите программу, найдите в списке приложений WhatsApp и выберите «Create Backup».
  4. Дождитесь завершения создания копии и перенесите её на Android. Для этого понадобятся 2 программы: File Manager/Explorer и 8 Zip. Их нужно установить перед началом переноса. С помощьюFile Manager/Explorer откройте файл по адресу Device-Backups. Разархивируйте файл Data припомощи 8 ZIP. Найдите там файл messages.db и загрузите его на OneDrive или отправьте на собственную электронную почту.
  5. Установите WhatsApp и WazzapMigrator на Андроид-смартфон. Запустите WazzapMigrator и выберите загруженный с электронной почты или OneDrive файл с бэкапом. После этого запустите мессенджер. Он обнаружен резервную копию на смартфоне и предложит ее восстановить.

Как перенести все данные на компьютер

Напрямую перенести информацию на ПК не получится. Такой опции у WhatsApp не предусмотрено. Но резервную копию данных можно отправить на компьютер. Для этого:

  1. Откройте нужный диалог и кликните в меню (три точки) на строку «Экспорт чата».
  2. Выберите вариант сохранения: с медиафайлами или без них.
  3. Выберите, где сохранить файл с перепиской. Для того, чтобы отправить его на компьютер, выберите вариант «Электронная почта».
Читайте также:
Cm launcher что это за программа и нужна ли она

Источник: www.internet-technologies.ru

Sim App Dialog — что это за программа на Android (Huawei/Honor) и нужна ли она? (com.android.simappdialog)

Приветствую. Обновление прошивки улучшает производительность, добавляет новые функции, настройки, технологии, программы. Однако производитель не всегда дает описание новому функционалу — сегодня речь пойдет об одном новом неизвестном приложении на смартфонах Huawei/Honor.

Sim App Dialog — что это такое?

Системное приложение работы сервисного меню SIM-карты, как правило состоящее из подобных услуг (некоторые могут быть платными):

  1. Узнать информацию о пакете, тарифе.
  2. Узнать информацию о погоде, курс валют.
  3. Сервис знакомств, гороскопов, заказ мелодий/рингтонов.
  4. Прочие услуги, зависит от оператора.

Также теоретически Sim App Dialog может иметь отношение к переключению сим-карт, работе SMS, MMS либо другим функциям, связанным с симкой.

Может находиться в автозагрузке. Название пакета — com.android.simappdialog. По отзывам — появляется после обновления EMUI 9.1 (хуавееская прошивка). Слово simappdialog расшифровывается примерно как сим-карта / программа / диалог (взаимодействие с пользователем, отображение менюшки).

Программа появилась даже у китайских юзеров:

Sim App Dialog — можно ли удалить/отключить?

После удаления и перезагрузки может не работать функционал SIM-карты. Но когда прошивка стоковая, загрузчик заблокирован, и опция отключения при этом присутствует — можно пробовать отключить (видимо отключение предусмотрено производителем). При наличии проблем — все вернуть обратно. При возможности, в целях страховки — лучше сделать бэкап.

  1. Стандартный. Открываете настройки Андроида, переходите в раздел Приложения. Появится список всех установленных программ (сортировка по алфавиту). Найдите необходимое приложение > нажмите по нему > вы увидите кнопку Удалить.
  2. Специальные программы. Можно отключить, заморозить, удалить при помощи спец софта например Titanium Backup, Lucky Patcher. Плюс — софт качественно удаляет/морозит, минус — нужны root-права, желателен опыт.
  3. Использование ADB (Android Debug Bridge). Нужен опыт. Удаление производится с компьютера через специальную команду: pm uninstall -k —user 0 com.android.simappdialog

Один юзер удалил давно — телефон работает в штатном режиме.

Заключение

  1. Sim App Dialog — отображение сервисного/служебного меню оператора. Само меню существует уже давно, было еще во времена кнопочных телефонов.
  2. Удалить/отключить — можно, однако при реальной необходимости. Последствия точно неизвестны, только стоит учесть — приложение системное. Создание бэкапа — рекомендуется.

Источник: virtmachine.ru

SIM-меню: что это такое и можно ли его удалить?

SIM-меню: что это такое и можно ли его удалить?

Обзор HUAWEI nova 10 Pro: король селфи

Приложение SIM-меню, позволяющее подключать различные услуги, для операционной системы Android является уже предустановленным, но морально устаревшим. Что необходимо сделать, чтобы удалить его?

SIM-меню: что это такое и можно ли его удалить?

Приложение «SIM-Меню» на многочисленных Android-смартфонах находится в общем меню Программы (Инструменты). Мы расскажем вам о том, что из себя представляет данное приложение и как вы можете его удалить.

Android: что может SIM-Меню

Приложение SIM-Меню для операционной системы Android является уже предустановленным. Какой контент вы найдете в данном приложении, полностью зависит от вашего поставщика услуг мобильной связи. Этот контент считывается с SIM-карты через приложение.

Как правило, через приложение SIM-Меню можно посмотреть различную информацию, а также заказывать у оператора сотовой связи некоторые платные услуги. В качестве примера таких сервисов можем привести прогноз погоды, новости или услугу будильника. На сегодняшний день это приложение по большей части себя уже изжило.

SIM-меню: что это такое и можно ли его удалить?Удаляем SIM-Меню: вот как это делается

К сожалению, просто так удалить SIM-Toolkit не получится. Тем не менее, при наличии соответствующих прав, удаление этого приложения можно произвести без последствий для смартфона.

  • Для удаления приложения вам потребуются Root-права. После этого вы сможете удалять предустановленные приложения.
  • Опытные пользователи смогут найти SIM-Toolkit в виде файла под названием «stk.apk» в папке «System/Apps». Здесь тоже с помощью Root-доступа можно удалить приложение.

Источник: ichip.ru

Сервис активации Xiaomi SIM — что это за программа и нужна ли она?

Каждый производитель смартфонов предлагает свои приложения и сервисы. Не отстает от модных веяний и китайская фирма Xiaomi. Они предлагают пользователям новый сервис активации СИМ (com.xiaomi.simactivate.service).

com.xiaomi.simactivate.service

Сервис активации Xiaomi SIM выполняет несколько функций, с которыми вполне можно справиться и при помощи личного кабинета оператора сотовой связи. Поэтому необходимость данного приложения достаточно спорна.

Функции сервиса активации СИМ Сяоми

Сервис активации СИМ Сяоми

Сервис активации СИМ Сяоми выполняет следующие функции:

  • Создает резервные копии журнала звонков и СМС в фирменном облаке производителя Mi Cloud. Это полезно, если вы сбрасываете устройство или покупаете новый смартфон той же фирмы. Ничего не будет потеряно.
  • Собирает информацию о владельце, что минимизирует шансы утери или кражи гаджета.
  • Осуществляет полноценный бэкап. Без активации он отключится в фирменном облаке.
  • Посылает бесплатные сообщения на телефоны Сяоми с данным приложением. Вэтом случае активация СИМ-карты выполняется автоматически посредством отправки системного сообщения в другую страну. В некоторых случаях требуется отправить два сообщения.

Ошибка активации СИМ – пути исправления

Не удалось активировать SIM-карту 1

Иногда приложение не может активировать СИМ-карту. У некоторых владельцев смартфонов ошибка возникает единожды, у других – после каждого звонка или перезагрузки телефона. Есть несколько способов решения данной проблемы:

  • Откройте настройки и найдите вкладку «Все приложения». Вверху располагается поле для ввода текста, в который нужно написать слово «SIM». В результате отобразится сервис активации СИМ-карты Сяоми. Выберите его и перейдите в уведомления.
  • Здесь нужно передвинуть ползунок «Показывать уведомления».
  • Также можно снять все флажки в разрешениях и отключить сеть и передачу данных.
Читайте также:
Acronis disk direcTor 11 home что это за программа

Иногда ошибка возникает из-за недостатка средств на счете. Дело в том, что СМС об активации – платное. Поэтому для его отправки, даже если у вас безлимитный тариф, необходимо наличие денег на счете. Можно положить всего 20 рублей, чтобы ошибка пропала.

У некоторых уведомление «Не удалось активировать SIM-карту 1» появляется просто потому что в слоте 1 не установлена сим-карта, а во втором установлена. Так бывает если человек пользуется одной симкой, а вторая не нужна. Сообщение может появляться после каждой перезагрузки смартфона. Что бы уведомление не раздражало вас – отключите его по инструкции выше.

Попробуйте сменить язык с русского на английский и перезагрузить устройство. После этого зайдите вновь в аккаунт фирменного облака. СИМ должна активироваться в течение нескольких секунд. После этого можно вернуться к русскоязычному интерфейсу.

Позвоните своему оператору сотовой связи, чтобы проверить, не заблокирована ли отправка СМС за рубеж. Стоимость ее не менее 20 рублей, поэтому позаботьтесь о наличии нужной суммы на счете.

Наконец, СИМ-карта может оказаться бракованной, поэтому лучше всего проверить ее на другом устройстве.

Все эти проблемы делают наличие сервиса активации СИМ-карт Сяоми не только лишним, но даже в некоторой степени и вредным. Поэтому о необходимости его установки судите сами.

Источник: atki.ru

Эмуляция и перехват SIM-команд через SIM Toolkit на Android 5.1 и ниже (CVE-2015-3843)

Я обнаружил эту уязвимость, исследуя возможность перехвата одноразовых паролей, которые отправлялись банком поставщику телекоммуникационных услуг, а затем поступали на специальное приложение SIM-карты и выводились на пользовательский интерфейс Android.

Перехват

Представьте, что на SIM-карте есть небольшое приложение, которое получает сообщение от оператора связи и показывает его на экране вашего Android-устройства. Если покопаться в исходниках Android, можно наткнуться на класс com.android.internal.telephony.cat.CatService, который отвечает за передачу команд между слоем радиоинтерфейса (Radio Interface Layer, RIL) и ОС.

public void handleMessage(Message msg) < CatLog.d(this, «handleMessage[» + msg.what + «]»); switch (msg.what) < case MSG_ID_SESSION_END: case MSG_ID_PROACTIVE_COMMAND: case MSG_ID_EVENT_NOTIFY: case MSG_ID_REFRESH: CatLog.d(this, «ril message arrived,slotid:» + mSlotId); String data = null; if (msg.obj != null) < AsyncResult ar = (AsyncResult) msg.obj; if (ar != null ar.result != null) < try < data = (String) ar.result; >catch (ClassCastException e) < break; >> > mMsgDecoder.sendStartDecodingMessageParams(new RilMessage(msg.what, data)); break; case MSG_ID_CALL_SETUP: mMsgDecoder.sendStartDecodingMessageParams(new RilMessage(msg.what, null)); break; case MSG_ID_ICC_RECORDS_LOADED: break; case MSG_ID_RIL_MSG_DECODED: handleRilMsg((RilMessage) msg.obj); break; case MSG_ID_RESPONSE: handleCmdResponse((CatResponseMessage) msg.obj); break;

Из всех типов сообщений нас интересует MSG_ID_RIL_MSG_DECODED .

private void handleRilMsg(RilMessage rilMsg) < if (rilMsg == null) < return; >// dispatch messages CommandParams cmdParams = null; switch (rilMsg.mId) < case MSG_ID_EVENT_NOTIFY: if (rilMsg.mResCode == ResultCode.OK) < cmdParams = (CommandParams) rilMsg.mData; if (cmdParams != null) < handleCommand(cmdParams, false); >> break; case MSG_ID_PROACTIVE_COMMAND: try < cmdParams = (CommandParams) rilMsg.mData; >catch (ClassCastException e) < // for error handling : cast exception CatLog.d(this, «Fail to parse proactive command»); // Don’t send Terminal Resp if command detail is not available if (mCurrntCmd != null) < sendTerminalResponse(mCurrntCmd.mCmdDet, ResultCode.CMD_DATA_NOT_UNDERSTOOD, false, 0x00, null); >break; > if (cmdParams != null) < if (rilMsg.mResCode == ResultCode.OK) < handleCommand(cmdParams, true); >else < // for proactive commands that couldn’t be decoded // successfully respond with the code generated by the // message decoder. sendTerminalResponse(cmdParams.mCmdDet, rilMsg.mResCode, false, 0, null); >> break;

Оба оператора switch приводят к вызову метода handleCommand() , однако второй параметр в каждом случае разный:

  • MSG_ID_EVENT_NOTIFY — обычное уведомление, которое не требует ответа от пользователя;
  • MSG_ID_PROACTIVE_COMMAND — а это, как раз наоборот, требует.

/** * Handles RIL_UNSOL_STK_EVENT_NOTIFY or RIL_UNSOL_STK_PROACTIVE_COMMAND command * from RIL. * Sends valid proactive command data to the application using intents. * RIL_REQUEST_STK_SEND_TERMINAL_RESPONSE will be send back if the command is * from RIL_UNSOL_STK_PROACTIVE_COMMAND. */ private void handleCommand(CommandParams cmdParams, boolean isProactiveCmd) < CatLog.d(this, cmdParams.getCommandType().name()); CharSequence message; CatCmdMessage cmdMsg = new CatCmdMessage(cmdParams); switch (cmdParams.getCommandType()) < case SET_UP_MENU: if (removeMenu(cmdMsg.getMenu())) < mMenuCmd = null; >else < mMenuCmd = cmdMsg; >sendTerminalResponse(cmdParams.mCmdDet, ResultCode.OK, false, 0, null); break; case DISPLAY_TEXT: break; case REFRESH: // ME side only handles refresh commands which meant to remove IDLE // MODE TEXT. cmdParams.mCmdDet.typeOfCommand = CommandType.SET_UP_IDLE_MODE_TEXT.value(); break; case SET_UP_IDLE_MODE_TEXT: sendTerminalResponse(cmdParams.mCmdDet, ResultCode.OK, false, 0, null); break; case SET_UP_EVENT_LIST: if (isSupportedSetupEventCommand(cmdMsg)) < sendTerminalResponse(cmdParams.mCmdDet, ResultCode.OK, false, 0, null); >else < sendTerminalResponse(cmdParams.mCmdDet, ResultCode.BEYOND_TERMINAL_CAPABILITY, false, 0, null); >break; case PROVIDE_LOCAL_INFORMATION: ResponseData resp; switch (cmdParams.mCmdDet.commandQualifier) < case CommandParamsFactory.DTTZ_SETTING: resp = new DTTZResponseData(null); sendTerminalResponse(cmdParams.mCmdDet, ResultCode.OK, false, 0, resp); break; case CommandParamsFactory.LANGUAGE_SETTING: resp = new LanguageResponseData(Locale.getDefault().getLanguage()); sendTerminalResponse(cmdParams.mCmdDet, ResultCode.OK, false, 0, resp); break; default: sendTerminalResponse(cmdParams.mCmdDet, ResultCode.OK, false, 0, null); >// No need to start STK app here. return; case LAUNCH_BROWSER: if ((((LaunchBrowserParams) cmdParams).mConfirmMsg.text != null) (((LaunchBrowserParams) cmdParams).mConfirmMsg.text.equals(STK_DEFAULT))) < message = mContext.getText(com.android.internal.R.string.launchBrowserDefault); ((LaunchBrowserParams) cmdParams).mConfirmMsg.text = message.toString(); >break; case SELECT_ITEM: case GET_INPUT: case GET_INKEY: break; case SEND_DTMF: case SEND_SMS: case SEND_SS: case SEND_USSD: if ((((DisplayTextParams)cmdParams).mTextMsg.text != null) (((DisplayTextParams)cmdParams).mTextMsg.text.equals(STK_DEFAULT))) < message = mContext.getText(com.android.internal.R.string.sending); ((DisplayTextParams)cmdParams).mTextMsg.text = message.toString(); >break; case PLAY_TONE: break; case SET_UP_CALL: if ((((CallSetupParams) cmdParams).mConfirmMsg.text != null) (((CallSetupParams) cmdParams).mConfirmMsg.text.equals(STK_DEFAULT))) < message = mContext.getText(com.android.internal.R.string.SetupCallDefault); ((CallSetupParams) cmdParams).mConfirmMsg.text = message.toString(); >break; case OPEN_CHANNEL: case CLOSE_CHANNEL: case RECEIVE_DATA: case SEND_DATA: BIPClientParams cmd = (BIPClientParams) cmdParams; /* Per 3GPP specification 102.223, * if the alpha identifier is not provided by the UICC, * the terminal MAY give information to the user * noAlphaUsrCnf defines if you need to show user confirmation or not */ boolean noAlphaUsrCnf = false; try < noAlphaUsrCnf = mContext.getResources().getBoolean( com.android.internal.R.bool.config_stkNoAlphaUsrCnf); >catch (NotFoundException e) < noAlphaUsrCnf = false; >if ((cmd.mTextMsg.text == null) (cmd.mHasAlphaId || noAlphaUsrCnf)) < CatLog.d(this, «cmd » + cmdParams.getCommandType() + » with null alpha id»); // If alpha length is zero, we just respond with OK. if (isProactiveCmd) < sendTerminalResponse(cmdParams.mCmdDet, ResultCode.OK, false, 0, null); >else if (cmdParams.getCommandType() == CommandType.OPEN_CHANNEL) < mCmdIf.handleCallSetupRequestFromSim(true, null); >return; > // Respond with permanent failure to avoid retry if STK app is not present. if (!mStkAppInstalled) < CatLog.d(this, «No STK application found.»); if (isProactiveCmd) < sendTerminalResponse(cmdParams.mCmdDet, ResultCode.BEYOND_TERMINAL_CAPABILITY, false, 0, null); return; >> /* * CLOSE_CHANNEL, RECEIVE_DATA and SEND_DATA can be delivered by * either PROACTIVE_COMMAND or EVENT_NOTIFY. * If PROACTIVE_COMMAND is used for those commands, send terminal * response here. */ if (isProactiveCmd ((cmdParams.getCommandType() == CommandType.CLOSE_CHANNEL) || (cmdParams.getCommandType() == CommandType.RECEIVE_DATA) || (cmdParams.getCommandType() == CommandType.SEND_DATA))) < sendTerminalResponse(cmdParams.mCmdDet, ResultCode.OK, false, 0, null); >break; default: CatLog.d(this, «Unsupported command»); return; > mCurrntCmd = cmdMsg; broadcastCatCmdIntent(cmdMsg); >

Читайте также:
Программа спрут что это такое

И, наконец, broadcastCatCmdIntent() :

private void broadcastCatCmdIntent(CatCmdMessage cmdMsg)

А вот эта часть довольно занятная:

  • AppInterface.CAT_CMD_ACTION равняется android.intent.action.stk.command ;
  • SLOT_ID используется для устройств с несколькими SIM-картами;
  • STK CMD — команда в качестве объекта Parcelable .
Как злоумышленник может этим воспользоваться?

Например, использовать вредоносное приложение, не требующее дополнительных привилегий, для перехвата команд, отправляемых SIM-картой на телефон. Для этого необходимо лишь зарегистрировать receiver с действием android.intent.action.stk.command и получить STK CMD из интента.

Пример перехваченной команды:

Это объект Parcelable в байтах. Преобразовав Hex в ASCII, вы получите сообщение SIM-карты.

Эмуляция

Однако это лишь половина уязвимости. Рассмотрим приложение, которое получает вот такое широковещательное сообщение:

Вид сообщения

Это приложение называется SIM Toolkit (STK) и является частью стандартного Android-фреймворка. Исходники можно найти тут.

Выше приведен фрагмент файла AndroidManifest.xml , относящийся к компоненту receiver . Как видно, компонент полностью экспортирован. Это позволяет не только перехватывать команды SIM-карты, но и создавать при помощи вредоносных программ объект Parcelable , а затем отправлять его на com.android.stk.StkCmdReceiver . Receiver не проверяет отправителя, а действие android.intent.action.stk.command не объявлено в системном файле AndroidManifest.xml в качестве защищенного сообщения, что позволяет мошенникам эмулировать отправку команд SIM-карты.

1. SIM-карта запрашивает подтверждение некоторой операции, скажем, транзакции в интернет-банке, выводя на экран телефона сообщение типа «Подтвердить транзакцию № 1234 на сумму 100 500 рублей» с двумя опциями — «ОК» и «Отмена». Код на StkDialogActivity.java:

public void onClick(View v) < String input = null; switch (v.getId()) < case OK_BUTTON: CatLog.d(LOG_TAG, «OK Clicked!, mSlotId: » + mSlotId); cancelTimeOut(); sendResponse(StkAppService.RES_ID_CONFIRM, true); break; case CANCEL_BUTTON: CatLog.d(LOG_TAG, «Cancel Clicked!, mSlotId: » + mSlotId); cancelTimeOut(); sendResponse(StkAppService.RES_ID_CONFIRM, false); break; >finish(); >

2. Если пользователь нажмет «ОК», будет вызвана команда sendResponse(StkAppService.RES_ID_CONFIRM, true) ; в противном случае — sendResponse(StkAppService.RES_ID_CONFIRM, false) ;.

3. Что, если при помощи действия android.intent.action.stk.command создать такое же диалоговое окно с другим текстом (поддельное) и вывести его на экран за несколько секунд до генерации SIM-картой оригинального сообщения («Подтвердить транзакцию № 1234 на сумму 100 500 рублей»)? В тексте сообщения напишем «Нажмите ОК для закрытия», а кнопки оставим те же — «ОК» и «Отмена».

4. Пользователь не увидит оригинальный диалог с подтверждением транзакции, пока не выберет одну из этих опций в поддельном окне, так как все команды, требующие взаимодействия с пользователем, помещаются в очередь.

5. Итак, мы остановились на следующем:

  • SIM-карта ожидает ответа от пользователя;
  • Android показывает пользователю первый (поддельный) диалог.

private void handleCmdResponse(CatResponseMessage resMsg) < // Make sure the response details match the last valid command. An invalid // response is a one that doesn’t have a corresponding proactive command // and sending it can «confuse» the baseband/ril. // One reason for out of order responses can be UI glitches. For example, // if the application launch an activity, and that activity is stored // by the framework inside the history stack. That activity will be // available for relaunch using the latest application dialog // (long press on the home button).

Relaunching that activity can send // the same command’s result again to the CatService and can cause it to // get out of sync with the SIM. This can happen in case of // non-interactive type Setup Event List and SETUP_MENU proactive commands. // Stk framework would have already sent Terminal Response to Setup Event // List and SETUP_MENU proactive commands. After sometime Stk app will send // Envelope Command/Event Download. In which case, the response details doesn’t // match with last valid command (which are not related). // However, we should allow Stk framework to send the message to ICC.

Здесь сообщается, что «Недопустимым является отклик, который не имеет соответствующей проактивной команды и отправка которого может “сбить с толку” baseband/ril». На деле, если RIL или SIM-карта будут получать от вас неожиданные отклики, последствия могут быть непредсказуемыми. В ходе моего исследования несколько SIM-карт вышло из строя, так и не загрузив меню.

Заключение

Команда AOSP устранила эту ошибку в обновлении Android 5.1.1 для Nexus-устройств (сборка LMY48I).

Вот некоторые из моих патчей:

Автор: Руководитель отдела безопасности мобильных приложений Positive Technologies (англоязычная версия материала)

  • android
  • уязвимости
  • перехват SIM-команд
  • sim-карта
  • Блог компании Positive Technologies
  • Информационная безопасность
  • Разработка мобильных приложений
  • Разработка под Android

Источник: habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...
eft-soft.ru