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

Почему?

Когда мы развертываем наш код с помощью docker в клиентской среде, они могут присоединяться или запускаться в базу кода и получать ее исходный код. Это нужно скрыть / зашифровать.

Большинство веб-приложений написаны на JavaScript. Мы запутаем код основного сервера, чтобы не было доступа к исходному коду.

Как это сделать?

1. Существует пакет npm для обфускации кода javascript. Имя пакета - обфускатор JavaScript. (Https://www.npmjs.com/package/javascript-obfuscator)

2. Обфускация может выполняться непосредственно в папке, что означает, что все файлы javascript в папке будут затемнены.

Пример - javascript-obfuscator [имя папки]

3. Хотя это отлично работает для обфускации всех файлов, файлы не заменяются.

Создается копия файла с обфусцированным кодом, которому будет присвоено имя

[имя файла] -obfuscated.js

4. Исходный файл необходимо заменить файлом, содержащим запутанный код, а исходный файл необходимо удалить.

5. Мы также должны помнить о замене имени файла обфусцированного файла на исходное имя файла, поскольку другие файлы могут ссылаться на них.

Фактическая работа скрипта

В предыдущем абзаце я писал, как работает запутывание слов. Приступим к реальной работе.

Давайте для этого напишем сценарий оболочки.

  1. Обфускируйте код для текущей папки -

javascript-obfuscator.

2. Поскольку все файлы, которые были запутаны, будут запутаны в имени файла, мы можем найти запутанные файлы с расширением .js и переименовать их, удалив расширение .js из имени файла.

find -name «* obfuscated *» -exec переименовать «s / obfuscated.js / obfuscated /’ {} «;»

3. Теперь нам нужно удалить все файлы с расширением .js из папки, в которой есть простой исходный файл. Мы можем сделать это,

найти. -name «* .js» -type f -delete

4. Поскольку весь простой файл Js был удален, мы можем изменить запутанную папку, чтобы она имела имя исходного файла, в котором могут быть сделаны все ссылки,

find -name «* obfuscated *» -exec переименовать -v ‘s / obfuscated / .js /’ {} «;»

5. Дополнительный символ «-» можно удалить, используя,

find -name «* js *» -exec переименовать -v ‘s / - //’ {} «;»

Иллюстрация того же на примере

  1. Предположим, у вас есть папка с именем server и два файла с именами a.js и b.js.
  2. После выполнения команды ‘javascript-obfuscator.’ в папке сервера файлы будут иметь формат a.js, b.js, a-obfuscated.js и b-obfuscated.js.
  3. После бега

find -name «* obfuscated *» -exec переименовать «s / obfuscated.js / obfuscated /’ {} «;»

В папке сервера будут файлы a.js, b.js, a-obfuscated и b-obfuscated
(команда удалит расширение .js из обфусцированных файлов)

4. Чтобы удалить все файлы с расширением .js, используйте

найти. -name «* .js» -type f -delete

Теперь папка сервера будет иметь a-obfuscated и b-obfuscated.

5. После запуска

find -name «* obfuscated *» -exec переименовать -v ‘s / obfuscated / .js /’ {} «;»

В папке сервера будут файлы a-.js и b-.js
(Команда переименовывает все запутанные файлы в обычное имя файла с расширением .js)

6. find -name «* js *» -exec переименовать -v ‘s / - //’ {} «;»

Эта конкретная команда удалит лишний знак «-» из имени файла, и в папке сервера будут файлы a.js и b.js.

Красота этого заключается в том, что код, обфусцированный javascript, невозможно расшифровать или получить с помощью обратного проектирования.

Когда это будет сделано, через какое-то время он создаст другой запутанный код для одного и того же файла.

Сломать будет очень сложно (практически невозможно)

Код можно найти здесь - https://github.com/Shrinidhikulkarni7/Obfuscation

Ищу предложения по улучшению. Не стесняйтесь подходить ко мне, если нужно.