Фанбокс что это такое в телефоне

Мелкая доработка прошивки кнопочного телефона на платформе RDA8826 (SC6533, MIPS): отключаем Funbox, взламываем игры

Введение

839360b40a7396ba11e5b36699f71a8bInoi 102 и Strike F10

Купил я телефон Inoi 101: дешевый, но функционально достойный даже на фоне более дорогих моделей. Всё бы хорошо, если бы не нежелательная функциональность, присущая большинству недорогих звонилок:

Пробные игры с покупкой полной версии через СМС, причём состояние покупки сбрасывается при полном сбросе устройства;

Встроенное меню СМС-подписок «Funbox»: гороскопы, анекдоты, новости, прочая платная ерунда.

3bbf700fc4e6adcca97bcb28c7a154f3Платные игр и меню Funbox

Попробуем устранить недостатки путём анализа и модификации прошивки.

Чипсет

Современные кнопочные девайсы строятся на платформах трёх производителей: RDA Microelectronics, Spreadtrum, Mediatek. Первой компании уже не существует: её купил Spreadtrum в середине 2015. Обе компании ребрендировали под именем Unisoc в 2018 году.

Рассматриваемый телефон работает на последнем чипе «классического» RDA семейства Gallite, и был сделан уже после покупки компании, из-за чего у чипа два названия: RDA8826C (RDA’шное) и SC6533g (Spreadtrum’овское). В интернете нет не только datasheet’ов, но и почти никакой публичной информации об этой модели.
Архивная страница сайта rdamicro.com 2017 года скупо повествует нам о ключевых возможностях SoC’а:

General Description
RDA8826C is a high performance, highly integrated system-on-chip solution for low cost, low power, GSM/GPRS mobile phone.
Integrating all essential electronic components, including baseband, quad band RF transceiver, power management, FM receiver, Bluetooth onto a single system on chip, RDA8826C offers best in class bill of material, space requirement and cost/feature ratio for complete phone handsets.

Key Features
1. MIPS 312MHz processor
2. GSM/GPRS modem
3. 32Mb Flash and 64Mb PSRAM integrated
4. 320×480(HVGA) resolution

Нынешние телефоны построены в основном на процессорах Spreadtrum и Mediatek архитектуры ARM. Inoi 101 — не только «последний из могикан» на чипе ныне несуществующей компании, но и работает на ныне непопулярной архитектуре, с не самым известным набором команд MIPS16e, в котором инструкции кодируются в 2 байта вместо четырех, для уменьшения размера прошивки, что жизненно необходимо устройству со всего 4 МБ (32 Мбит) флеша.

SoC RDA8826 содержит в себе центральный процессор RDA8809e2, Baseband-процессор CT8851C, Bluetooth и FM-модули rdabt_8809 и rdafm_8809. Достоверная информация о всех компонентах в интернете не представлена.

Получение прошивки

Чтобы модифицировать прошивку, нужно сначала завладеть ей. Самый простой вариант — поискать на веб-сайте производителя. Inoi выкладывает прошивки ко всем своим моделям, но они не всегда самые последние — оказалось, что в версии с сайта отсутствует набор Т9 и игра «Тетрис».
Что-ж, телефон уже прошит, придётся покупать второй и скачивать актуальную прошивку с него. Сделать это можно, в случае RDA, только сторонними программами, т.н. «боксами» — аппаратно-программными комплексами для прошивки и восстановления от сторонних разработчиков. Обычно необходимо купить сам «бокс» (устройство с набором кабелей) и подписку на ПО, но к счастью подходящее ПО уже есть взломанной версии, отвязанное и от бокса, и от подписки — Miracle Thunder 2.82 от Gsm_X_Team. Относитесь к этому ПО как к трояну — устанавливайте на отдельный компьютер, без интернета (в виртуалке не работает).

a03312c8b0e97915d68439e77bd52168Miracle Thunder

Открываем дамп флеша или преобразованный файл прошивки в вашем любимом дисассемблере, начинаем анализировать, быстро разочаровываемся: строк мало, сегментация памяти непонятная, IDA норовит неправильно определить MIPS32/MIPS16-код, тут и там странные указатели 0x82xxxxxx на оперативную память, в которые никто не пишет…

image loader

Скребём по сусекам

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

Из заголовочных файлов узнаём самое основное:

Флеш располагается по адресу 0x88000000 (4 МиБ)

Оперативная память — в 0x82000000 (8 МиБ)

SRAM — 0x81C00000 (64 КиБ)

BootROM — 0x81E00000

