Skip to content

GERYON-TEAM/practice-case-code-security

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

Техническое задание на практику на разработку модуля автоматической обфускации JavaScript файлов на Python

Введение

Цель данного технического задания - разработка модуля на языке Python, который будет обфусцировать JavaScript файлы в указанной папке. Обфускация должна сделать код максимально сложным для чтения и анализа, при этом сохраняя его функциональность.

Требования к функциональности

Основные функции модуля

  1. Обработка папок и файлов

    • Модуль должен принимать на вход путь к папке, содержащей JavaScript файлы.
    • Рекурсивно обрабатывать все файлы в указанной папке и вложенных папках.
    • Изменять только файлы с расширением .js.
  2. Обфускация кода

    • Преобразование имён переменных, функций и параметров в случайные строки.
    • Удаление комментариев.
    • Изменение структуры кода, не влияющее на его функциональность (например, добавление лишних скобок, изменение форматирования).
    • Преобразование строковых литералов в их эквиваленты (например, в Unicode).
    • Любые другие методы обфускации, которые могут усложнить чтение кода.
  3. Сохранение исходной функциональности

    • Обфусцированный код должен оставаться полностью работоспособным и функционально эквивалентным исходному коду.
  4. Логирование и отчёты

    • Модуль должен вести логирование процесса обфускации с указанием обработанных файлов и применённых методов обфускации.
    • По завершению работы модуля, должен создаваться отчёт с результатами обфускации (например, количество обработанных файлов, применённые методы обфускации и т.д.).

Технические требования

Среда выполнения

  • Python 3.8 и выше.
  • Модуль должен быть кроссплатформенным и работать как на Windows, так и на Linux и MacOS.

Внешние библиотеки

  • Рекомендуется использовать существующие библиотеки для парсинга и обработки JavaScript кода, такие как esprima для Python или другие подобные библиотеки.

Входные и выходные данные

  • Входные данные: путь к папке с JavaScript файлами.
  • Выходные данные: обфусцированные JavaScript файлы, сохранённые в тех же папках, где и исходные файлы.

Пользовательский интерфейс

  • Модуль должен предоставлять интерфейс командной строки (CLI) для запуска процесса обфускации.
  • Пример команды для запуска:
    python obfuscator.py --input_path /path/to/js/files

Структура проекта

Основные компоненты

  1. Обработчик командной строки

    • Парсинг аргументов командной строки.
    • Валидация входных данных.
  2. Модуль обфускации

    • Обработка файлов и папок.
    • Применение методов обфускации.
  3. Логирование и отчётность

    • Логирование процесса обфускации.
    • Генерация отчёта по завершению процесса.

Предполагаемая структура каталогов

project_root/
├── obfuscator/
│   ├── __init__.py
│   ├── cli.py
│   ├── obfuscate.py
│   ├── logger.py
│   └── utils.py
├── reports/
│   └── obfuscation_report.txt
├── README.md
├── requirements.txt
└── setup.py

Оценка задания

Задание оценивается по глубине выполнения ТЗ. Минимальная версия - модуль, обфусцирующий конкретный файл на JS

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors