2.8 Как понять, обфусцирован ли исходный код расширения?

Для множества продуктов реализация сильно упрощается, если найти похожий продукт и взять у него исходный код. Для этого необходимо различать, где код обфусцированный (замаскированный), а где нет.
Это умеют делать разработчики. Научимся определять это по косвенным признаком, если вы не умете программировать.
  1. В самом начале нам нужно установить расширение для просмотра исходного кода из предыдущего урока.
  1. После установки заходим на страницу любого расширения, исходный код которого хотим посмотреть. Открываем расширение для просмотра исходного кода и нажимаем View Source Code:
    1. notion image
      В открывшемся окне видим исходный код расширения конкурента. Однако некоторые крупные расширения обфусцируют (маскируют, минимизируют) свой код, чтобы его было невозможно заимствовать.
      Чтобы понять обфусцирован ли исходный код, необходимо посмотреть на название переменных в файлах с расширением .js, именно в них находятся основной функционал расширения:
      notion image
      💡
      Переменная — условное название хранилища какой-то информации (текста, массива, функции и т.д.). Детально разбираться в смысле этого слова мы не будем. Достаточно просто знать, что перед объявлением переменной обычно идет такой текст: var = или let = или const =.
      Если код обфусцирован, то название переменной обычно состоит из одной буквы и не несет никакой смысловой нагрузки. А если же код открыт, то наименование может состоять из слова или сочетания слов, прочитав которые, можно примерно понять, что в ней хранится.
      Посмотрим на примерах:
      Пример обфусцированного кода, зеленым цветом подчеркнуты переменные (ссылка на расширение):
      notion image
      Пример необфусцированного (открытого) кода, зеленым цветом подчеркнуты переменные (ссылка на расширение):
      notion image
  1. Иногда файлы формата .js могут быть библиотеками, которые всегда будут обфусцированными, на них мы внимание не обращаем. Отличительная черта библиотек - наличие комментария в самом начале файла. Если вы видите что-то многострочное и заключенное в подобное выражение: /* какой-то текст про библиотеку, описание ее лицензии, текст про автора и т.д */, то как правило - это библиотека:
    1. Пример библиотеки (ссылка на расширение):
      notion image
  1. Еще один очень важный момент - версия манифеста в расширении. Если у нас уже есть какой-то код на Manifest v2 (старая версия расширений), то его будет достаточно проблематично портировать в Manifest v3 (новая версия расширений, сейчас выпускать можно только такие).
    1. Проще говоря, расширения на старом (v2) манифесте лучше не брать за основу, а брать только новые на манифесте v3. Версию манифеста можно глянуть в файле manifest.json.
      Пример того, как можно узнать, какая версия манифеста поддерживается этим расширением (конкретно тут - манифест v2, такие расширения лучше не брать):
      notion image
      А вот тут — манифест v3, такое подойдет:
      notion image