UI на моём устройстве построен на форке фреймворка MMI (man-machine interface) от компании Pixtel — CoolMMI. Подобный фреймворк используется и в ОС для кнопочных телефонов Mediatek MAUI, под названием PlutoMMI.

Фреймворк создавался в лучшие годы кнопочных телефонов, с соответствующим качеством кода — всё завязано на глобальные переменные, глобальные состояния, магические константы, массивы строк, массивы функций-обработчиков кнопок. Монолитная архитектура без какой-либо модульности (даже минимальной) не позволяет писать красивый код — разные функциональные возможности активируются #define’ами в унифицированных *.c-файлах для всех случаев, затрудняющими чтение кода.

Обращение к текстовым строкам, ресурсам, задачам, меню, элементам NVRAM происходит с помощью уникального цифрового идентификатора, что затрудняет исследование: вы видите только цифры, далеко не сразу поддающиеся установке соответствия в осмысленную строку, пункт меню или ресурс.

Начальную информацию об основных функциях PlutoMMI от Mediatek можно почерпнуть из файла mmi framework and architecture.pdf. Архитектура CoolMMI и PlutoMMI совпадает в достаточной мере, чтобы пользоваться (аналогично скудной) документацией конкурирующего производителя.

Поиск сжатых ресурсов

Итак, память размечена правильно, а кардинальных изменений не видно — множество функций продолжают вызывать код из оперативной памяти, но найти, кто пишет в эти адреса, с наскока не получается. Да и ресурсов подозрительно мало.

После непродолжительного анализа обнаруживаются три особенности:

Переиспользование функций из BootROM
Для максимальной экономии пространства на флеш-памяти производитель реализовал наиболее востребованные функции библиотеки C непосредственно в ROM-памяти чипа: строковые функции (strlen, strcmp, strcpy, strcat, strtok), функции сравнения и копирования памяти (memcmp, memcpy, memmem, memchr), форматирования и вывода (sprintf, vsprintf), поиска и сортировки (bsearch, qsort) вызываются из памяти ROM, и не содержатся в коде прошивки, экономя драгоценные килобайты.

Сжатие кода и ресурсов алгоритмом LZMA
Код наиболее объемных «модулей» (WAP-браузера, мультимедиа-плеера, приложения FM-радио, инженерного меню) хранится в сжатом виде, а распаковывается один раз, при запуске телефона. Ничего дополнительного после распаковки не происходит: код скомпонован так, будто эти модули всегда в оперативной памяти по фиксированным адресам.
Аналогично распаковываются текстовые строки, но только для одного, текущего языка.

Копирование несжатого кода в оперативную память
Самый архитектурно важный код ОС копируется в оперативную память и выполняется из неё. Вероятно, это сделано для максимальной скорости исполнения базовых функций ОС.

Сжатые ресурсы легко находятся через binwalk. Можно было бы каждый из них вручную распаковать и загрузить в текущую базу IDA по корректным адресам, но я нашел способ проще, надёжней и быстрее.

Снятие оперативной памяти

Оказалось, протокол прошивки не только простой, но и разрешает чтение произвольных адресов без какой-либо подготовки, прямо во время работы телефона. В интернете была найдена готовая программа для чтения прошивки через UART, которая после модификации была использована для чтения всех 8 МиБ оперативной памяти через USB. 2 минуты — и никакой ручной работы!
Чтобы получить коммандный порт через USB, можно воспользоваться модулем usb-serial в Linux. Достаточно всего лишь «научить» модуль работать с RDA:

$ echo 1e04 0900 | sudo tee /sys/bus/usb-serial/drivers/generic/new_id

image loaderРазжатая функция в оперативной памяти

Отныне нам доступны все распакованные функции и ресурсы в оперативной памяти, что позволяет нам беспрепятственно их проанализировать.

«Покупаем» игры

В рассматриваемом телефоне присутствуют 3 платных игры производства Gameloft: Danger Dash, Ninja Up, Tetris. Первая — раннер, без какой-либо физики прыжка, вторая — примитивный фроггер с одним экраном, играть можно разве что в тетрис, но он начинает тормозить при заполнении экрана фигурами.
Каждая игра запускается всего 5 раз, далее их предлагается оплатить. Игры стоят 99 рублей каждая — половину стоимости телефона — обдираловка!

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

Генератор псевдослучайных чисел инициализируется значением текущей минуты;

Генерируется псевдослучайное число от 1000 до 9999;

Случайное число отправляется в СМС и сохраняется в NVRAM;

