Цель: Затруднить для понимания байт-код, запутать и устранить логические связи в байт-коде.
Обфускатор может обрабатывать файлы *.epf, *.erf, *.cf, *.cfe и *.cfu. Обработка ведётся в безопасной среде: создаётся копия обрабатываемого файла с добавкой "_обф" в имени файла. Исходный файл при этом не затрагивается и остаётся в исходном виде. Если нужно обрабатывать непосредственно исходный файл, то рекомендуется создавать резервную копию файла и поставить флажок "Не создавать копию". Исходный файл должен быть предварительно закрыт паролем, прежде чем обрабатывать. Если закрытый модуль будет изменен разработчиком, то его нужно будет обрабатывать еще раз. Обработка протестирована на версии 8.5.1.1150, однако конструктор "ГенераторСлучайныхЧисел" с изменённым алгоритмом будет корректно функционировать на версиях 8.3.22.1368+. Если заменить конструктор "ГенераторСлучайныхЧисел" на другой, то она будет работать начиная с версии 8.3.18+. Если также убрать асинхронность, то и на версиях 8.3.10+.
Инструкция:
- Выбрать файл.
- Выбрать модификацию.
- Нажать "Распаковать".
- Нажать "Обработать".
- Проверить файл на работоспособность.
Настройте инструмент по своему усмотрению, выбрав подходящую модификацию:
- без изменения - оставляет все как есть и ничего не меняет.
- минимальный - выбираются все минимальные.
- максимальный - выбираются все максимальные.
- ручной - выбираются вручную модификации или генерируются случайным образом нажатием кнопки.
Ручной (список всех модификаций):
Переключатель "Шифрование констант":
- без изменения - константы не шифруются.
- простое - шифруются константы.
Переключатель "Переименование переменных":
- без изменения - переменные не переименовываются.
- случайное - переименовываются случайным образом переменные.
Переключатель "Переименование меток":
- без изменения - метки не переименовываются.
- случайное - переименовываются случайным образом метки.
Переключатель "Переименование процедур":
- без изменения - процедуры не переименовываются.
- случайное - переименовываются случайным образом процедуры.
Переключатель "Порядок констант":
- без изменения - оставить порядок констант в исходном виде без внесения изменений.
- случайный - случайный порядок констант.
Переключатель "Порядок переменных":
- без изменения - оставить порядок переменных в исходном виде без внесения изменений.
- случайный - случайный порядок переменных.
Переключатель "Порядок меток":
- без изменения - оставить порядок меток в исходном виде без внесения изменений.
- случайный - случайный порядок меток.
Переключатель "Порядок процедур":
- без изменения - оставить порядок процедур в исходном виде без внесения изменений.
- случайный - случайный порядок процедур.
Переключатель "Порядок операций":
- без изменения - оставить порядок операций в исходном виде без внесения изменений.
- случайный - случайный порядок операций.
Переключатель "Удаление конструкций":
- без изменения - ненужные конструкции не удаляются.
- частичное - частично удаляются ненужные конструкции.
- полное - полностью удаляются ненужные конструкции.
Переключатель "Замена конструкций":
- без изменения - некоторые конструкции не заменяются.
- частичная - частично заменяются некоторые конструкции на аналогичные.
- полная - полностью заменяются некоторые конструкции на аналогичные.
Переключатель "Добавление мусора":
- без изменения - мусор не добавляет.
- случайное - добавляется случайным образом мусор.
Переключатель "Шифрование файлов модулей":
- без изменения - файлы не шифруются.
- частичное - частично шифруются файлы.
- полное - полностью шифруются файлы.
Переключатель "Запись файлов модулей":
- без изменения - файлы записываются в исходном виде без внесения изменений.
- произвольная - записываются файлы без разделителей или с разделителями строк.
Переключатель "Порядок блоков файлов модулей":
- без изменения - оставить порядок блоков файлов в исходном виде без внесения изменений.
- случайный - случайный порядок блоков файлов.
- цикличный - повторяет последовательность блоков файлов.
Переключатель "Поставка модулей":
- без изменения - поставляются модули в исходном виде без внесения изменений.
Если был установлен пароль на тексты модулей, то оставляет возможность установки пароля на тексты модулей после обфускации байт-кода. При вводе корректного пароля приведет к расшифровке исходных текстов, но 1С при закрытии модуля заново скомпилирует модуль и перезапишет обфусцированный скомпилированный образ, т.е. обфускация слетит.
Если исходный текст модуля отсутствовал, то в контейнере будет хранится только скомпилированный образ модуля после обфускации байт-кода. - вариант 1 - поставляются без исходных текстов модулей.
- вариант 2 - поставляются без исходных текстов модулей (без надписей).
Проверка файла на работоспособность:
- Проверить, что в файле установлены пароль на модуль или поставлены модули без исходных текстов.
- Проверить, что новый файл открывается в конфигураторе или предприятии без ошибок.
- Проверить, что новый файл распаковывается.
Список публикаций, использованных при разработке:
Сравнение инструментов:
| Инструмент | Защита файлов | Системы лицензи-рования |
| Защита конфигураций | *.cf, *.cfe | HASP, Guardant, Codemeter |
| Защита от декомпиляции модулей | *.epf, *.erf, *.cf | - |
| Нетленка: защита конфигураций 1С | *.epf, *.erf, *.cf, *.cfe | - |
| Обфускатор байт-кода (этот) | *.epf, *.erf, *.cf, *.cfe, *.cfu | - |
| Обфускатор операционного кода 1с |
*.epf | - |
1.7.4
Исправлена ошибка при вызове метода контекста (Сдвинуть).
1.7.3
Теперь поддерживаются 2 формы: "Версия 8.5" и "Такси".
Проведена небольшая оптимизация кода и формы.
1.7.2
Сведения о внешней обработке перенесены в заголовок формы.
Выбор модификации "Случайный" переименован в "Ручной".
Проведена небольшая оптимизация кода:
- Передача константы/значения напрямую без промежуточных переменных.
- Устаревшие конструкторы "ЧтениеZipФайла" и "ЗаписьZipФайла" заменены на новые.
- Устаревшие методы "Base64Значение" и "Base64Строка" заменены на новые.
- Устаревшее свойство "ЭтаФорма" заменено на новое.
Устранена проблема с записью многострочных строк в файл.
1.7.1
Больше нового мусора.
1.7.0
Добавлена возможность шифрования имён процедур.
1.6.5
Добавлена новая замена конструкций.
1.6.4
Добавлен переключатель, позволяющий добавить случайным образом мусор.
Теперь порядок операций изменяется также на этапе инициализации модуля.
1.6.3
Теперь deflate распаковывается в памяти без временных файлов.
Исправлена ошибка шифрования констант.
1.6.2
Добавлена возможность шифрования имён меток.
1.6.1
Добавлена возможность выбора модификации.
Теперь доступна кнопка "Открыть" для внешних отчётов.
1.6.0
Добавлен переключатель "Шифрование файла модуля" со списком выбора "полное".
Вступайте в нашу телеграмм-группу Инфостарт