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

38 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<h1 align="center">Chameleon Line</h1>
<p align="center">
<img src="https://img.shields.io/badge/category-Reverse-blueviolet" alt="Reverse"/>
<img src="https://img.shields.io/badge/difficulty-easy-brightgreen" alt="easy"/>
</p>
В раздатке есть .NET-установщик `ChameleonLine.dll` для удалённой поддержки цеховых ПК. В сборке находятся зашифрованный конфиг загрузчика и данные для его расшифровки.
## Решение
Открываем сборку в ILSpy или dnSpy и идём к коду загрузки конфига. В пользовательских строках находим три значения:
| Строка | Что в ней лежит |
|---|---|
| `ResourceTag` | Маркер `CFGv2:` и base64 зашифрованного конфига |
| `KeyHex` | 32 hex-символа с префиксом `0011` — ключ AES-128 |
| `IvHex` | 32 hex-символа с префиксом `1021` — IV |
Рядом находится AES-CBC-дешифратор, который использует эти строки как ключ, IV и зашифрованные данные.
Строки .NET лежат в `#US` в UTF-16LE, поэтому для автоматизации достаточно извлечь их прямо из бинаря. Находим `CFGv2:`, отрезаем префикс, а ключ и IV читаем как hex-представления 16-байтных значений.
Расшифровку можно поручить OpenSSL. Сохраняем base64-тело одной строкой в `config.b64`. В `-K` и `-iv` подставляем полные hex-строки, без префикса `0x`.
```bash
openssl enc -d -aes-128-cbc -K <key> -iv <iv> \
-nosalt -A -base64 -in config.b64
```
Получаем JSON-конфиг загрузчика. В поле `export` лежит флаг. Запуск самого установщика для этого не нужен, поскольку все данные уже были в DLL.
[Солвер](solve/solve.py).
## Флаг
`caplag{aes_resource_config_guided_the_loader}`