javascript двойное запутывание - PullRequest
4 голосов
/ 05 марта 2012

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

Мой код использует jquery;это единственная зависимость.Я смотрю на компилятор Google Closure и jscrambler , которые оба, кажется, хорошо оценены.Что произойдет, если я сначала пропущу свой код через компилятор Google Closure, а затем через jscrambler?

Будет ли код работать во всех браузерах / платформах, как сейчас?Добавляет ли двойная запутанность какую-либо сложность для обратного проектирования источника?

Ответы [ 2 ]

1 голос
/ 05 марта 2012

Будет ли код по-прежнему работать в каждом браузере / платформе, как сейчас?

Да, внешний сценарий выполнит свой внутренний сценарий, который снова скажет вашему браузеру выполнить внутренний сценарийэто внутри внутреннего сценария.Другими словами, вы можете поместить eval в eval.

. Добавляет ли двойная обфускация какую-либо сложность для обратного проектирования источника?

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

Когда яВ прошлом я занимался реверс-инжинирингом (чтобы определить, является ли какой-то исполняемый файл вирусом). Я буквально наткнулся на программу на C #, которая затемным образом сначала распаковывает другой файл, этот другой файл снова распаковывает еще один DLL-файл, который затем загружается.и затем он фактически загружает код из ресурса в этом DLL-файле, который в итоге исполняется, и выполняет какой-то неприятный код для подключения к некоторому онлайн-сервису.

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

Так что да, двойное запутывание может увеличить сложность и занять больше времени, чтобы добраться до вашего кода.

Но убедитесь, что вы не представляете производительностьили расходы на техническое обслуживание в результате.

И да, в конечном итоге все, к чему у них есть доступ, может быть реверс-инжиниринг ...

0 голосов
/ 05 марта 2012

Способ запутывания работает в том, что он просто переименовывает переменные в "a", "b", "c" и так далее, чтобы сделать его менее читаемым.Он также обычно удаляет все форматирование кода, делая весь класс длиной всего в несколько строк, например, от ввода сотен строк.

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

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

...