Ответный код проверяется с учётом сохраненного случайного числа.

Связка запрос-ответ уникальна для каждой модели, и зависит от той минуты, в которую была нажата кнопка «купить»:

Где 28060 — идентификатор телефона Inoi 101.
Этот нехитрый алгоритм легко реализовать в виде кейгена, что я и сделал: http://gameloft-keygen.valdikss.org.ru/
К слову, на телефонах с Mediatek алгоритм кода регистрации точно такой же, но алгоритм генерации псевдослучайных чисел отличается.

Самый простой способ зарегистрировать игры навсегда — пропатчить код инициализации, заменив переменные количества демо-запусков на переменные купленности игры. Так как эта функция находится в несжатой области кода, проблем с её модификацией не возникнет.

image loaderЗамена переменных в функции инициализации

Найти функции можно по отладочным строкам, содержащим характерное имя файла:

image loaderФункция вывода номера строки файла src/gameloft_billing.c

Отключаем Funbox

Меню платных СМС-подписок — ожидаемая, но неуместная функция послепродажного заработка денег производителем. Одно неловкое нажатие — и минимум 5 рублей со счёта в сутки вам обеспечено. Подобные вещи позволяют держать цены на кнопочные телефоны на очень низком уровне, но в моём устройстве им не место.

Как и в случае с играми, в функциях Funbox присутствует отладочный вывод номеров строк с именем файла «src/gmb_smart_sms_win.c». С этих строк можно «дошагать» до функции-обработчика выделения элемента главного меню (в CoolMMI они называются hilite, очевидно имеется в виду highlight), в котором и находится иконка.
Методом проб и ошибок удалось обнаружить обработчик входа в интерфейс подписок, который был благополучно за’nop’лен — нажатие на иконку Funbox центральной кнопкой или левой софт-клавишей более ни к чему не приводят.

Функция расположена в несжатой области и легко поддаётся изменению.

Исправляем громкость

Компонент аудиоусилителя телефона имеет 15 ступеней усиления, но для мультимедии прошивка телефона предусматривает всего 7 уровней громкости, с большими шагами между ними. Это неудобно: на «единице» телефон еле слышно, а на «двойке» он сразу ОРЁТ.

Попробуем исправить эту проблему. В заголовочных файлах быстро находится регистр CONFIG_REGS по базовому адресу 0x01A24000, структура которого описывается следующим образом:

Использование регистра происходит через сегмент KSEG1, в обход MMU и кешей. Полный адрес audio_spk_cfg, обращения к которому нужно искать в дисассемблере — 0xA1A24028.

После непродолжительного поиска обнаруживается функция, преобразующая уровень усиления (по всей видимости, в децибелах) в значение SPK_GAIN:

Изменив уровни с [0, 2, 4, 6, 8, 10, 12, 14] на [0, 1, 2, 3, 5, 6, 8, 10], мы получили более плавную регулировку ценой уменьшения максимальной громкости, которая всё равно только приводила к перегрузу маломощного динамика телефона.

Если при воспроизведении MP3-файлов положительный эффект очевиден, то громкость FM-радио всё ещё регулируется с недостаточной гранулярностью. Вероятно, это аппаратная проблема подключения FM-чипа.

Неожиданные трудности

Для MIPS существует два стандарта 16-битных инструкций: MIPS16e и microMIPS. Первый является дополнением (extension) к архитектуре MIPS32: код может использовать одновременно оба набора инструкций, процессор может переключаться между режимом выполнения MIPS32 и MIPS16e в любое время, прыжком на нечётный адрес инструкции. Не все инструкции и возможности MIPS можно выразить командами MIPS16e — иногда переключение в режим MIPS32 просто необходимо.
microMIPS же — полноценная архитектура с полным набором 16-битных команд. Вот что говорит официальная брошюра:

The benchmarks prove that the microMIPS architecture delivers similar memory savings as the MIPS16e ASE, but with much better performance. The question is how? The list of reasons includes new optimized 16- and 32-bit instructions, an optimized recoding of MIPS32 instructions, and optimized op code format and register utilization.

The earlier stated fact that microMIPS is a complete architecture – not an extension − is also key. Both MIPS16e, and for that matter the similarly-targeted ARM Thumb technologies, are extensions. Both microMIPS and these extensions rely on the concept of new 16-bit versions of regularly used instructions to minimize code size. And all deliver reductions in code size. But only microMIPS delivers 32-bit performance.

