devalone
@devalone
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻

Чем и как реверсить китайский вирус?

История следующая: заказали сестре телефон с китая cubot echo, пришёл, работает отлично, но спустя какое-то время пользования doctor web находит вирус в файле /system/app/CallerIdSearch/CallerIdSearch.apk. Скачал директорию на комп, там лежал этот файл и ещё один ./oat/armCallerIdSearch.odex. virustotal тоже показывает, что вирус https://virustotal.com/en/file/a6e09048369cdff4f09... https://virustotal.com/en/file/801d5d45507a2257565... Утилита file показала
CallerIdSearch.odex: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (GNU/Linux), dynamically linked, stripped

strings CallerIdSearch.odex |grep http
находит
http://alog.umeng.co/app_logs
http://alog.umeng.com/app_logs
http://ciddb.iappgame.com/
http://log.umsns.com/
http://log.umsns.com/share/api/
http://www.google-analytics.com/collect
https://ssl.google-analytics.com/collect

В китайском не силён, в переводе переведённого гугл транслейтом текста на русский тоже, но похоже на какой-то сервис обработки данных. Вот этот адрес ciddb.iappgame.com вообще странный, по нему открывается xml файл с какими-то странными данными.
Дальше решил разобрать apk, декомпилировал с помощью jadx и получил частично обфусцированные исходники. В файле AndroidManifest.xml нашлись строчки
<meta-data android:name="UMENG_APPKEY" android:value="56259ea3e0f55a5c17006ab0" />
<meta-data android:name="UMENG_CHANNEL" android:value="" />
<meta-data android:name="MP_FY_APPKEY" android:value="ZW26RFW7883RDVXCGV38" />

вероятно api ключи от тех сайтов. Структура файлов следующая https://pastebin.com/wzNVVKqX
или если смотреть только директории
spoiler
.
├── assets
│ └── d
├── com
│ ├── android
│ │ ├── service
│ │ └── tools
│ │ └── callassistant
│ │ ├── p004a
│ │ ├── p005b
│ │ ├── phone
│ │ ├── report1
│ │ └── update
│ ├── google
│ │ ├── analytics
│ │ │ └── tracking
│ │ │ └── android
│ │ ├── android
│ │ │ └── gms
│ │ │ ├── analytics
│ │ │ │ └── internal
│ │ │ └── common
│ │ │ └── util
│ │ └── gson
│ │ ├── annotations
│ │ ├── internal
│ │ │ └── bind
│ │ ├── reflect
│ │ └── stream
│ ├── p002a
│ │ └── p003b
│ └── umeng
│ └── analytics
│ └── social
├── original
│ └── META-INF
├── p000a
│ └── p001a
└── unknown

Лёгкий grep по исходникам находит те же url'ы, один из них в файле /com/umeng/analytics/AnalyticsConstants.java
package com.umeng.analytics;

/* renamed from: com.umeng.analytics.a */
public class AnalyticsConstants {
    public static final String f1289a = "Android";
    public static final String f1290b = "Android";
    public static final String f1291c = "5.6.1";
    public static final String f1292d = "5.6.1.0";
    public static final String f1293e = "MobclickAgent";
    public static final String[] f1294f;
    public static final long f1295g = 86400000;
    public static final long f1296h = 3600000;
    public static final boolean f1297i = false;
    public static final int f1298j = 64;
    public static final int f1299k = 32;
    public static final int f1300l = 64;

    static {
        f1294f = new String[]{"http://alog.umeng.com/app_logs", "http://alog.umeng.co/app_logs"};
    }
}

Как ещё можно препарировать этот китайский подарок? Может есть песочницы, которые покажут, что делает приложение?
P.S. Если есть желающие заняться реверсом, велкам
itm.d3d.info/static/core/somethinginteresting/app.zip
itm.d3d.info/static/core/somethinginteresting/sour...
  • Вопрос задан
  • 1543 просмотра
Пригласить эксперта
Ответы на вопрос 1
@pfg21
ex-турист
Это не вирус, это шпион, который снимает интересующие производителя данные с работы устройства.
Вполне возможно что сие действо безвредно - снимаются данные о работе и стабильности устройства, производитель отслеживает качество продукта. Никаких данных о действиях пользователя не собирается.
Но вполне возможна и большая функциональность.

такими шпионами даже самсунг балуется.

самое тупое решение - забить урлы нулями в бинарнике и переподписать приложение.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы