Заголовок BIOS-агента Computrace от Absolute SoftwareТехнические подробности работы “BIOS-агента” систем Computrace (LoJack итп сотоварищи) от Absolute Software.

Система базируется на разных способах внедрения в компьютерную систему. В самых старых версиях – это было лишь приложение подWindows (скрытый сервис). Впоследствии была использована распространённая техника использования изменённого MBR. Это, с одной стороны, давало логичные преимущества простоты реализации (загрузки до старта ОС), с другой стороны – серьёзные ограничения, как со стороны антивирусов, благополучно блокирующие и устраняющие подобные методики, так и со стороны “простого” использования, т.к. любой нестандартный вид MBR делал невозможным установку/функционирование “агента”. Кроме того, старые системы были ориентированы на DialUp, что требовало достаточно громоздких и относительно железозависимых процедур по инициализации модемов (а также используемых ими COM-портов). Повсеместное развитие интернета позволило ориентироваться на соединение через LAN/Ethernet, и примерно в 2004-м году была реализована схема, которая сейчас является основной и поддержана многими производителями (как компьютеров – HPDellLenovo и др., так и BIOS – Phoenix/AwardAMIUEFI) – когда код для запуска/инсталляции хранится в FlashROM BIOS.

Принцип работы Computrace

Модуль Computrace встроен в BIOS как PCI-ROM, т.е. использует обычный стандарт, который нужен для всех загрузочных PCI-устройств в системе – будь то сетевая карта (c её BootROM на борту) или SCSISATA-контроллер и т.д. В процессе работы POST (в её конечной части) сканируются так называемая Option ROM область памяти (где располагаются модули PCI-ROM), подсчитывается их CRC и если всё нормальноBIOS им передаёт им управление для установки нужных их работе ресурсов. Таким образом, подобная методика предполагает изначальное нахождение данного модуля в исходном BIOS системы. Соответственно это предполагает новые компьютеры, с производителями которых подписано соглашение об использовании в их BIOS данного модуля (производитель BIOS сам встраивает его в исходник собственными силами). Либо, в крайнем случае, это обновление BIOS с сайта производителя ноутбука (по той же договорённости – BIOS также делается производителем), и тогда процесс перешивки целиком ложится на пользователя.

Получив управление, PCI-ROM модуль Computrace резервирует в свободной памяти блок объёмом 64кБ, куда расшифровывает/распаковывает свой код.
Структурная схема начала работы BIOS-агента Computrace от Absolute Software

В случае отсутствия свободной памяти используются несколько общезвестных трюков, в т.ч. использование сегмента видеопамяти.
Структурная схема распаковки кода BIOS-агента Computrace от Absolute Software

В распакованном/расшифрованном коде содержится процедура поиска на винчестере каталога с Windows (поддерживается FAT и NTFS) и два запускных exe-файла.
Процедура поиска на винчестере каталога с Windows BIOS-агента Computrace от Absolute Software

Точней – файл, в который инкапсулирован ещё один файл, извлекаемый позже.
Инкапсулированный в autochk.exe файл rpcnet.exe  из BIOS-агента Computrace от Absolute Software

Стартовый файл для установки агента замещает собою autochk.exe в windows/system32, переименовывая оного в autochk.bak.
Подмена autochk.exe в BIOS-агенте Computrace от Absolute Software

При старте Windows поддельный autochk.exe, получив управление, извлекает из своего тела файл rpcnet.exe и прописывает его в реестр для работы/автозагрузки в качестве сервиса.
Сервис rpcnet.exe, устанавливаемый BIOS-агентом Computrace от Absolute Software

После получения управления от Windows уже в качестве сервиса (rpcnet) он при наличии доступа в интернет соединяется с одним из управляющих серверов 209.53.113.xxx (xxx.absolute.com).
Загрузка BIOS-агентом полной версии клиентской части Computrace с сервера Absolute Software

С него скачивается полная версия, которая устанавливается на винчестер в качестве “обычного” файла (rpcnetp.dll) и вся основная работа уже возлагается именно на его плечи.

C его помощью компьютер управляется удалённо – он принимает на исполнение как “внутренние” команды, так и, установив свой API-интерфейс, позволяет (удалённо) вызывать стандартные Windows-процедуры (application-уровня).

Сервис обеспечивает периодический сигнал (раз в четыре часа) к серверу на запрос управления им. В случае получения ответа от сервера об установленном уровне утери нотбука клиент начинает “долбиться” уже каждые пятнадцать минут.

Установив удалённое управление, сервер может выполнить различные команды, например, по желанию клиента – удалить нужные (или все) файлы с диска.
Удалённое управление компьютером с Computrace с через сервис Absolute Software

В качестве доказательства произведённой работы на сторону сервера передаётся лог обо всех удалённых файлах.

Основные патенты по теме:

 

п.с. статья написана в начале 2007-го года, опубликована 22.08.2009
здесь список производителей, де эта гадость установлена
http://www.absolute.com/en/partners/bios-compatibility.aspx

By Ruslan Novikov

Интернет-предприниматель. Фулстек разработчик. Маркетолог. Наставник.