The microMIPS mode can handle all operations such as exception handling, and offers a superset of the MIPS32 ISA. With MIPS16e, the programmer had to swap modes to use ASEs such as MIPS DSP. The microMIPS mode can seamlessly access the ASEs. The need to run legacy binary code is really the only reason that would prompt a programmer to use the MIPS32 mode.

Проблема в том, что привычные утилиты инлайн-ассемблирования кода для патча программы, такие как rasm2 из состава Radare2 и kstool из KeyStone, не поддерживают режим MIPS16e. Они либо ассемблируют 32-битные команды, несмотря на то, что выбран 16-битный режим, либо выводят опкоды, явно не соответствующие MIPS16e.

К счастью, ассемблер gcc поддерживает режим MIPS16e, а работать с ним почти так же удобно, как с rasm2/kstool. Есть, разве что, одна особенность: он выравнивает блок nop’ами.

Вывод

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

Источник

Открой бесплатную коробку и получи нефига

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

Не так давно наткнулся на сервис CRAZY BOX. Это такой сервис, я бы даже назвал просто рулеткой. Короче как-то в моей ленте в ВК встретилась реклама раздачи дорогих призов бесплатно, ну ясен пень фигурируют 11-е айфоны, куда же без них в наше время?)))

Я перешел на сайт, вот ссылка: https://crazybox.net/ и попал на страницу бесплатной коробки с призами. Коробка это виртуальная коробка в которой есть ряд предметов от 11 айфона до плеера с Алика за 50 рублей, хотя у них его цена 200 рублей. Короче чтобы открыть эту коробку нужно получить промо-код, для этого нужно подписаться на их сообщество и написать боту «Дай промокод. Чтобы избавить Вас от этого напишу промо код тут: BOXFREE (вдруг кому интересно и возможно повезет). Бесплатную коробку можно открывать только 1 раз в сутки. Самое интересное впереди. Короче даже если Вам выпадет предмет который, стоит больше 1000 рублей то Вы можете его продать за 30 рублей и эти рубли поступят на Ваш баланс на сайте сервиса. Таких предметов Вы можете продать максимум 3 и у Вас на балансе будет 90 рублей. ЗАПОМНИТЕ ЭТО!))

Как Вы поняли я 3 дня подряд открывал коробку и мне выпадали копеечные товары, которые продавал. Но вот на 4 день мне не дали его продать, мол лимит исчерпан. Ну думаю дай ради прикола закажу, придет или не придет, бесплатно же. Все поля заполнил готов, нажал отправить. И тут оказывается, что отправка стоит 100 рублей. Сейчас все подумали про 90 рублей на балансе правильно? Вот и я подумал, ну раз так, то сейчас докину 10 рублей, чтобы было 100 и закажу эту хрень (не помню, что там мне выпало). Меня перекидывает на платежный шлюз, где мне нужно оплатить 100 рублей. Думаю, с чего бы вдруг? На кой мне пополнять на 100 если 90 уже есть? Написал несколько комментов под постами в их сообщества в ВК, никто не ответил. Думаю ну понятно развод явно. А вот сегодня мне пришло сообщение от этих аферистов.

1574961468133075013

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

1574961791190312203

И каких там телефонов нет. В основном все новинки 2019 года. Все с безрамочным дисплеем. И iPhone и Samsung и Huawei. Вот Вам скриншот с некоторыми смартфонами которые содержит заветная коробочка

1574962004158957776

Думаю да ладно? В чем-то тут подвох. И стал изучать коробку. И в самых последних рядах наткнулся на кое-что интересненькое. На сколько я помню то коробка называется «Лучшие телефоны 2019»? Так, а с какого перепуга в коробке делает это:

1574962247142676586

Если кто не понял, то скажу. Среди аппаратов которые стоят приличных денег затесались, ластики в виде айфона да китайские кабели. Это именно, то, что Вы получите заплатив от 319 рублей. Разумеется им не выгодно давать открывать коробку за 300 рублей чтобы Вам выпал айфон. Это аферизм самый натуральный. Возможно (хотя я не уверен), кому-то и выпадет смартфон, но он либо не придет, либо придет китайская подделка или просто брусок. Для чего я это все написал? Да просто хотел предостеречь Вас от таких аферистов которые предлагают Вам «типа халяву» и на этом наживаются. Вспомните про 90 рублей на счете и пополнение счета сразу на 100 рублей. Администрация даже не ответила на мой комментарий по этому вопросу. А это уже наводит на подозрения. И к стати говоря на их сайте никакой юридической информации, кто они, где находятся. Скорее всего это мошенники которые продуманно наживаются на молодежи которая верит в халявы и сказки.

