SHA1
- 1b41c5e14f17d3a695c94fcbe696294ec0bc96f2 (dmg)
- a6a6d0050d9ac5d69eef7228cfd0fb4480e06bb1 (mach-o)
Установщик нежелательных приложений для операционной системы OS X. При запуске считывает файл ".payload" из папки, в котором находится приложение. В его ресурсах имеется другой файл "payload", но он не используется. Данный файл имеет следующий вид:
хост|hex-encoded json
Формат JSON:
{
"publisher": "790",
"uid": "14375585952507RhhhlENdR",
"campaign": "1882",
"extra": {
"ttbpromo": "DDL",
"ttbaff": "54ec7d5f5f1c1e2452000008",
"nrid": "14375585952507RhhhlENdR",
"ip": "213.***.**.60",
"tt": "aac2d73c437d76f03ba0609d4e2a6bcae556aa8e",
"ttbtt": "ddl",
"lpd": "www.best*****pp.com",
"ttbhash": "IP1lNCYV",
"requestHost": "admin.best*****file.com",
"ttbvar": "",
"referer": "",
"build": "469",
"time": "2015/07/22 10:49:55",
"ttbts": "55759fba5f1c1e6c39000000",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36",
"fileName": "MPlayer",
"osVersion": "0",
"os": "MacOSX",
"browser": "ch"
},
"url": "",
"usedBrowser": "ch",
"sign": "sm1",
"caption": "",
"host": "domain.com",
"carrier": "FastPlayerMac"
}
После запуска инсталлятор заменяет поддомен управляющего сервера на значение «api», например, если в конфигурационном файле использовался URL "admin.best*****file.com", в качестве адреса управляющего сервера будет использоваться "api.best*****file.com".
С целью получения списка приложений, которые будут предложены для установки, инсталлятор формирует URL и шифрует его с использованием ключа, сгенерированного случайным образом. Для шифрования используется алгоритм AES в режиме СВС. Затем формируется строка:
hexencode(iv+key+encoded_url)
и делается запрос следующего вида:
http://api.<domen>/<hexencoded>
URL узла, с которого будут загружаться приложения для последующей установки, формируется так:
http://api.<domen>/stan/api/<publisher>/<campaign>/<carrier>/<language>/<region>/?browser=<browser>&ip=<ip>
Из файла конфигурации заимствуются следующие поля:
publisher
campaign
carrier
ip
browser
В качестве параметра переменной browser могут использоваться значения:
["ff", "ch", "sf","op"]
Все остальные поля заполняются данными, определяющимися исходя из параметров операционной системы.
Ответ управляющего сервера также зашифрован при помощи ключа, зашитого в тело инсталлятора, и содержит перечень программ, которые могут быть проинсталлированы на пользовательский «мак». Отклик имеет следующие основные поля:
- id - идентификатор устанавливаемого приложения. Существует как минимум 736 приложений, если судить по имеющимся id.
- score – условный «вес» приложения. Поскольку максимальное количество программ, которые могут быть предложены к установке, ограниченно, каждому из них присваивается некий условный «вес», и инсталлятор пытается создать список из неконфликтующего ПО с максимально допустимым «весом».
- appUrl – адрес для скачивания файла.
- restrictions - список id тех приложений, которые не могут быть предложены вместе с текущим. Например, если в списке приложений имеется MacKeeper и MacKeeper Grouped, то они не будут предложены для установки вместе.
Для каждого приложения определены три поля, содержащие сценарии JavaScript, зашифрованные с помощью Base64:
- preCheck - проверка, установлено ли уже данное приложение в системе;
- macBehavior - код, устанавливающий приложение;
- postCheck - проверка, успешно ли прошла установка приложения.
В диалоговом окне при запуске программы предусмотрен режим Custom Installation, в случае выбора которого на экране будут продемонстрированы флажки, позволяющие полностью отказаться от всех дополнительных приложений.