Files
2026-09-17 00:50:07 +03:00

1.8 KiB

FvncLite

Reverse easy

В раздатке есть клиент курьерского терминала FvncLiteCourier.apk. Нужно найти скрытую команду экспорта аудита. Начинаем с содержимого APK, который можно распаковать как ZIP.

Решение

В архиве интересуют два файла:

Файл Зачем нужен
classes.dex Код сервиса и строковый ключ
assets/fvnc_table.bin Зашифрованная таблица команд

Открываем DEX в jadx, находим класс OpsService и метод decode(). Он побайтово XOR-ит таблицу повторяющимся ключом fvnc-lite-v4. Никаких дополнительных параметров устройства в расшифровке нет.

Повторяем алгоритм отдельно:

import json
import zipfile

with zipfile.ZipFile("public/FvncLiteCourier.apk") as apk:
    blob = apk.read("assets/fvnc_table.bin")
key = b"fvnc-lite-v4"
plain = bytes(b ^ key[i % len(key)] for i, b in enumerate(blob))
commands = json.loads(plain)
print(commands["audit.export"])

Расшифрованный JSON описывает команды accessibility/ops-сервиса. Среди обычных операций находим audit.export, значение которой и есть флаг.

Солвер.

Флаг

caplag{accessibility_command_table_recovered}