А вобще существуют такие рабочие и честные ресурсы, типа полулатерейного типа?

ты два с лишним года терпел, чтобы эту шнягу выложить? или консерва мультиака вскрылась?

1624549929299542869

Снова наблюдение из Wildberries.Разве это не тянет на уголовку?Как решаются вопросы с виновными в таком?

1631784632141578409

1631784600115233378

1631784663120692296

1631784687142762162

m2048022 788182867

Берегите свои деньги

Сегодня получила на почту привлекательное письмо от СберБанка. Лотерейные билеты, говорят, раздают.

1631769028114157336

1631769079130929141

И даже трансляция идет:

163176910713372782

1631769098148889989

Пока писала пост, стала мультимиллионером:

1631769168137848168

Правда, говорят, пошлину нужно оплатить:

1631769301137611607

Номер карты для получения «выигрыша» вводила от балды. Система даже не заподозрила подвох. Но так как я жадный буратино и не заплатила пошлину, не быть мне мультимиллионером.

Спасибо Пикабу за расширение кругозора. Меня всё сложней обмануть.

Московская студентка продала девственность мошеннику за поддельный iPhone

В Москве студентка второго курса МосГУ решила подзаработать, продав свою девственность, однако в качестве оплаты получила поддельный смартфон iPhone. Об этом Лайфу сообщил источник.

Отмечается, что соответствующее объявление девушка выложила на одном из сайтов.

Девушка тщательно берегла свой актив, но окунувшись в студенческую жизнь, поняла, что до конца учебы она по любому девственность не убережет. А так как мужа на примете у неё не было, она решила совместить приятное, с еще более приятным. А именно потерю девственности и обретением финансовой прибыли.

Свой гонорар она оценила в 2000 долларов США, и на предложение тут же откликнулся 37-летний горячий Геворг, из одной солнечной, кавказкой республики. Сделка состоялась не сразу — партнёрам потребовался месяц на сближение.

В этот период пара посещала рестораны, гуляла, а по истечении срока, Геворг всё таки получил доступ к заветной, девственной дырочке. Однако после мужчина заявил, что вместо денежного гонорара хочет презентовать девушке новый iPhone 12 Pro.

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

1621015951197478344

1621015958131658297

1616425696134498777

m704967 1152416081

Педант целует ваши карманы)) потратил еще 2,5 тыр

Развязка сегодняшней истории (не окончательная).

Съездил сегодня к @Meslo, спасибо ему огромное за сердечный отклик, парень самостоятельно, не от фирмы помог решить 90% проблем.

Сама история: приехал на Нижний Сусальный в сервис, фото прилагаю, Meslo меня встретил и сразу взял айфон в работу. Вскрытие показало:

1. Экран оригинальный, но без опознавательных знаков, выявлено несовпадение ревизии дисплея и телефона, в связи с чем нарушена штатная работа тачскрина при установке любых защитных стёкол, решается заменой на подходящую матрицу.

2. Отсутствовала защита шлейфов (реутовский мастер забыл установить обратно, бывает).

3. Была повреждена влагозащита и не восстановлена (о чём меня не предупредили) и был риск попадания влаги и полная поломка материнской платы, особенно актуально в данную погоду (хорошая работа, реутовский мастер).

4. Truetone не был накатан с программатора, хотя эта процедура обязательна при установке оригинального дисплея (действительно, зачем это нужно, лучше напиздеть что apple отключили его с ios 14)

Резюме дня такое: выражаю благодарность Meslo, парень восстановил влагозащиту, нашёл и установил оригинальную защиту шлейфа, накатил truetone, заодно заменил аккумулятор (те самые 2,5 тыр, остальное бесплатно, просто помощь хорошего человека Meslo). С работой тачскрина окончательно решить проблему не вышло, в итоге сделали защиту экрана гелем, вроде как отклик нормальный.

Педанту.ру Реутов желаю смены сотрудников, либо закрыть эту точку чтобы люди не просирали деньги, время и свои устройства от кривых рук, чтобы не портили имя тех немногих ребят, что работают в сети вкладывая душу, как для себя. Педанту оставил голосовую претензию, пока без ответа. Буду писать ещё письменно, по результатам так же отпишусь. Спасибо за полезные советы (не про смену ios на android). Сила Пикабу вновь помогает простым смертным!

Важное дополнение! По поводу лагов тачскрина, у многих был вопрос в чём причина: #comment_188665284

160934676713523867

«Законный бизнес».

Источник

Telefonu.top - справочник телефонных номеров
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии