Будет ли код по-прежнему работать в каждом браузере / платформе, как сейчас?
Да, внешний сценарий выполнит свой внутренний сценарий, который снова скажет вашему браузеру выполнить внутренний сценарийэто внутри внутреннего сценария.Другими словами, вы можете поместить eval
в eval
.
. Добавляет ли двойная обфускация какую-либо сложность для обратного проектирования источника?
Это не будетЭто не обязательно добавляет сложности, но это приводит к дополнительному шагу, который необходимо сделать, чтобы добраться до вашего источника.Обратите внимание, что внутренняя обфускация, которую вы используете, сама обфусцируется внешней обфускацией, поэтому за один проход реверс-инженеру предоставляется обфусцированный код вашей внутренней обфускации, но не сам фактический исходный код.
Когда яВ прошлом я занимался реверс-инжинирингом (чтобы определить, является ли какой-то исполняемый файл вирусом). Я буквально наткнулся на программу на C #, которая затемным образом сначала распаковывает другой файл, этот другой файл снова распаковывает еще один DLL-файл, который затем загружается.и затем он фактически загружает код из ресурса в этом DLL-файле, который в итоге исполняется, и выполняет какой-то неприятный код для подключения к некоторому онлайн-сервису.
Суть в том, что мне потребовалось совсем немного времени, чтобы добраться доэтот запутанный неприятный код.
Так что да, двойное запутывание может увеличить сложность и занять больше времени, чтобы добраться до вашего кода.
Но убедитесь, что вы не представляете производительностьили расходы на техническое обслуживание в результате.
И да, в конечном итоге все, к чему у них есть доступ, может быть реверс-инжиниринг ...