Как и обещали, продолжаем рассказывать об утилитах для анализа 1С шеллов.
Python-версия старейшей утилиты — V8unpack python 🐍
Есть много реализаций утилиты V8Unpack, которая была сделана для работы с контейнерами CF. Но у V8unpack python есть два преимущества:
👀 Она декодирует заголовки и разбивает по типам метаданных.
👀 Организует код и структуру хранения.
Использование:
v8unpack_py.exe -E Обработка.epf unpacked
В результате работы в каталоге
unpacked получаем понятную структуру:│ ExternalDataProcessor.data803.json
│ ExternalDataProcessor.json
│ ExternalDataProcessor.obj.bsl
│
└───Form
└───ВыполнитьКомандуСистемы
Form.elem.json
Form.id.json
Form.json
Form.obj.bsl
Файлы с расширением
bsl содержат 1С-код, который в нашем примере относится к шеллу. Можно сразу анализировать их.Оригинальная утилита v8unpack сложна в использовании:
1️⃣ Сначала нужно распаковать epf-контейнер:
v8unpack.exe -u Обработка.epf out
В результате получается несколько файлов вида:
имя_файла1.header, имя_файла1.data, имя_файла2.header, имя_файла2.data
2️⃣ Данные каждого data-файла сжаты алгоритмом Deflate, поэтому их нужно распаковывать отдельной командой:
v8unpack.exe -i out\ce244e8a-6d30-4e49-a244-c6d80d2ea085.0.data out\ce244e8a-6d30-4e49-a244-c6d80d2ea085.0.data.unp
Именно поэтому мы советуем использовать v8unpack в python-реализации. А для любителей RUST есть частично портированная версия утилиты — v8unpack-rs.
Самая простая утилита — V8Reader 😎
Эта GUI-утилита для анализа 1С контейнеров — самая наглядная и удобная в использовании. Внешний вид после открытия файла
Обработка.epf — на Скриншоте 1. Для просмотра кода модулей нужно выбрать «Действия» > «Модуль объекта» или перейти на вкладку «Модуль» при просмотре форм (Скриншот 2).
В утилите есть подсветка кода и сворачивание функций (Скриншот 3), визуально видна структура элементов — это очень удобно.
P.S. Кстати, 1C шеллы могут быть в виде файлов с расширением DT.
Ставьте 🔥 — если хотите узнать, что это за формат и как статически анализировать такой shell.


